Template pour node sticky

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, 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 ?

Forum : 
Version de Drupal : 

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 :

<?php
function mon_theme_preprocess_node(&$variables) {
 if (
$variables['node']->sticky) {
    
$variables['template_files'][]='node-sticky';
  }
}
?>

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_...".