По умолчанию ссылки узла на странице блога содержат blog_usernames_blog
(блог администратора), comment_add
(Добавить комментарий) и node_read_more
(Подробнее).Ссылки узла Theming в Drupal 6
Мне нужно избавиться от первых 2 из них и изменить текст в node_read_more.
Я создал функцию с именем $themenamepreprocess_node
в template.php в моей теме, с этим содержанием:
function mytheme_preprocess_node(&$vars, $hook){
$node = $vars['node'];
//blog node, not in full node page
if($vars['node']->type == 'blog' AND !$vars['page']){
$vars['node']->links['node_read_more']['title'] = t('My custom read more here');
unset($vars['node']->links['blog_usernames_blog']);
unset($vars['node']->links['comment_add']);
}
//debug:
echo "<!-- DEBUG\n";
print_r($vars['node']->links);
echo "\n-->";
}
Но он не работает; когда я печатаю $vars['node']->links
в конце функций, массив ссылок точно так же, как я хочу; но когда страница отображается, отображаются старые ссылки по умолчанию.
Почему? Как я могу связать узловые ссылки только для некоторого типа контента и только на странице списка узлов, с функциями theming?
p.s: я очистил кэш и тему реестра перед каждым попробовать;)
Спасибо за предложения, они действительно оценили, им новое для Друпала .. но вы написали пример неправильно? Я вижу, что ваш пример использует theme_preprocess_node вместо theme_link, что вы указали – Strae
Извините. Действительно, я неправильно написал функцию. Отредактировал его. – berkes
mmh ... на api.drupal.org нет 'theme_preprocess_links', и ни один из' * _preprocess_links' ... вы имели в виду 'hook_link_alter'? – Strae