リンクに画像/アイコンを追加するには、単純な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()、カスタムモジュールを作成する必要があると思います。
編集:
別のオプションは、カスタムモジュールを作成することです。これはを使用しません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は配列キーをリンクのクラスとして使用すると思います。