0

我是 Drupal 以及 Drupal 主题开发的新手。在学习了如何覆盖drupal模板之后,我想知道如何覆盖drupal 7主题功能。从节点使用主题层,我学到了以下内容:

  1. 对于模块中的每个钩子,我们需要注册一个钩子函数
  2. 如果在函数的返回数组中定义,则实现是“模板”文件。其他实现是通过函数。

现在按照本书A definative guide to Drupal 7,覆盖主题函数 1. 复制 - 将主题函数粘贴到我的主题的 template.php 文件 2. 将文件名的开头更改theme_yourtheme_ 3. 保存 举个例子,它覆盖了以下函数:

function theme_more_link($variables) {
  return '<div class="more-link">' . l(t('More'), $variables['url'], array('attributes' => array('title' => $variables['title']))) . '</div>';
}

comment_help()现在,如果我想覆盖以下主题功能comment.module

function comment_help($path, $arg) {
  switch ($path) {
    case 'admin/help#comment':
      $output = '<h3>' . t('About') . '</h3>';
      $output .= '<p>' . t('The Comment module allows users to comment on site content, set commenting defaults and permissions, and moderate comments. For more information, see the online handbook entry for <a href="@comment">Comment module</a>.', array('@comment' => 'http://drupal.org/documentation/modules/comment/')) . '</p>';
      $output .= '<h3>' . t('Uses') . '</h3>';
      $output .= '<dl>';
      $output .= '<dt>' . t('Default and custom settings') . '</dt>';
      $output .= '<dd>' . t("Each <a href='@content-type'>content type</a> can have its own default comment settings configured as: <em>Open</em> to allow new comments, <em>Hidden</em> to hide existing comments and prevent new comments, or <em>Closed</em> to view existing comments, but prevent new comments. These defaults will apply to all new content created (changes to the settings on existing content must be done manually). Other comment settings can also be customized per content type, and can be overridden for any given item of content. When a comment has no replies, it remains editable by its author, as long as the author has a user account and is logged in.", array('@content-type' => url('admin/structure/types'))) . '</dd>';
      $output .= '<dt>' . t('Comment approval') . '</dt>';
      $output .= '<dd>' . t("Comments from users who have the <em>Skip comment approval</em> permission are published immediately. All other comments are placed in the <a href='@comment-approval'>Unapproved comments</a> queue, until a user who has permission to <em>Administer comments</em> publishes or deletes them. Published comments can be bulk managed on the <a href='@admin-comment'>Published comments</a> administration page.", array('@comment-approval' => url('admin/content/comment/approval'), '@admin-comment' => url('admin/content/comment'))) . '</dd>';
      $output .= '</dl>';
      return $output;
  }
}

我该怎么做?它的名字不是从theme_.

4

1 回答 1

1

核心评论模块是使用hook_help函数。您必须在自定义模块中使用相同的功能。请注意,您应该首先使用清理任何 $output 数据$output = "";

于 2013-08-26T20:03:15.503 回答