Как автоматически установить значение для поля ссылки на узел CCK при отправке формы create

У меня есть тип контента (A), который ссылается на один узел другого типа контента (B). Ссылочный узел (B) может быть программно определен с использованием информации для пользователя, создающего этот новый узел (A)... Каждый пользователь может создать только один узел ссылочного типа контента (B), поэтому этот единственный узел всегда будет ссылается на узлы типа контента B, которые создает пользователь.

Поскольку указанный узел всегда известен, я не хочу, чтобы пользователю приходилось вводить эталонное значение, я хочу установить его для них за кулисами. Я нашел несколько тем о том, как это сделать, но ни одна из них, кажется, не ясна или не работает для меня.

Любая помощь будет принята с благодарностью.

Примечание: Drupal 6

2 ответа

Решение

Ты можешь попробовать:

function mymodule_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
   switch ($op) {
      case 'insert':
         if ($node->type == 'type_a') {
            $node->field_of_reference[0]['nid'] = 'node reference value';
            node_save($node);
         } 
         break;
   }
}

Это должно добавить значение к узлу и сохранить его после его создания.

http://api.drupal.org/api/function/hook_nodeapi

Примечание. Для этого вам необходимо создать модуль. Вы также можете попробовать модуль "Правила", хотя я не уверен, что он будет выполнять то, что вы просите, без специального правила. Но я знаю, что вышеуказанный метод будет работать.

Без какого-либо программирования - используйте модули "Правила", событие - обновление узла, поле действия - установите какое-либо значение.

Другие вопросы по тегам