Quelle est la bonne façon de modifier le thème Drupal actif par programme?
22
Solution Drupal 6:
Vous voulez vous assurer que vous modifiez la $custom_theme
variable globale assez tôt dans l'exécution de la page.
global $custom_theme;
$custom_theme = 'garland';
$custom_theme
défini? est-ce suffisant pour changer de thème?hook_custom_theme
api.drupal.org/api/drupal/modules%21system%21system.api.php/…Je sais que vous avez demandé comment le faire par programmation, mais si c'est votre solution, et non le problème réel, vous pouvez également utiliser le module ThemeKey . Cela vous permet de définir des conditions qui, une fois remplies, modifient le thème. Vous pouvez créer des conditions basées sur les chemins, la taxonomie, le type de contenu, créer ou modifier la date et plus encore. Vous pouvez également ajouter le module du module Themekey Properties pour obtenir encore plus d'options.
Encore une fois, je sais que ce n'est pas programmatique, mais je ne sais pas si la vraie question derrière votre question est de savoir comment changer les thèmes en fonction des conditions.
la source
La meilleure façon de le faire est de créer un hook de mise à jour dans un module:
la source
Changer le thème actif via Drush
Changer le thème actif via un module
Les bases de la modification du thème par défaut et du thème d'administration:
Voici une petite fonction pour restaurer les thèmes en toute sécurité sur des thèmes Drupal par défaut comme Bartik ou Garland (testé dans Drupal 6 et 7):
Vous pouvez l'appeler dans une implémentation hook_init () (commentez-le après qu'il ne soit pas nécessaire):
la source
variable_set('theme_default','yourtheme');
Dans Drupal 7, utilisez
hook_custom_theme()
:Adapté de <emoticode />
Renvoie le nom lisible par machine du thème à utiliser pour la page actuelle.
Les commentaires pour cette fonction méritent d'être lus:
la source
Pour Drupal 8:
Dans settings.php
Mettre à jour la configuration par programmation:
la source