Внизу ноды выводятся ссылки, но мне кажется что они загромождают сайт, уж больно их много.
Мне бы хотелось изменить нижнею часть ноды так чтобы вместо ссылок выводились пиктограммы/кнопки.
Так как я не знаю как правильно сформулировать вопрос при помощи поиска я ничего не нашел. Прошу вашей помощи, поделитесь ссылками которые помогут мне решить поставленную задачу.
В ходе поиска вот что мне удалось выяснить:
за выводом ссылок отвечает $links, в котором содержатся нужные мне ссылки
модуль Notifications создает эти ссылки в зависимости от ситуации и добавляет их в массив $links
А вот где именно ссылки создаются и как мне их подменить я не знаю
Комментарии
Я тут покопался и нашел где именно создаются ссылки - это модуль notifications_ui.module, который находится \sites\all\modules\notifications\notifications_ui, а вот фанкция который формирует ссылку
<?php
$links = array();
function notifications_ui_build_links($options, $prefix = 'notifications_') {
global $user;
foreach ($options as $index => $option) {
if (!empty($option['subscription'])) {
// Unsubscribe link
$title = t('Unsubscribe from: !name', array('!name' => $option['name']));
$props = notifications_get_link('unsubscribe', array('sid' => $option['subscription']->sid, 'destination' => $_GET['q']));
}
else {
// Subscribe link
$title = t('Subscribe to: !name', array('!name' => $option['name']));
$props = notifications_get_link('subscribe', array('uid' => $user->uid, 'type' => $option['type'], 'confirm' => TRUE, 'fields' => $option['fields'], 'destination' => $_GET['q']));
}
$links[$prefix . $index] = array(
'title' => $title,
'html' => TRUE,
'href' => $props['href'],
) + $props['options'];
}
return $links;
}
?>
Что с этим делать непонятно?
Использовать hook_link_alter, подскажите как?
тоже ищу ответ на этот вопрос
У меня все получилось, при помощи написания модуля который использует hook_link_alter
Осталось только нарисовать нормальные кнопки.
jeker, спасибо огромное за наводку! Я тоже как раз озадачилась этим вопросом и благодаря вашей подсказке кое-что набросала.
jeker, не подскажете, как вы определяли тип подписки в случае ссылки для отмены подписки? В случае ссылки для подписки все понятно по содержанию 'href', а вот для отмены подписки в 'href' нет никакого намека на тип. Я уже была довольна результатом, но потом включила подписку на таксономию и теперь надо что-то другое придумать..
Я искал в строке слово "uns", вот так:
if (substr_count($links['notifications_0']['href'],"uns")>0)
Вот пример кода:
<?php
if ($links['notifications_0']['title'])
{
$links['notifications_0']['atributes']=$links['notifications_0']['title'];
$links['notifications_0']['atributes']=str_replace("\"","'",$links['notifications_0']['atributes']);
if (substr_count($links['notifications_0']['href'],"uns")>0)
{
$links['notifications_0']['title']='<img src="/images/post-mn.png"
title="'.$links['notifications_0']['atributes'].'" alt="'.$links['notifications_0']['atributes'].'"/>';
}
else
{
$links['notifications_0']['title']='<img src="/images/post-pl.png"
title="'.$links['notifications_0']['atributes'].'" alt="'.$links['notifications_0']['atributes'].'"/>';
} ?>