Как проверить, находится ли пользователь в админ-части drupal? - PullRequest
11 голосов
/ 19 декабря 2010

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

Ответы [ 5 ]

35 голосов
/ 04 января 2013

Для 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.
}
7 голосов
/ 19 декабря 2010

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

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

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

2 голосов
/ 24 декабря 2010

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

Если вы проверяете путь, Скотт Рейнен # 1 должен добиться цели.

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

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

0 голосов
/ 05 мая 2014

Для 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
}
0 голосов
/ 30 декабря 2010

Что касается первого вопроса, который должны выполнить вышеуказанные решения .... переходя ко второму, кажется, что вы хотите добавить блок входа в центр (т. Е. Основное содержимое) страницы и это тоже только на некоторые страницы ... если это так, то вам нужно перейти на страницу конфигурации блоков и установить блок «User Login» в нужное место на странице и нажать «Сохранить». Затем снова нажмите «Настроить» рядом с блоком, и вы получите параметры для настройки параметров, например «на каких страницах должен быть показан этот блок» .. и т. Д. И т. Д.

...