Как правильно поменять ссылки на комментарии ноды?

Главные вкладки

Аватар пользователя Captain Flint Captain Flint 16 февраля 2010 в 17:32

Может уважаемые гуру подскажут, как наиболее идеологически правильно изменить ссылки на комментарии ноды с "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". В принципе, это решаемо через удаление перевода слов и оставления только значения, но меня интересует именно "идеологически верное" решение. (Или перевод как раз такое и есть?)

Комментарии

Аватар пользователя Captain Flint Captain Flint 1 марта 2010 в 14:15

Помедитировав над комментом и веткой в целом, а так же над [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.