有关未定义索引/变量的注意事项

时间:2011-10-27 18:21:37

标签: drupal

我在Drupal 7中创建自己的自定义模板,并且有一些系统错误。任何人都可以向我解释一下,如何修复它们或指导我一些文档来帮助我解决这些问题? 以下是错误:

  

注意:未定义索引:include()中的导航(/Users/Ken/Sites/drupal_cprna/sites/all/themes/na/templates/page.tpl.php第82行)。       注意:未定义的变量:include()中的secondary_menu_heading(/Users/Ken/Sites/drupal_cprna/sites/all/themes/na/templates/page.tpl.php第107行)。       注意:未定义的变量:include()中的标题(/Users/Ken/Sites/drupal_cprna/sites/all/themes/na/templates/block.tpl.php的第53行)。       注意:未定义的变量:include()中的标题(/Users/Ken/Sites/drupal_cprna/sites/all/themes/na/templates/block.tpl.php的第53行)。       注意:未定义的变量:include()中的jump_link_target(/Users/Ken/Sites/drupal_cprna/sites/all/themes/na/templates/html.tpl.php第74行)。

2 个答案:

答案 0 :(得分:1)

所有这些错误都是由各种模板文件中不存在的相应变量引起的。

默认情况下,page.tpl.php中没有提供$secondary_menu_heading,默认情况下jump_link_target未提供html.tpl.php

我猜你会说你的主题是基于另一个主题 将这些变量提供给模板文件,你需要做同样的事情。如果是这种情况,请查看该主题的template.php文件,特别是themename_preprocess_x()函数...这是创建变量并提供给模板文件的位置。

可以很好地概述主题系统如何在this post上运行。

答案 1 :(得分:1)

我在D7安装中使用Zen subtheme时遇到了同样的错误:

  

注意:未定义的变量:include()中的标题(第53行)   ... /网站/所有/主题/ mysubtheme /模板/ block.tpl.php)

这个错误导致我的块的标题在前端根本没有渲染,正如我所料。

正如Clive所说,page.tpl.php中存在一个不存在的变量。所以,我将以下函数从Zen的template.php复制到我的subtheme template.php文件中:

function mysubtheme_process_block(&$variables, $hook) {
   $variables['title'] = isset($variables['block']->subject) ? $variables['block']->subject : '';
}

(但请注意,您必须使用“ yoursubtheme _process_block”重命名该功能)

而且......瞧,我的街区的标题再次出现了。 : - )

非常感谢你的评论,克莱夫。它给了我很多帮助!