Модуль уведомлений Drupal - Как получить идентификатор подписки (SID)?
-
29-09-2019 - |
Вопрос
Я хочу показать ссылку подписаться / отписаться на странице списка тематических веществ форума, наряду с каждой из тем в списке. У меня есть вся информация для ссылки подписки в переменную $ Topic в mytheme_preprocess_forum_topic_list ():
foreach ($variables['topics'] as $id => $topic) {
Предполагая, что я хочу позвонить в уведомления_get_Link (), чтобы получить ссылку отписаться, как я могу получить идентификатор подписки (SID) для любой существующей подписки на узел тема?
Я полагаю, что я должен позвонить уведомлениям_user_get_SubScrients (), но документация немного тонкая. Примером было бы здорово.
Решение
Мое решение находит ровно одну подписку для текущего узла, если кто-то существует и составляют ссылку Susbribe или unsubscribe, которая сделана доступной для шаблона:
// find subscription
$subs = notifications_user_get_subscriptions(
$user->uid,
'node',
$topic->nid,
$topic,
FALSE);
// compose link
$destination = "?destination=forum/idea-exchange";
if ($subs) {
foreach ($subs as $key => $sub) {
$link = notifications_get_link('unsubscribe', array(
'sid' => $sub->sid,
'confirm' => FALSE));
$variables['topics'][$id]->subscribe_link =
'<a class="unsubscribe" href="/'.$link['href'].
$destination.'">'.t('Stop tracking this topic').'</a>';
break;
}
}
else {
$link = notifications_get_link(
'subscribe',
array('uid' => $user->uid,
'type' => 'thread',
'fields' => array('nid' => $topic->nid),
'confirm' => FALSE));
$variables['topics'][$id]->subscribe_link =
'<a class="subscribe" href="/'.
$link['href'].$destination.'">'.t('Track this topic').'</a>';
}
Я закончил использовать CCK вычисленное поле для этого, чтобы я мог включить его в виду. Видеть это для более контекста.