Как автоматически установить значение для поля ссылки на узел CCK при отправке формы create - PullRequest
3 голосов
/ 22 сентября 2010

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 22 сентября 2010

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

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

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

2 голосов
/ 22 сентября 2010

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

...