Столкнулся с неприятной особенностью стандартного хука node_link. Оный хук не покажет ссылку "читать далее", если в его аргументе $teaser содержится что-то отличное от TRUE. Неприятность в том, что если, скажем, делать несколько списков тизеров разного вида, выводимых через views, и делать их через node_view с кастомным параметром $teaser, то наши любимые ссылки "читать далее" не создадутся.
Пришлось хакать ядро, поменяв одну строку в node.module. Исходный текст хука:
<?php/**
* Implementation of hook_link().
*/
function node_link($type, $node = NULL, $teaser = FALSE) {
$links = array();
if ($type == 'node') {
if ($teaser==1 && $node->teaser && !empty($node->readmore)) {
$links['node_read_more'] = array(
'title' => t('Read more'),
'href' => "node/$node->nid",
// The title attribute gets escaped when the links are processed, so
// there is no need to escape here.
'attributes' => array('title' => t('Read the rest of !title.', array('!title' => $node->title)))
);
}
}
return $links;
}?>
Нам нужна строчка
if ($teaser==1 && $node->teaser && !empty($node->readmore)) {
Заменяем ее на
if ($teaser && $node->teaser && !empty($node->readmore)) {
(убрали жесткую проверку на TRUE, при любом значении $teaser !=0 условие срабатывает).
Все, любимые ссылки на месте
Главное, при очередном обновлении ядра не забыть пропатчить снова... А то что-то я не очень верю, что оный патч попадет в ядро в ближайшем будущем, хотя issue я сделал...