Jak sprawdzić, czy bieżąca strona znajduje się w sekcji administracyjnej drupala ?. Chcę wyświetlić formularz logowania na niektórych stronach z głównego menu, ale strona logowania jest wyświetlana w menu wyboru bloku. Proszę zasugerować rozwiązanie ..jak sprawdzić, czy użytkownik jest w części administracyjnej drupala?
Odpowiedz
Dla Drupal 7 możesz użyć path_is_admin().
if (path_is_admin(current_path())) {
// Do stuff.
}
Na Drupal 8 isAdminRoute()
$is_admin = \Drupal::service('router.admin_context')->isAdminRoute();
if ($is_admin) {
// Do stuff.
}
Nie w pełni rozumiem twój cel końcowy, ale tutaj są dwa odpowiedzi na pytania:
1) if (arg(0) == 'admin') { ... }
wskaże, czy ktoś jest w dziale administracyjnym, ponieważ cała sekcja administrator ma ścieżek prefiksem admin/
2) w admin/settings/admin/tematu można wybrać oddzielny motyw dla sekcji administratora, a następnie będziesz wiedział, że ktoś jest w administratorze podczas ładowania tematu, a nie motyw główny.
dzięki za odpowiedź, przód motyw jest wyświetlany w sekcji zarządzania Blok chociaż mam osobny motyw wybrany dla section.i administratora chcesz wyświetlić temat administratora dla każdego łącza w sekcji admin. –
Nie jestem do końca pewien, jaki jest twój ostateczny cel. Więcej wyjaśnień?
Jeśli szukasz ścieżki, numer 1 Scotta Reynena powinien wystarczyć.
Drupal 6 ma również domyślną zmienną, $ is_admin. To będzie PRAWDA, jeśli bieżący użytkownik ma dostęp administracyjny. Sprawdzanie tej zmiennej może być pomocne. Aby uzyskać więcej informacji, zobacz tutaj: http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6
Do Twojego pytania uzupełniającego motyw z przodu jest ZAWSZE wyświetlany w folderze admin/build/block. Jest to poprawne i oczekiwane zachowanie, ponieważ podczas przenoszenia bloków i przypisywania ich do sekcji tematycznych, chcesz wiedzieć, gdzie zmierza temat, który konfigurujesz. Jeśli masz włączonych wiele tematów, spróbuj kliknąć inne ustawienia tematu (drugi wiersz), gdy jesteś w admin/build/block. Zobaczycie, co mam na myśli.
Dla pierwszego pytania powyższe rozwiązania muszą być .... przechodząc do drugiego, wydaje się, że chcesz dodać blok logowania do centrum (tj. Główną treść) strony i to też tylko na niektórych stronach. Jeśli tak jest, musisz przejść do strony konfiguracji bloków i ustawić blok "Logowanie użytkownika" w żądanym miejscu na stronie i kliknąć Zapisz. Następnie ponownie kliknij configure obok bloku, a otrzymasz opcje konfiguracji ustawień takich jak "na których stronach musi być wyświetlony ten blok" .. etc..etc ..
Na Drupal 6: @timmy i @Scott Reynen - Arg (0) i substr ($ _ GET [ 'q'], 0, 5) równa się "admin" będzie brakować niektórych wzorów. Poniższy kod pobiera wszystkie adresy URL strony administracyjnej w mojej witrynie, Twoja witryna może mieć więcej lub mniej.
$arg = arg();
$isAdminPage = ($arg[0] == 'admin' || $arg[2] == 'edit' || $arg[0] == 'user' || $arg[2] == 'workflow' || $arg[2] == 'statistics');
if ($isAdminPage) {
// do admin stuff
}
I można go użyć w następujący sposób: if (path_is_admin (current_path())) { // Wykonuj czynności. } –
Dzięki temu zaktualizowałem odpowiedź na przykładzie. – gagarine