Добавление поля CCK с правилами


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

У тебя есть какие-нибудь идеи?

Редактировать - То, что я в итоге придумал, без правил -

function bamfmodule_flag($action, $flag, $content_id, $account) {
  if($action == 'flag') {
    if ($flag->name == 'event_bookmark') {
        $node = node_load($content_id);
        array_push($node->field_trainer, $account->uid);
        node_save($node);
    }
  }
}
Author: JGrubb, 2011-04-26

1 answers

Обязательно ли это должна быть ссылка на пользователя?

Предполагая, что вы не используете глобальный флаг (тогда у вас не возникнет проблем с несколькими пользователями), эта информация уже должна храниться в таблицах флагов. Вы должны иметь возможность отображать эту информацию с помощью представления (которое вы можете прикрепить к узлу с помощью http://drupal.org/project/views_attach ). Или, если это не сработает, выполните пользовательский запрос в реализации hook_node_view() в пользовательском модуле.

И если это должно по какой-то причине неограниченную многозначную ссылку на пользователя должно быть проще обрабатывать с помощью правил, чем неограниченное количество полей ссылок на пользователя. CCK (и поля, если на то пошло) просто не предназначены для этого. И вы можете добавлять поля только к типам контента, а не к отдельным узлам.

 2
Author: Berdir, 2011-04-26 22:17:14