我在Drupal 7安装的 page.tpl.php 中使用以下代码:
if (!path_is_admin(current_path())) {
$pathArray = explode('/', current_path());
if (!empty($pathArray)) {
$path_to_node = url("node/".$pathArray[1]);
$menuChildArray = explode('/', $path_to_node);
$menuParent = $menuChildArray[2];
}
}
但是在管理界面的某些页面上,我得到了:
注意:未定义的偏移量:include()中的2(/home/www/doc/7622/sdd.de/testkc/sites/all/themes/sdd2015/page.tpl.php第36行)。
只有我在前端才能执行代码......?为什么它会在后端被解雇?
答案 0 :(得分:1)
猜测:
当您访问前端页面时,实际上会生成该消息,但由于您在page.tpl.php中有此代码(它不应该出现),因此无法打印在消息区域中,直到下一个页面视图,因为当前页面的消息已经打印在同一个文件中。
因此,您的代码可能正常运行,但您看到输出通知消息的延迟。
与往常一样,解决方案是在使用之前检查你的变种。
// Or whatever conditional makes sense to what you're trying to do.
if (!empty($menuChildArray[2])) {
$menuParent = $menuChildArray[2];
}