Чтобы добавить изображение / значок к ссылке, вы можете использовать простой CSS. Этот CSS добавит значок к ссылке «Добавить комментарий», но то же самое можно сделать и для других ссылок (li.comment_delete, li.comment_edit и т. Д.).
ul.links > li.comment_add > a {
background: url(PATH TO IMAGE) no-repeat;
padding-left: 20px; /* Change to compensate for size of image */
}
Чтобы добавить количество комментариев к узлу, вы можете использовать функцию comment_num_all($node->nid)
. Например, если вы хотите добавить количество комментариев к ссылке «Добавить комментарий», вы можете добавить скрытый DIV к node.tpl.php (или каждому шаблону типа контента) и jQuery для редактирования текста ссылки:
<div id="num-comments" style="display:none;"><?php print comment_num_all($node->nid); ?></div>
JQuery:
$('ul.links > li.comment_add > a').text('Add new comment (' + $('#num-comments').text() + ')');
Это не самое элегантное решение, но оно работает. Если вы хотите использовать theme_links()
, думаю, вам придется создать собственный модуль.
EDIT:
Другой вариант - создать собственный модуль. При этом используется не theme_links()
, а hook_link_alter()
. Это небольшой пример модуля, позволяющий изменить заголовок ссылки «Добавить новый комментарий», добавить значок и указать количество текущих комментариев, прикрепленных к узлу: (Замените каждый экземпляр MYMODULE_NAME на имя, выбранное для модуля)
ШАГ 1. Создайте файл с именем MYMODULE_NAME.info и добавьте:
name = "MYMODULE_NAME"
description = "Change the appearance of links that appear on nodes"
core = 6.x
ШАГ 2. Создайте файл с именем MYMODULE_NAME.module и добавьте:
<?php
/**
* Implementation of hook_link_alter
*/
function MYMODULE_NAME_link_alter(&$links, $node){
if (!empty($links['comment_add'])) {
// Get number of comments for node
$num_comments = db_result(db_query('
SELECT comment_count
FROM {node_comment_statistics}
WHERE nid = %d
', $node->nid));
// Set "Add new comment" link text
$links['comment_add']['title'] = '<img src="PATH TO ICON"/> ADD COMMENT TEXT (' . $num_comments . ')';
// Allow HTML in the link text
$links['comment_add']['html'] = TRUE;
}
}
ШАГ 3. Поместите эти файлы в папку с именем MYMODULE_NAME, поместите папку в sites / all / modules и включите модуль
РЕДАКТИРОВАТЬ: Чтобы найти ключи массива:
в ваш node.tpl.php (или любой другой шаблон узла) вы можете добавить <?php print_r($node->links); ?>
. Это покажет вам всю информацию о ссылке, которая будет отображаться в узле, а ключи основного массива - это то, что вы использовали бы в моем модуле. Вы также можете попробовать использовать Firebug / Chrome Dev Tools и т. Д., Чтобы посмотреть на класс элемента списка, содержащего ссылку (т.е. ul.links> li. comment_add ). Я считаю, что когда ссылки создаются, Drupal использует ключ массива в качестве класса для ссылки.