为什么这些主题功能不适用于Drupal D6?

时间:2011-06-29 01:21:31

标签: drupal drupal-theming

我现在正在以Drupal 6结束我的智慧,我希望第二双眼睛可以指出我今早早些时候遗漏的一些语法错误。

假设我有一个名为my_theme的主题。

这是一个来自银杏的子主题的主题,这个主题又是来自子主题的主题 Rubik,来自Tao的子主题,一个相当常见的CSS重置主题。

我正在努力了解如何声明我自己的主题功能,所以我可以 在我正在为网站工作的费用页面清理标记。

现在我对主题的理解与'如果注册了'一致 使用hook_theme的主题函数,将其传递给数组,使用 功能的名称,你以后可以调用它 主题中的theme_function_name。

例如,如果有一个名为my的模块,我就会弄乱hook_theme 如下所示,定义函数的名称,并定义哪个 论证应该传递给它:

<?php

  function my_theme() {

    $items = array();
    $items['randomtext']   = array('arguments' => array('element' => NULL));
    $items['button_links'] = array('arguments' => array( '$links' => NULL, '$attributes' => NULL));

    return $items;
  };

现在我已经注册了函数,我只需要实现它们 这个有点人为的例子:

  function theme_randomtext($element) {
    $output = ' <h1>This is some very random text with' . ' this text concatenated: '  . $element . '</h1>';
    return $output;
  }

我现在可以通过调用

来使用这个新功能
  <php
    print theme('randomtext', 'some arbitrary words')

  ?>

预计会返回以下内容:

  <h1>This is some very random text with this text concatenated: some arbitrary words</h1>
我正在拿nada。

我不知道为什么。当我看主题注册表时,我看到了我的主题 函数列为my_randomtext - 我试过调用这两个函数 选项,如果我应该添加主题前缀:

  theme('my_randomtext', 'getting desparate');
  theme('randomtext', 'really losing my rag now');

仍然没有运气。

为什么这些主题功能不起作用?有什么好处呢 这会让你简单地在一个主题中声明一个这样的函数吗?

  function manual_random_text($element) {
        $output = ' <h1>This is gives me everything I aleady need, 
                    'without relying on the weird themeing sytem. It's perfect for' . $element . '</h1>';
        return $output;

  }

1 个答案:

答案 0 :(得分:0)

啊,经过一段距离问题,我看到了问题。

为此,我需要添加我声明函数的主题的前缀,以便我可以使用。

因此,如果我的模块名称为my,则所需的主题函数名称为:

function my_random_text($element) {
        $output = ' <h1>, 
                    'This is finally outputting content. Now I can: ' . $element . '</h1>';
        return $output;
}

问题是,如果我正在创建一个尚未存在的主题函数的覆盖,例如random_text,则无论如何都没有覆盖它的函数。 术语主题覆盖表明存在一个默认的主题函数来覆盖 - 在许多主题中,我们没有明确覆盖函数,而是创建在特定情况下使用的替代函数。

我现在假设我需要在模块中定义这个,如果我想将函数定义为theme_function_name而不是themename_theme_function_name

page here about theming on Drupal.org是查找部分信息的有用信息。