2010-12-19 12 views

Odpowiedz

31

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. 
} 
+0

I można go użyć w następujący sposób: if (path_is_admin (current_path())) { // Wykonuj czynności. } –

+0

Dzięki temu zaktualizowałem odpowiedź na przykładzie. – gagarine

7

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.

+0

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. –

2

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.

0

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 ..

0

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 
} 
Powiązane problemy