clah Posted October 19, 2010 Share Posted October 19, 2010 Bonjour,Pour certaines occasions, je souhaiterais changer de thème, mais suivant le design du thème, les modules installés ne sont pas forcément bien adaptés.La solution serait d’identifier le thème et de rendre actif ou non le module concerné.Par exemple pour le module blockcategories :If ($theme==”theme1”) {return $this->display(__FILE__, 'blockcategories.tpl');}La question est, comment identifier le thème affiché par le client ?Avec mes remerciements. Link to comment Share on other sites More sharing options...
Patric Posted October 19, 2010 Share Posted October 19, 2010 Topic déplacé dans la bonne section. Link to comment Share on other sites More sharing options...
clah Posted October 22, 2010 Author Share Posted October 22, 2010 Puisque personne ne semble motivé pour m’aider, alors je me suis encore aidé tout seul.Et pour ceux que ça intéresse,Si vous avez besoin de rendre actif un module pour un thème, et inactif pour un autre thème, voici la solution :Exemple pour l’affichage du module blockcategories.Remplacer dans le fichier « blockcategories.php » la lignereturn $this->display(__FILE__, 'blockcategories.tpl');Parif (preg_match("/\biNomdevotretheme\b/i", _PS_THEME_DIR_)) {return $this->display(__FILE__, 'blockcategories.tpl');}Explication : Si dans l’url du thème, on trouve le nom du thème ou le module blockcategories doit être affiché, on active le module.Bien sûr, remplacer dans le code Nomdevotretheme par le nom de votre thème.Voila ! Link to comment Share on other sites More sharing options...
DevNet Posted October 22, 2010 Share Posted October 22, 2010 Bonjour,Il y avait beaucoup plus simple.Chaque template de module peut-être géré indépendamment du module principal, mais aussi d'un thème à l'autre.La construction peut se faire comme suit :/themes/theme_1/modules/lemodule/lemodule.tpl -> avec un contenu dédié au thème 1/themes/theme_2/modules/lemodule/lemodule.tpl -> avec un contenu dédié au thème 2Ceci prendra le pas sur les tpl situés dans :/modules/lemodule/lemodule.tplBonne continuation Link to comment Share on other sites More sharing options...
clah Posted October 22, 2010 Author Share Posted October 22, 2010 Bonjour,Je vous remercie beaucoup pour votre proposition qui est certainement mieux adaptée.J’aimerais volontiers la mettre en en fonction mais je n’ai pas trouvé où placer cette syntaxe.Puis-je abuser de vos connaissances pour me donner la solution.Encore merci. Link to comment Share on other sites More sharing options...
DevNet Posted October 22, 2010 Share Posted October 22, 2010 Il n'y a aucune syntaxe particulière. Le noyau de PrestaShop prévoit déjà cette possibilité de personnaliser soit même ses propres fichiers tpl des modules.La personnalisation d'un thème et de modules, doit se comprendre comme une possibilité détachée du noyau et des modules natifs ou non.Ainsi, cela facilite les mises à jour du noyau et les évolutions de votre thème personnel.L'exemple simple d'une personnalisation idéale d'un thème qui utilise certains modules pour faire fonctionner votre boutique serai de ne pas personnaliser les fichier tpl dans /modules/lemodule/les-fichiers-tpl-du-module.tpl, mais de faire une copie de chaque tpl des modules souhaités et utilisés dans la boutique, et de les placer dans /themes/[votre_theme]/modules/lemodule/les-fichiers-tpl-du-module.tpl.Cette possibilité permettra au noyau PrestaShop d'interpréter en priorité les tpl placés dans votre thème. S'ils ne sont pas présents, il traitera ensuite ceux par défaut dans le module en lui même (soit /modules/lemodule/*).Ce qui veut dire que l'ensemble de vos personnalisations des templates se rend totalement détachable du noyau.Vous pouvez donc créer autant de thème que vous souhaitez avec pour chacun des thèmes des personnalisations respectives des tpl.Il ne vous reste plus qu'à créer votre fonction de changement de thème, sans vous soucier du changement de tpl. La référence principale du dossier de thème à la volée suffira.Bonne continuation Link to comment Share on other sites More sharing options...
clah Posted October 22, 2010 Author Share Posted October 22, 2010 Merci pour vos explications, et autant pour moi.J’avais bien remarqué le dossier module dans certains templates.En conclusion les modules des dossiers template sont traités en priorité.Merci beaucoup. Link to comment Share on other sites More sharing options...
botmez Posted May 26, 2011 Share Posted May 26, 2011 Il n'y a aucune syntaxe particulière. Le noyau de PrestaShop prévoit déjà cette possibilité de personnaliser soit même ses propres fichiers tpl des modules.La personnalisation d'un thème et de modules, doit se comprendre comme une possibilité détachée du noyau et des modules natifs ou non.Ainsi, cela facilite les mises à jour du noyau et les évolutions de votre thème personnel.L'exemple simple d'une personnalisation idéale d'un thème qui utilise certains modules pour faire fonctionner votre boutique serai de ne pas personnaliser les fichier tpl dans /modules/lemodule/les-fichiers-tpl-du-module.tpl, mais de faire une copie de chaque tpl des modules souhaités et utilisés dans la boutique, et de les placer dans /themes/[votre_theme]/modules/lemodule/les-fichiers-tpl-du-module.tpl.Cette possibilité permettra au noyau PrestaShop d'interpréter en priorité les tpl placés dans votre thème. S'ils ne sont pas présents, il traitera ensuite ceux par défaut dans le module en lui même (soit /modules/lemodule/*).Ce qui veut dire que l'ensemble de vos personnalisations des templates se rend totalement détachable du noyau.Vous pouvez donc créer autant de thème que vous souhaitez avec pour chacun des thèmes des personnalisations respectives des tpl.Il ne vous reste plus qu'à créer votre fonction de changement de thème, sans vous soucier du changement de tpl. La référence principale du dossier de thème à la volée suffira.Bonne continuation Merci,Et si on ne veut pas que le core aille chercher les modules dans theme par default mais qu'il traite uniquement les modules trouvés dans themesperso/modules ?Comment faire ? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now