¿Hay alguna manera de forzar que una página se represente en el tema de administrador, como páginas que su ruta comienza con 'admin /'?
Hay un módulo contrib ThemeKey que
le permite definir reglas de cambio de tema simples o sofisticadas que permiten la selección automática de un tema según la ruta actual, los términos de la taxonomía, el idioma, el tipo de nodo y muchas, muchas otras propiedades. También se puede ampliar fácilmente para admitir propiedades adicionales expuestas por otros módulos. En combinación con la herencia de temas de Drupal y las Propiedades de ThemeKey, puede lograr fácilmente características como:
canales de estilo individual una pantalla de portada / "bienvenida" un tema móvil de tema de Navidad seleccionado por fecha / hora para diferentes dispositivos móviles autodetectados temas especiales para navegadores de contenido "limitado" o "antiguo", usuario o temas específicos de roles indicando su entorno (producción, puesta en escena, pruebas, sandbox, ...) probando su rediseño de forma segura en un servidor en vivo
Verifique también la pregunta relacionada aquí .
También puede hacer esto haciendo un módulo personalizado.
Método 1
Úselo si desea crear un tema para una página existente, basada en la ruta interna de Drupal (también conocida como fuente de ruta). Este ejemplo usa hook_custom_theme .
<?php
function MYMODULE_custom_theme() {
// match node/1
if (arg(0) == 'node' && arg(1) == '1') {
return variable_get('admin_theme');
}
}
Método 2
Use esto si desea crear un tema para una página existente, en función de la ruta URL (también conocido como alias de ruta). Este ejemplo también usa hook_custom_theme .
<?php
function MYMODULE_custom_theme() {
// get arguments
$arg = explode('/', substr(request_uri(), strlen(base_path())));
// match {wildcard}/path
// Using strpos as $arg[1] may end up having stuff like so ?order=title&sort=asc
if (isset($arg[1]) && strpos($arg[1], 'path') !== false && !isset($arg[2])) {
return variable_get('admin_theme');
}
}
Método 3
Úselo si desea crear un tema y crear una página. Este ejemplo usa hook_menu . Para obtener más información, eche un vistazo a otro excelente artículo sobre hook_menu .
<?php
function MYMODULE_menu() {
$items = array();
// match some/path
$output['some/path'] = array(
'title' => t('Page Title'),
'page callback' => 'MYMODULE_page',
'theme callback' => 'variable_get',
'theme arguments' => array('admin_theme'),
)
}
function MYMODULE_page() {
return 'Hello world.';
}
Si es un desarrollador de módulos, puede usar hook_admin_paths para definir qué rutas se deben representar con el tema de administración.
Simplemente dale a la página una ruta que comience con admin: 'admin / mypage'
Esta funcionalidad ahora está en el núcleo D7.
Hay un módulo que expone efectivamente "hook_admin_paths" a la interfaz de usuario: https://drupal.org/project/admin_theme
fuente