¿Cuál es la forma correcta de cambiar el tema activo de Drupal mediante programación?
22
Solución Drupal 6:
Desea asegurarse de cambiar la $custom_theme
variable global bastante temprano en la ejecución de la página.
global $custom_theme;
$custom_theme = 'garland';
$custom_theme
define ¿Es suficiente para cambiar de tema?hook_custom_theme
api.drupal.org/api/drupal/modules%21system%21system.api.php/…Sé que preguntaste cómo hacerlo programáticamente, pero en caso de que esa sea tu solución, no el problema real, también puedes usar el módulo ThemeKey . Esto le permite establecer condiciones que, cuando se cumplen, cambian el tema. Puede crear condiciones basadas en rutas, taxonomía, tipo de contenido, fecha de creación o edición y más. También puede agregar el módulo de módulo de Propiedades Themekey para obtener aún más opciones.
Una vez más, sé que esto no es programáticamente, pero no estoy seguro de si la verdadera pregunta detrás de su pregunta es cómo cambiar los temas según las condiciones.
fuente
La mejor manera de hacer esto es crear un enlace de actualización en un módulo:
fuente
Cambiar el tema activo a través de Drush
Cambiar el tema activo a través de un módulo
Los conceptos básicos para cambiar el tema predeterminado y el tema de administración:
Aquí hay una pequeña función para restablecer los temas de forma segura a los temas predeterminados de Drupal como Bartik o Garland (probado en Drupal 6 y 7):
Puede llamarlo en una implementación hook_init () (coméntelo después de que no sea necesario):
fuente
variable_set('theme_default','yourtheme');
En Drupal 7, use
hook_custom_theme()
:Adaptado de <emoticode />
Devuelve el nombre legible por máquina del tema para usar en la página actual.
Los comentarios para esta función pueden valer la pena leer:
fuente
Para Drupal 8:
En settings.php
Actualizar la configuración mediante programación:
fuente