Может уважаемые гуру подскажут, как наиболее идеологически правильно изменить ссылки на комментарии ноды с "5 комментариев | 1 новый комментарий | Читать дальше" на "Комментариев: 5 +1 | Читать дальше" (чуть похоже как на хабре)?
Я решил проблему через создание модуля cf_comments с одной функцией, убирающей текст и оставляющей только количество комментариев:
<?php
function cf_comments_link_alter(&$links, &$node) {
$c = $n = false;
if( isset($links['comment_comments']) ) {
$c = true;
$comment_title = explode(' ', $links['comment_comments']['title']);
unset($links['comment_comments']['title']);
$links['comment_comments'] = array_merge(array('title' => $comment_title[0]), $links['comment_comments']);
}
if( isset($links['comment_new_comments']) ) {
$n = true;
$comment_title = explode(' ', $links['comment_new_comments']['title']);
unset($links['comment_new_comments']['title']);
$links['comment_new_comments'] = array_merge(array('title' => $comment_title[0]), $links['comment_new_comments']);
}
}
?>
А дальше темизировал вывод через phptemplate_links() в template.php.
Если другого пути нету, подскажите, пожалуйста, можно ли провести темизацию сразу в модуле, а не через тему? И как?
Почему спрашиваю: как-то нелогично, если движок сначала "прилагает усилия" сформировать ссылку "5 комментариев", а потом опять "урезает" результат до "5". В принципе, это решаемо через удаление перевода слов и оставления только значения, но меня интересует именно "идеологически верное" решение. (Или перевод как раз такое и есть?)
Комментарии
Помедитировав над комментом и веткой в целом, а так же над [ru-api=hook_link]hook_link()[/ru-api], пришел к выводу, что, судя по всему, есть 2 варианта:
1) тот, что описал я;
2) делать unset для $links['comment_comments'] и $links['comment_new_comments'] и определять их самому, руководствуясь, к примеру, исходниками модуля comment (файл comment.module, функция comment_link).
Не знаю, что предпочтительней с точки зрения производительности, но склоняюсь к тому, что п.1.
P.S. Любители хардкора могут похакать ядерный модуль comment.