【问题标题】:how to check if the user is in the admin part of drupal?如何检查用户是否在drupal的管理部分?
【发布时间】:2010-12-19 13:48:40
【问题描述】:

如何检查当前页面是否在 drupal 的管理部分?我想在主菜单的某些页面中显示登录表单,但登录页面显示在块选择菜单中。请提出解决方案..

【问题讨论】:

    标签: drupal drupal-modules drupal-theming


    【解决方案1】:

    对于 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.
    }
    

    【讨论】:

    • 你可以像这样使用它: if (path_is_admin(current_path())) { // 做事。 }
    【解决方案2】:

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

    1) if (arg(0) == 'admin') { ... } 将指示是否有人在管理部分,因为整个管理部分的路径都以 admin/ 为前缀

    2) 在 admin/settings/admin/theme 您可以为管理部分选择一个单独的主题,然后当加载该主题而不是主主题时,您会知道有人在管理中。

    【讨论】:

    • 感谢您的回复,即使我为管理部分选择了单独的主题,前端主题也会显示在块管理部分中。我想为管理中的每个链接显示管理主题部分。
    【解决方案3】:

    我也不确定您的最终目标是什么。更多解释?

    如果您正在检查路径,Scott Reynen 的 #1 应该可以解决问题。

    Drupal 6 还有一个默认变量 $is_admin。如果当前用户具有管理员访问权限,这将是 TRUE。检查此变量可能会有所帮助。有关更多信息,请参阅此处:http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6

    对于您的后续问题,前端主题始终显示在 admin/build/block 中。这是正确且预期的行为,因为当您移动块并将它们分配给主题部分时,您想知道它们在您正在配置的主题中的去向。如果您启用了多个主题,请尝试在 admin/build/block 中单击不同主题的设置(第二行)。你会明白我的意思。

    【讨论】:

      【解决方案4】:

      对于第一个问题,上述解决方案必须做到....来到第二个问题,您似乎想将登录块添加到页面的中心(即主要内容),而且也只能在一些页面..如果是这种情况,您需要转到块配置页面并将“用户登录”块设置到页面上所需的位置,然后单击保存。然后再次单击该块旁边的配置,您将获得配置设置的选项,例如“必须在哪些页面上显示此块”..etc..etc..

      【讨论】:

        【解决方案5】:

        对于 Drupal 6: @timmy 和 @Scott Reynen -- arg(0) 和 substr($_GET['q'], 0, 5) 等于 'admin' 会遗漏一些模式。下面的代码获取我网站上的所有管理页面 url,您的网站可能有更多或更少。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-10-02
          • 1970-01-01
          • 2018-02-02
          • 2014-05-01
          • 1970-01-01
          • 2011-10-02
          • 1970-01-01
          相关资源
          最近更新 更多