[Resolu]Theme Defaut : Selon l'url d'accès

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

J'ai une problématique a soumettre. Celle ci consiste a savoir s'il serait possible de fixer un theme defaut selon l'url d'appel.

Exemple :
Si la personne accéde au www.ecole1.com, le DNS redirige cette url sur le seveur WEB Drupal en fixant le theme Ecole1 pour la page d'accueil en mode (non loggué).
Si la personne accède au www.ecole2.com, le DNS redirige cette url sur le serveur WEB Drupal en switchant sur le theme Ecole2 pour la page d'accueil en mode (non loggué).

Merci d'avance pour vos réponses.

Forum : 
Version de Drupal : 

Tu as sûrement des modules qui font cela, mais tu peux le faire toi-même très simplement dans un module custom (pour le créer, j'ai mis l'URL d'un tuto dans ma signature :)

Dans ce module, tu rajoutes un mon_module_init() qui ressemble à cela :

<?php
function mon_module_init() {
   global
$custom_theme;
   switch (
$_SERVER['SERVER_NAME']) {
 case
'wwww.ecole1.com': {
       
$custom_theme='mon_theme_1';
     break;
 }
  case
'wwww.ecole2.com': {
       
$custom_theme='mon_theme_2';
     break;
 }
   }
}
?>

Un module de plus pour si peu, c'est pas exagéré ? D'autant plus que ce n'est pas le genre de chose que l'on paramètre tous les jours. Même pour les sites mobiles maintenant je passe par ce genre de routine. En plus l'avantage c'est qu'il suffit de déployer pour que ça marche, pas besoin de refaire les configurations en préproduction/production.

C'est vrai, on se retrouve vite avec des requetes sql (pour faire une café qu'on a pas commandé en plus) inutiles si on fait pas attention.
je connaissais pas cette variable $custom_theme : je peux mettre ça dans les tips PHP de la documentation du site (avec référence à son auteur) ?

Et même sans référence, ça ira très bien, c'est connu comme "astuce", je vais passer pour un con ;-) C'est notamment ce qui est utilisé par Drupal pour gérer les thèmes spécifiques par utilisateur.

@emerya (C)le chat noir qui fume

Bonjour,

Merci à vous tous d'avoir pris le temps de répondre à mon interrogation. Ces réponses devraient nul sans doute continuer a faire évoluer un site web mais surtout me conforter sur mon choix 'Drupal'.

En tout cas, cette communauté active me poussera surement dans les semaines à venir à vous proposer quelques suggestions d'évolutions d'ordre plutôt fonctionnel sans pour autant dévier du rôle qu'incombe un CMS.

Pour finir, faire ce type de modification n'est pas finalement très compliqué mais il faut avouer qu'il est toujours plus sage d'utiliser des modules de base plutôt que 'triffouiller' Drupal avec tous les désavantages que cela engendre (update).

Cordialement,


Pour finir, faire ce type de modification n'est pas finalement très compliqué mais il faut avouer qu'il est toujours plus sage d'utiliser des modules de base plutôt que 'triffouiller' Drupal avec tous les désavantages que cela engendre (update).

Correction, il ne faut juste jamais trifouiller Drupal. Même sur de gros projets cela a du m'arriver une à deux fois tout au plus. Ce que j'ai écrits plus haut n'a rien à voir avec un, triffouillage, c'est la manière standard (en faisant ton propre module) de modifier le comportement de Drupal.

Bonjour,

Je l'entends bien aussi dans ce sens mais n'est il pas plus simple d'integrer ce genre de module dans ceux de bases d'autant plus qu'il n'y a rien de metier dans cette fonctionalité.

J'ai moi aussi fais les frais d'essayer de toucher au coeur de Drupal.
Franchement je suis vite revenu dans le droit chemin surtout lorqu'on essaye d'intègrer des fonctionalités dites 'métier' avec l'aide d'un autre frameWork comme Zend.

Merci 'chat' d'avoir releve cette erreur d'expression.

Je ne suis pas d'accord sur le fait qu'il n'y ait rien de "métier". C'est une fonctionnalité de ton site qui est là même quelle que soit le thème utilisé, c'est donc bien du "métier".

Pour l'intégration,je ne vois pas bien où se trouve la difficulté. Attention cependant, un module custom doit TOUJOURS se trouver dans le dossier sites/all/modules/[ta_boite]/[ton_module]. Ainsi aucun soucis pour les mises à jour de Drupal. Vu que tout ce qui "bouge" est dans /sites, il suffit de le déplacer, d'écraser l'ancien drupal et de le remettre en place.

Pour ce qui est du coeur de Drupal, je crois qu'on est tous passé par là, sinon comment apprendre, et surtout comprendre que c'est une mauvaise idée ;-)