2

我是 drupal 主题的新手。我创建了一个目录mytheme并将其添加mytheme.info到其中,并从 drupal 的默认主题目录中复制了其他文件。现在编辑后page.tpl.php,drupal 显示以下错误。

Notice: Undefined variable: hide_site_name in include() (line 99 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined variable: hide_site_name in include() (line 109 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined index: featured in include() (line 168 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined index: highlighted in include() (line 187 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined index: sidebar_second in include() (line 212 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined index: triptych_first in include() (line 220 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined index: triptych_middle in include() (line 220 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined index: triptych_last in include() (line 220 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined index: footer_firstcolumn in include() (line 230 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined index: footer_secondcolumn in include() (line 230 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined index: footer_thirdcolumn in include() (line 230 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).
Notice: Undefined index: footer_fourthcolumn in include() (line 230 of C:\wamp\www\dtest\sites\all\themes\mytheme\bartik\templates\page.tpl.php).

google了一下,发现清除缓存可以解决问题。但即使清除了我的缓存,它仍然是一样的!

4

4 回答 4

6

通常,当您在文件中调用page.tpl.php主题文件中不存在的区域时,会发生这些错误.info

在你的page.tpl.php

$page['footer_firstcolumn'];

在您的主题中.info

regions[footer_firstcolumn] = Footer first column

重新检查所有区域后,不要忘记flush the cache.

于 2012-07-24T07:44:12.157 回答
3

如果你想创建一个新鲜的主题,最好的做法是使用Zen 之类的东西。它是空白的并且完全可定制。

只要您按照规定的说明进行操作,您就可以避免像上面的那些令人讨厌的错误

于 2012-07-23T14:36:03.287 回答
1

我在编写自定义子模板时遇到了几乎相同的消息问题:“注意:未定义索引:include() 中的 myIndex(some/path/myPage.tpl.php 中的第 n 行)”

对于通知消息中告诉的每一行,我使用 php 的函数 isset() 解决了这个问题。

例如,在您的第 99 行中,我将使用:

if(isset(hide_site_name)){
    //use hide_site_name in the normal way
}

或在您的第 168 行

if(isset( some_var[featured] )){
    //use "featured" index in the normal way
}

希望这对某人有所帮助,因为这在长时间寻找解决方案后对我有所帮助。顺便说一句,我从来没有找到这种行为的原因。抱歉语法不好,如果有的话。

于 2014-11-12T03:16:41.343 回答
1

创建子主题后我遇到了同样的问题,我遵循了 Meiker 的回答,它在包含 isset 方面效果很好。但由于我没有太多编程经验,我遇到了第 220 行和同一行中的多个三联画的障碍。

注意:未定义索引:include() 中的triptych_first(C:\wamp\www\dtest\sites\all\themes 的第 220 行

所以我像这样添加了isset:

if(isset($page['triptych_first']) || (isset($page['triptych_middle']) || (isset($page['triptych_last'])))) :

并且对类似的错误行做了同样的事情,现在我没有出现更多错误。

我希望这可以帮助其他遇到编程挑战的人。

于 2015-04-29T16:20:05.453 回答