【问题标题】:Drupal - How to check if on admin page?Drupal - 如何检查是否在管理页面上?
【发布时间】:2015-06-11 08:33:37
【问题描述】:

我在安装 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/s-d-d.de/testkc/sites/all/themes/sdd2015/page.tpl.php 的第 36 行)。

只有当我在前端时才应该执行代码...?为什么会在后端被触发?

【问题讨论】:

  • 您到底需要什么?你想知道你在哪个页面吗?
  • 不,上面的代码只有在我在前端时才应该执行...
  • 您是否在寻找您是否已登录管理员?

标签: php drupal drupal-7


【解决方案1】:

猜测:

消息其实是你在前端访问一个页面的时候产生的,但是因为你在page.tpl.php中有这段代码(不应该在的地方),所以无法在消息区打印直到下一页页面查看,因为当前页面的消息已经打印在同一个文件中。

所以您的代码可能按预期工作,但您看到输出通知消息有延迟。

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

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

【讨论】:

  • 嘿 Clive,当你说它们不应该在 page.tpl.php 中时,我应该将前端代码放在哪里?
  • 一个preprocess hook 将是最好的地方@Torben
  • 感谢克莱夫的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-28
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 2019-05-13
  • 1970-01-01
相关资源
最近更新 更多