Как проверить, находится ли текущая страница в разделе администрирования drupal?. Я хочу отобразить форму входа на некоторые страницы из главного меню, но страница входа в систему отображается в меню выбора блока. Пожалуйста, предложите решение.
Как проверить, находится ли пользователь в админ-части drupal?
Ответ 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
}