我在尝试在drupal 7中声明一个简单的函数时遇到一个奇怪的错误。我在模板文件的顶部声明了一个函数(我知道,通常是不行,但我需要快速获取这些模板,现在没时间为这些功能开发模块。)所以我在文件的顶部声明了以下内容:
1. function templateB_EventRegistrationNode($params = NULL) {
2. /* code */
3. }
但是,当我尝试运行模板时,我收到以下错误,
致命错误:无法重新声明templateB_EventRegistrationNode() (先前在 C:\ WAMP \ WWW \ VSI \网站\所有\主题\ vsi_new_template_b \模板\ node.tpl.php:1) 在 C:\ WAMP \ WWW \ VSI \网站\所有\主题\ vsi_new_template_b \模板\ node.tpl.php 在第3行
(行号已更改为匹配示例。)
任何人都知道为什么第一行与函数的最后一行冲突?顺便说一句,具有不同名称的函数的副本在另一个模板中工作,因此代码有效。
答案 0 :(得分:1)
在Drupal中,主题模板文件使用的任何函数都应该放在主题使用的template.php文件中。
@mario对于文件被多次包含引起的错误是正确的,但是如果你将这些函数放在template.php文件中,则错误将不再出现,因为它只包含一次。
模板文件的内容应该只是显示输出所需的代码。