2010-12-19 20 views

回答

31

对于Drupal 7,您可以使用path_is_admin()

if (path_is_admin(current_path())) { 
    // Do stuff. 
} 

为Drupal 8 isAdminRoute()

$is_admin = \Drupal::service('router.admin_context')->isAdminRoute(); 
if ($is_admin) { 
    // Do stuff. 
} 
+0

你可以像这样使用它:if(path_is_admin(current_path())){做东西。 } – 2013-03-11 18:16:04

+0

谢谢我用你的例子更新了答案。 – gagarine 2013-03-19 14:42:47

7

我不完全了解您的最终目标,但这里有两个回答你的问题:

1)if (arg(0) == 'admin') { ... }将表明,如果有人在管理部分,因为整个管理部分具有管理员前缀路径/

2)在管理/设置/管理/主题,你可以选择一个单独的管理部分的主题,然后你会知道有人在管理时,该主题加载,而不是主要的主题。

+0

感谢您的答复,前端主题显示在,即使我有选择的管理section.i一个单独的主题要显示在管理部分的各个环节管理主题块管理部分。 – 2010-12-20 05:51:52

2

我不完全确定你的最终目标是什么。更多解释?

如果你正在检查路径,斯科特雷因的#1应该做的伎俩。

Drupal 6还有一个默认变量$ is_admin。如果当前用户具有管理员权限,则该值为TRUE。检查这个变量可能会有帮助。欲了解更多信息,请看这里:http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6

对于你的后续问题,前端主题总是显示在管理/建立/块。这是正确的和预期的行为,因为当你移动块并将它们分配给主题部分时,你想知道他们要在你正在配置的主题中去哪里。如果您启用了多个主题,请在admin/build/block中单击其他主题的设置(辅助行)。你会明白我的意思。

0

对于第一个问题,上面的解决方案必须做....来到第二个,似乎你想要登录块添加到页面的中心(即;主要内容),也只是在某些页面上..如果您需要进入块配置页面并将“用户登录”块设置为页面上的所需位置并点击保存,则需要这样做。然后再次单击该块旁边的配置,您将获得配置设置的选项,如“该块必须显示在哪个页面上”等..等..

0

为Drupal 6: @timmy和@Scott Reynen - 精氨酸(0)和SUBSTR($ _ GET [ 'Q'],0,5)等于'管理员'将错过一些模式。下面的代码可以获取我网站上的所有管理页面网址,您的网站可能会更多或更少。

$arg = arg(); 
$isAdminPage = ($arg[0] == 'admin' || $arg[2] == 'edit' || $arg[0] == 'user' || $arg[2] == 'workflow' || $arg[2] == 'statistics'); 
if ($isAdminPage) { 
    // do admin stuff 
} 
相关问题