Drupal - 如何在管理页面上检查?

时间:2015-06-11 08:33:37

标签: php drupal drupal-7

我在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行)。

只有我在前端才能执行代码......?为什么它会在后端被解雇?

1 个答案:

答案 0 :(得分:1)

猜测:

当您访问前端页面时,实际上会生成该消息,但由于您在page.tpl.php中有此代码(它不应该出现),因此无法打印在消息区域中,直到下一个页面视图,因为当前页面的消息已经打印在同一个文件中。

因此,您的代码可能正常运行,但您看到输出通知消息的延迟。

与往常一样,解决方案是在使用之前检查你的变种。

// Or whatever conditional makes sense to what you're trying to do.
if (!empty($menuChildArray[2])) {
  $menuParent = $menuChildArray[2];
}