2010-12-19 16 views

Respuesta

31

Para Drupal 7 puede usar path_is_admin().

if (path_is_admin(current_path())) { 
    // Do stuff. 
} 

Para Drupal 8 isAdminRoute()

$is_admin = \Drupal::service('router.admin_context')->isAdminRoute(); 
if ($is_admin) { 
    // Do stuff. 
} 
+0

Y puede usarlo así: if (path_is_admin (current_path())) { // Hacer cosas. } –

+0

Gracias He actualizado la respuesta con su ejemplo. – gagarine

7

No entiendo completamente su objetivo final, pero aquí hay dos respuestas a su pregunta:

1) if (arg(0) == 'admin') { ... } indicará si alguien está en la sección de administración, ya que toda la sección de administración tiene caminos prefijados con admin/

2) en admin/settings/admin/tema que puede seleccionar un tema separado para la sección de administración, y luego sabrá que alguien está en administración cuando ese tema se está cargando en lugar del tema principal.

+0

gracias por la respuesta, el tema extremo frontal se muestra en la sección de gestión de bloque a pesar de que tengo un tema aparte seleccionado para los section.i administrador desea mostrar el tema de administración para cada eslabones de la sección de administración. –

2

No estoy seguro de cuál es tu objetivo final. ¿Más explicación?

Si está buscando el camino, Scott Reynen's # 1 debería hacer el truco.

Drupal 6 también tiene una variable predeterminada, $ is_admin. Esto será VERDADERO si el usuario actual tiene acceso de administrador. La comprobación de esta variable podría ser útil. Para obtener más información, consulte aquí: http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6

Para su pregunta de seguimiento, el tema del front-end SIEMPRE se muestra en admin/build/block. Este es el comportamiento correcto y esperado, ya que mientras mueve bloques y los asigna a secciones de tema, querrá saber a dónde van en el tema que está configurando. Si tiene varios temas habilitados, intente hacer clic en la configuración de un tema diferente (fila secundaria) mientras está en admin/build/block. Verás a qué me refiero.

0

Para la primera pregunta que deben hacer las soluciones anteriores .... al llegar al segundo, parece que desea agregar el bloque de inicio de sesión al centro (es decir, el contenido principal) de la página y solo eso también en algunas páginas ... si este es el caso, debe ir a la página de configuración de bloques y configurar el bloque "Inicio de sesión de usuario" en el lugar deseado en la página y hacer clic en guardar. Luego, de nuevo haga clic en configurar al lado del bloque y obtendrá las opciones para configurar los ajustes como "en qué páginas debe mostrarse este bloque" ... etc..etc ..

0

Para Drupal 6: @timmy y @ Scott Reynen - arg (0) y substr ($ _ GET [ 'q'], 0, 5) es igual a 'admin' se perderán algunos patrones. El siguiente código obtiene todas las URL de la página de administración en mi sitio, su sitio puede tener más o menos.

$arg = arg(); 
$isAdminPage = ($arg[0] == 'admin' || $arg[2] == 'edit' || $arg[0] == 'user' || $arg[2] == 'workflow' || $arg[2] == 'statistics'); 
if ($isAdminPage) { 
    // do admin stuff 
} 
Cuestiones relacionadas