Цель: Сохранение информации об обновляемом узле. Нам нужно собрать идентификатор узла, который обновляется, а также имена пользователей, которые его отметили.
Реализация:
Мне удалось получить и эту деталь, используя модуль flags и rules. Я сделал специальный модуль, который реализовал хук, чтобы получить эту информацию.
Я застреваю здесь:
Теперь мне нужно сохранить имя пользователя и идентификатор узла. Я все еще решаю, хочу ли я использовать поля или слой БД.
Для одного имени пользователя может быть сохранено несколько идентификаторов узлов.
Теперь проблема в том, что я не знаю точно, сколько узлов будет достаточно. Это зависит от пользователя. Это может быть 5, может быть 500 или даже 5000 идентификаторов узлов, которые, возможно, потребуется сохранить для одного пользователя.
Итак, как мне обеспечить это?
Так что я застрял в логике. Как мне использовать слой db или поля в пользовательском типе контента, чтобы сохранить это? и как мне это сделать?
Пожалуйста, совет. Я использую d7.
код пользовательского модуля
/*
* Implementation of the hook_rules_action_info()
*
*/
function customvishal_rules_action_info()
{
$actions = array(
'customvishal_action_userdetail' => array(
'label' =>t('Custom function to send notifications'),
'group'=>t('Cusotm Code for sending notifications'),
'parameter'=> array(
'account'=> array(
'type'=>'user',
'label'=>t('Going to get user list'),
),
// for the node
'productdetail'=> array(
'type'=>'node',
'label'=>t('Passding the node data'),
),
)
),
);
return $actions;
}
/*
* The action function for the rules exampled hello world
*
*/
function customvishal_action_userdetail($account,$productdetail)
{
drupal_set_message(t('This user #username! has flagged it',
array('#username' => $account->mail)));
drupal_set_message(t('This node #nid has got updated',
array('#nid' => $productdetail->nid)));
// The above takes care of the node and the user information later I will put
// it in a db or something like that.
// end of the function customvishal_action_userdetail
}