Добавление поля 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);
}
}
}
1 answers
Обязательно ли это должна быть ссылка на пользователя?
Предполагая, что вы не используете глобальный флаг (тогда у вас не возникнет проблем с несколькими пользователями), эта информация уже должна храниться в таблицах флагов. Вы должны иметь возможность отображать эту информацию с помощью представления (которое вы можете прикрепить к узлу с помощью http://drupal.org/project/views_attach ). Или, если это не сработает, выполните пользовательский запрос в реализации hook_node_view() в пользовательском модуле.
И если это должно по какой-то причине неограниченную многозначную ссылку на пользователя должно быть проще обрабатывать с помощью правил, чем неограниченное количество полей ссылок на пользователя. CCK (и поля, если на то пошло) просто не предназначены для этого. И вы можете добавлять поля только к типам контента, а не к отдельным узлам.