Drupal 6 如何在Drupal中创建主题注释链接?

Drupal 6 如何在Drupal中创建主题注释链接?,drupal-6,comments,drupal-themes,Drupal 6,Comments,Drupal Themes,我想对启用注释的节点上显示的“添加注释”和“注释”链接设置主题。我知道有theme()和theme\u links()可以帮助解决这个问题,但我不知道如何使用它们。我很确定我想要主题链接(),因为在这种情况下我需要链接。但是我如何获得评论链接呢?我不想主题的所有链接,只是那些评论。如果有帮助,我的目标是在每个链接旁边添加一个图像。另外,在“评论”旁边,我想包括发表评论的数量 为了澄清,我想对出现在节点上的链接进行主题化,而不是评论本身上的链接。我认为最简单的方法是覆盖主题中的comment.tp

我想对启用注释的节点上显示的“添加注释”和“注释”链接设置主题。我知道有
theme()
theme\u links()
可以帮助解决这个问题,但我不知道如何使用它们。我很确定我想要
主题链接()
,因为在这种情况下我需要链接。但是我如何获得评论链接呢?我不想主题的所有链接,只是那些评论。如果有帮助,我的目标是在每个链接旁边添加一个图像。另外,在“评论”旁边,我想包括发表评论的数量


为了澄清,我想对出现在节点上的链接进行主题化,而不是评论本身上的链接。

我认为最简单的方法是覆盖主题中的comment.tpl.php文件。您可以复制/themes/garland中的一个作为基础。

我认为最简单的方法是覆盖主题中的comment.tpl.php文件。您可以复制/themes/garland中的一个作为基础。

我从中使用了此技术来创建相同类型的链接,您希望向模块添加预处理挂钩以访问$links数组:

function yourmodule_preprocess_comment (&$variables) { $comment = $variables['comment']; //load links for current comment $links = comment_links($comment, FALSE); //code to alter the links array //reset the links HTML $variables['links'] = theme('links', $links); } 函数模块预处理注释(&$variables){ $comment=$variables['comment']; //加载当前评论的链接 $links=注释链接($comment,FALSE); //更改链接数组的代码 //重置HTML链接 $variables['links']=主题('links',$links); }
我在中使用了此技术来创建相同类型的链接,您希望在模块中添加预处理挂钩以访问$links数组:

function yourmodule_preprocess_comment (&$variables) { $comment = $variables['comment']; //load links for current comment $links = comment_links($comment, FALSE); //code to alter the links array //reset the links HTML $variables['links'] = theme('links', $links); } 函数模块预处理注释(&$variables){ $comment=$variables['comment']; //加载当前评论的链接 $links=注释链接($comment,FALSE); //更改链接数组的代码 //重置HTML链接 $variables['links']=主题('links',$links); }
要向链接添加图像/图标,可以使用简单的CSS。此CSS将在“添加注释”链接中添加一个图标,但其他链接也可以这样做(li.Comment\u delete、li.Comment\u edit等)

要在节点上添加注释数,可以使用函数
comment\u num\u all($node->nid)
。例如,如果要向“添加注释”链接添加注释数,可以向node.tpl.php(或每个内容类型模板)和jQuery添加一个隐藏的DIV来编辑链接文本:

<div id="num-comments" style="display:none;"><?php print comment_num_all($node->nid); ?></div>
这不是最优雅的解决方案,但它确实有效。如果您想使用
主题链接()
我想您必须创建一个自定义模块

编辑: 另一个选项是创建自定义模块。这不使用
theme\u links()
,而是使用
hook\u link\u 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;
    }
  }

。这将向您显示节点中显示的所有链接信息,主数组的键是您将在我的模块中使用的键。您还可以尝试使用Firebug/Chrome开发工具等查看包含链接的列表项的类别(即ul.links>li.comment\u add)。我相信在构建链接时,Drupal使用数组键作为链接的类。

要向链接添加图像/图标,可以使用简单的CSS。此CSS将在“添加注释”链接中添加一个图标,但其他链接也可以这样做(li.Comment\u delete、li.Comment\u edit等)

要在节点上添加注释数,可以使用函数
comment\u num\u all($node->nid)
。例如,如果要向“添加注释”链接添加注释数,可以向node.tpl.php(或每个内容类型模板)和jQuery添加一个隐藏的DIV来编辑链接文本:

<div id="num-comments" style="display:none;"><?php print comment_num_all($node->nid); ?></div>
这不是最优雅的解决方案,但它确实有效。如果您想使用
主题链接()
我想您必须创建一个自定义模块

编辑: 另一个选项是创建自定义模块。这不使用
theme\u links()
,而是使用
hook\u link\u 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;
    }
  }

。这将向您显示节点中显示的所有链接信息,主数组的键是您将在我的模块中使用的键。您还可以尝试使用Firebug/Chrome开发工具等查看包含链接的列表项的类别(即ul.links>li.comment\u add)。我相信在构建链接时,Drupal会使用数组键作为链接的一个类。

我不希望对注释本身进行主题化。我想在节点上设置“添加评论”和“评论”链接的主题。我不想设置评论本身的主题。我想在节点上设置“添加评论”和“评论”链接的主题。同样,这是在编辑评论上的链接。那不是我想要的。我想编辑指向注释的节点上的链接。特别是“添加评论”和“评论”链接。同样,这是编辑评论上的链接。那不是我想要的。我想编辑指向注释的节点上的链接。特别是“添加评论”和“评论”链接。感谢您的建议。我更喜欢在这种情况下使用主题链接,尽管其他都是可能的。有关于如何使用主题链接的信息吗?@Chaulky请参见上面的编辑