Caméléon: un thème différent par catégorie/page statique
Bonjour à tous,
J'ai fait un plug in pour Cyrille qui voulait faire du multisite sans gérer plusieurs instances de pluXML.
Il suffit de créer un dossier de thème pour chaque catégorie ou page statique qu'on souhaite distinguer des autres.
On peut ainsi changer radicalement la mise en page, les «widgets», les sidebars et leur contenu...
Il y a un descriptif pluscomplet là http://warriordudimanche.net/article0486/cameleon-changer-de-theme-en-fonction-des-categories-et-pages-statiques
et pour le téléchargement c'est là : http://repo.warriordudimanche.net/ZIPFILES/Cameleon.zip
Si ça peut servir à quelqu'un ;-)
J'ai fait un plug in pour Cyrille qui voulait faire du multisite sans gérer plusieurs instances de pluXML.
Il suffit de créer un dossier de thème pour chaque catégorie ou page statique qu'on souhaite distinguer des autres.
On peut ainsi changer radicalement la mise en page, les «widgets», les sidebars et leur contenu...
Il y a un descriptif pluscomplet là http://warriordudimanche.net/article0486/cameleon-changer-de-theme-en-fonction-des-categories-et-pages-statiques
et pour le téléchargement c'est là : http://repo.warriordudimanche.net/ZIPFILES/Cameleon.zip
Si ça peut servir à quelqu'un ;-)
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
J'ai vu dans les sources de ton plugin que tu utilises l'instruction php glob.
Pour info, il me semble que glob est blacklisté par free.fr.
Donc pour ceux qui voudrait utiliser ce plugin sur leur hébergement free, il y a de forte chance que le plugin ne fonctionne pas
tu peux à la place utiliser ce genre de code qui fonctionne partout pour les lister les themes dispos et valides dans le dossier themes.
Ici le dossier theme est codé en dur, ce qui est maladroit car le chemin est configurable dans les parametres de PluXml.
Il faudrait donc faire référence à la valeur au paramètres racine_themes stocké dans le fichier renvoyé par path('XMLFILE_PARAMETERS')
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci !
[EDIT] j'ai fait une modif en ce sens ;-) merci encore
Encore quelques remarques
1) cette ligne qui ne semble plus servir, elle peux être supprimée
2) dans le fichier infos.xml, enlève les entités html, tu peux laisser les caractères avec accent
Exemple: thème => thème
Sinon dans l'admin sur l'écran de gestion des plugins on lit thème et pas thème
3) c'est peut etre volontaire mais dans le fichier infos.xlm tu as écris httpwarriordudimanche.net au lieu de http://warriordudimanche.net
4) j'ai ce warning dans l'admin
( ! ) Warning: Invalid argument supplied for foreach() in \PluXml\plugins\Cameleon\Cameleon.php on line 25
toujours tester avant un foreach si le tableau utilisé est renseigné, sinon il y a toujours un risque d'avoir ce genre warning
5) remplace la ligne
par
explication:
$this->theme_path renvoie le chemin "themes/", or ce dossier n'est pas accessible à partir de l'admin si tu ne précises pas devant PLX_ROOT.
donc l'instruction suivante ne renverra rien
donc array_flip va planter car cette instruction attend un tableau comme paramètre (paramètre vide ici car aucun dossier présent dans $files)
du coup tu auras cette erreur: Warning: array_flip() expects parameter 1 to be array, boolean given in \PluXml\plugins\Cameleon\Cameleon.php on line 22
en utilisant PLX_ROOT ça retournera à partir de l'admin "../../themes/" et "./themes/" coté visiteur. ça fonctionnera du coup dans les 2 contextes
Merci pour ce plugin. Testé, il fait super bien le job
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci à nouveau pour ces corrections ! j'ai modifié.
ça pourrait être intéressant d'avoir ce genre de plugin pour faire une démo avec plusieurs thèmes.
par contre, si on se base sur la catégorie, qu'est ce qui se passe quand on en utilise plusieurs catégories ?
Si tu as deux catégories du même nom, à part le fait que ça semble con au premier abord ^^, elles pointeront vers le même dossier...
Je reprends mon explication : plouf plouf.
Si tu as un article dans la catégorie A et dans la catégorie B (c'est possible avec PluXml) ET que tu as deux dossiers dans ton dossier themes qui s'appellerio categorie_a et categorie_b, c'est quel thème qui va s'afficher ? Celui par défaut ou un mix des deux thèmes ? Si c'est ça, je brûle un cierge chaque matin pour glorifier ton nom (ça je le fais déjà mais faut pas le dire).
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
En fait, le soucis semble être que la catégorie de $plxShow->catId() en mode article soit "home" quand l'article est multi catégorie... Je réfléchis pour voir...
Je serais bien tenté de te répondre «dans ton cul» mais ça ne ferait pas avancer le bouzin ^^
Sinon, c'est la même adresse... ⇧
excellent !!!
m'avez bien faire rire sur ce coup
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Moi je suis à Valence (la 3ème plus grande ville d'Espagne), il y a déjà beaucoup moins de français qu'à Barcelone
Je suis allé visiter Barcelone en été 2015, je me suis fait un peu la même réflexion que toi, je n'arrêtais pas d'entendre parler français autour de moi dans la rue, ici et là, quand on a l'habitude d'entendre parler espagnol autour de soi, cela surprend...
Pierre Aribaut - zetrader & zeforums
et le jour où on diffuse nos logs jabber on aura certainement des textes complets à faire étudier aux développeurs sur les relations entre la MOA et la MOE.
bon ben je vais faire avancer le bouzin pour voir ce que les nouvelles corrections de monsieur ont réussi à casser
J'ai pour l'instant simplement installé votre plugin mais avec le thème w3css http://wendling.xyz/ la page d'accueil et les page faq carte de site et contact sont décolorées. Auriez-vous une solution?