Voici une astuce qui concerne les templates Warp pour Joomla! qui sont abordés dans notre formation sur le templating Joomla!
Les modules joomla sont en parties pris en charge avec les templates WARP. Quand je dis "en partie" c'est qu'il subsiste quelques bugs malgré tout, notamment avec l'utilisation d'"Advanced module manager" - l'extension qui tue en matière de gestion de module et que tout vrai site joomla! moderne se doit d'intégrer dans son site (rien que ça)
Les titres des modules ont une class automatique gérée par warp : uk-panel-title si vous utilisez Yootheme par exemple... de plus, ils sont par défaut en H3.. Si vous voulez passez votre titre de module en H2 et que vous voulez lui assigner une class spécifique, vous devez aller dans l'onglet "paramètres avancés" du module et remplir les champs suivant :
RESULTAT : rien du tout ! en front office, il s'en fout complètement ! ça ou autre chose, c'est du pareil au même... Pourquoi ? PARCE QUE le style du module par défaut ne prends pas en compte les paramètres précédents ! il faut donc passer l'option "Style du module" de "Hérité" à "html5" comme suit :
ET LA STUPEFACTION ! ça marche mais à moitié seulement !!!
Maintenant, nous avons notre titre de module configuré qui apparaît ET le titre par défaut :
EN EFFET warp continue d'afficher le titre du module par défaut et notre configuration ne fait qu'ajouter un titre sans supprimer celui par défaut... POURQUOI ? parce que WARP gère l'affichage des titres de module sans se soucier du paramètre "Style du module"... c'est là qu'il faut overrider le widget.php qui gère l'affichage des modules :
vous le trouvez ici :
\templates\montemplate\layouts\widget.php
copiez le ici :
\templates\montemplate\styles\montemplate\layouts\widget.php
le petit code en plus consiste juste à récupérer les paramètres du module en question, de déjisonniser ces paramètres (s'pas français, je sais) et de rajouter un petit if en plus
Il faut rajouter ces lignes de code après la partie //set title qui assigne une valeur à la variable $title.
$pars = json_decode($widget->params);
$style = $pars->style;
if($style=='System-html5')$title='';
Avec ça, enfin, on a bien UN SEUL titre en H2 avec la bonne class qui s'affiche en front office :
Normalement, il suffit juste de paramétrer correctement le module pour qu'il ne s'affiche que s'il y'a un contenu:
OR STUPEFACTION ! ça ne marche toujours pas ! j'ai des modules de liste qui n'ont aucun item qui s'affichent toujours !
Donc, je fais une recherche plus poussée... je regarde tout d'abord OU est gérée dans le code le hideempty qui est le nom du paramètre qui gère l'affichage -ou non - des modules vide... je vois donc que c'est le plugin d'advanced module manager qui gère le cas, et qui fait un return true à la place d'afficher le module si la valeur du module est vide et que l'option hideempty est cochée...
SAUF QUE dans notre cas, c'est que le widget du yootheme prends le dessus... quel que soit le paramètre qu'on met, le fameux widget.php prends le dessus et gère l'affichage du module... il suffit donc de modifier le fichier widget.php (toujours le même, on n'en sort pas ^^ ) au moment ou il s'occupe du rendu des modules ( tout à la fin du fichier, donc, comme ça on est sur en plus de ne rien casser )
il suffit donc de remplacer
par ceci :
C'est rudimentaire, mais ça marche :D
N'hésitez pas à réagir en commentant l'article ou sur les réseaux sociaux - je vous donne même mon compte google +
https://plus.google.com/u/0/111173509958661808617
Mercii