drupal-创建主题钩子函数

我们刚刚创建了一个主题注册函数,为我们的模块覆写了 hook_theme() 函数。在函数中,我们声明这个模块实现了一个叫做 theme_philquotes_quote() 的钩子,它有两个参数, $text 和 $origin。现在我们要创建这个函数。

这个函数的目的是,接受一些内容(一条名言)并配置它以便显示。下面是这个函数的第一个版本,只是进行基本的显示:

 

/**
 * Theme function for theming quotes.
 *
 * @param $text
 * The quote content as a string.
 * @param $origin
 * The original source of the quote, as a string.
 * @return
 * An HTML themed string.
 */
function theme_philquotes_quote($text, $origin) {
    $output = '<div id="philquotes-text">'. t($text)
	.'</div><div id="philquotes-origin">'. t($origin) .'</div>';
    return $output;
}

在这个函数中,我们所做的只是把 $text 和 $origin 变量的内容封装在</div> 标记中,每个都由一个 id 属性。

 

回顾我们的 philquotes_block(),我们就知道这里发生了什么事:这个函数返回的字符串将显示为一个区块条目。显示时,看起来象这样:


插图 4-7

标题 Pithy Quote 来自 philquote_block(),而名言的 text 和 title 被显示为两个无风格的 <div/> 元素。我们取出了节点内容,并格式化为 HTML。

提示:有两个原因可能导致区块不显示。第一,如果没有已发布的名言,这里将什么也不显示。第二,区块缓存也许需要清除,Devel模块中包含的缓存清空工具可以帮你做到这一点。参见第一、第三章了解更多有关 Devel 模块的信息。

但是这种简单的格式化并没有特别的视觉吸引力。这可以通过在模块中添加 CSS 样式表加以改进。

评论

发表新评论

此内容将保密,不会被其他人看见。
  • 允许HTML标签:<a> <img><em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><p>
  • 自动断行和分段。

更多关於格式化选项的信息

Image CAPTCHA
验证码
|