Submitted by kirua46 on
Bonjour, peut-on créer un tpl.php seulement pour les articles sticky ? si oui, quel nom dois-je donner au fichier ?
Je souhaite mettre en page les articles sticky differement que ceux normaux seulement, un article, peut être sticky ou pas. Est-ce qu'il est possible de faire une mise en page qui change quand l'article devient sticky ?
Je ne pense pas (mais je
Permalien Soumis par Yoran le 23 Juillet, 2009 - 23:42
Je ne pense pas (mais je peux me tromper) qu'il y ait un nom de template éligibles pour le "sticky". En revanche, rien ne t'interdit de le faire toi-même. L'astuce est pas très connue mais fonctionne très bien. Dans ton template.php, ajoute une fonction mon_theme_preprocess_node comme suit :
Il faut que tu "rebuild" ta registry de thème (tu peux utiliser le module devel) pour que cela soit pris en compte.
L'astuce c'est que cette fonction sera la dernière appelée avant le choix du modèle par PHPTemplate. Si le node est en sticky, tu ajoutes donc insidieusement une nouvelle possibilité de modèle à la liste des noms de templates pour un node. Comme PHPtemplate les utilise en prenant prioritairement les derniers de la liste, c'est gagné.
Pense bien à documenter l'astuce dans ton code car ce n'est pas vraiment le bon endroit où faire ce genre de chose. Quelqu'un qui reprendrait ton projet et voudrait changer le thème, ne comprendrait pas que le node-sticky.tpl.php ne fonctionne plus. Idéalement cette fonction devrait plutôt être dans un module spécifique à ton projet (ex. mon_module), avec la même fonction en changeant juste le "mon_theme_..." par "mon_module_...".