Подтвердить что ты не робот

Как проверить, находится ли пользователь в админ-части drupal?

Как проверить, находится ли текущая страница в разделе администрирования drupal?. Я хочу отобразить форму входа на некоторые страницы из главного меню, но страница входа в систему отображается в меню выбора блока. Пожалуйста, предложите решение.

4b9b3361

Ответ 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.
}

Ответ 2

Я не совсем понимаю вашу конечную цель, но вот два ответа на ваш вопрос:

1) if (arg(0) == 'admin') { ... } будет указывать, находится ли кто-либо в разделе администратора, поскольку весь раздел администрирования имеет пути с префиксом admin/

2) В admin/settings/admin/theme вы можете выбрать отдельную тему для раздела admin, а затем вы узнаете, что кто-то находится в admin, когда эта тема загружается, а не основная тема.

Ответ 3

Я не совсем уверен, какова ваша конечная цель. Больше объяснений?

Если вы проверяете путь, Scott Reynen # 1 должен сделать трюк.

Drupal 6 также имеет переменную по умолчанию, $is_admin. Это будет ИСТИНА, если у текущего пользователя есть доступ администратора. Возможно, будет полезно проверить эту переменную. Для получения дополнительной информации см. Здесь http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6

К вашему следующему вопросу, тема переднего плана ВСЕГДА отображается в admin/build/block. Это правильное и ожидаемое поведение, поскольку, пока вы перемещаете блоки и назначаете их в разделы темы, вы должны знать, где они находятся в теме, которую вы настраиваете. Если у вас включено несколько тем, попробуйте нажать другие настройки темы (вторичная строка), а в admin/build/block. Вы увидите, что я имею в виду.

Ответ 4

Для первого вопроса должны быть выполнены указанные выше решения... переход ко второму, кажется, что вы хотите добавить блок входа в центр (т.е. основное содержимое) страницы, и это тоже некоторые страницы. Если это так, вам нужно перейти на страницу конфигурации блоков и установить блок "Вход пользователя" в нужное место на странице и нажать "Сохранить". Затем снова щелкните по настройке рядом с блоком, и вы получите параметры для настройки таких параметров, как "на каких страницах должен отображаться этот блок".. и т.д...

Ответ 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
}