Theme de views pour des pages spécifiques (page d'acceuil)

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,

Je travaille actuellement sur la mise en page de la page d'accueil de mon site en Drupal 6.12. J'ai crée une view qui sélectionne les contenus qui sont promus à la page d'accueil et j'ai crée une page page.front.tpl.php qui contient ma mise en page de page d'accueil.

J'aimerais modifier le code HTML qui est produit par le module Views en modifiant les fichiers views-view-fields.tpl.php et views-view-unformatted.tpl.php que j'ai copié dans mon répertoire theme. Cependant j'aimerais que mes modifications ne s'appliquent que aux views qui me servent dans ma page d'accueil.

Il semblerait que « suggestions » puisse m'aider à faire quelque chose.. mais je suis un peu perdu avec comment les faire marcher dans mon cas.

Forum : 

Bonjour,

je suis comme toi un peu nouveau à Drupal, son architecture et sa manière de fonctionner, donc toutes mes excuses à ceux qui trouveront mon charabia peu clair.

J'ai eu un problème similaire quand j'ai voulu intégrer Jquery Tools (http://flowplayer.org/tools/index.html) avec Drupal (grâce au module JQuery Tools pour Drupal 6 (http://drupal.org/project/jquerytools)), il n'y a pas vraiment de module pour faire les outils (les tabs, le tooltip, le scrollable) automatiquement, donc faut faire "à la main".

Je te donne la démarche que j'ai suivie pour arriver à mes fins:

Premier lien important, la documentation du module Views :
http://views-help.doc.logrus.com/help/views/using-theme

Ensuite pour procéder :

Tu vas dans les paramètres de ta vue (admin/build/views/edit/%tavue),
Dans la section Basic Settings, il y a un champ qui s'appelle Theme avec la valeur Information.
En cliquant dessus, tu vas pouvoir voir les suggestions pour les fichiers de template.

Tu as plusieurs choix :

(dans mon cas)
Display output
Style output
Row style output
Field Content: Image
Field Node: Title
Field Node: Body
Field Content: link

Cette longue liste de noms de fichiers .php.tpl te donnent pas mal d'informations :

  • en gras, tu trouveras les fichiers de template actuellement utilisés pour ta vue. Ils seront génériques (du genre views-view.tpl.php, views-view-unformatted.tpl.php ...).
  • En cliquant sur le titre de chaque section (ie Display output, Style Output), tu accéderas au fichier php générique, qui te servira de base pour démarrer ton propre fichier de template.
  • A côté des noms génériques de fichiers templates, tu trouveras des noms qui font référence à ta vue (Views-view-unformatted--tavue.tpl.php,...). Tu vas donc nommer tes fichiers templates de cette manière pour qu'ils soient reconnus par Drupal (tu as sûrement remarqué le bouton Rescan Templates Files, qui sert exactement à rechercher les fichiers de templates que tu vas créer)

La question maintenant est :
quel fichier template dois je créer ? Celui qui modifiera le Display output ? le Style output ?
Un saut sur la documentation de Views (http://views-help.doc.logrus.com/help/views/style) te donne les informations dont tu as besoin.

En pratique, comment fait on ?
(pour ne pas trop paraitre générique, je prends l'exemple où je modifie le style de la ligne (views-view-fields--tavue.tpl.php)

  • tu cliques sur le titre de la section Row style output
  • tu copies son contenu
  • tu crées le fichier de template views-view-fields--tavue.tpl.php que tu enregistres dans ton dossier de theme
  • tu colles le contenu du fichier générique.
  • dans les paramètres de ta vue, tu cliques sur Rescan Templates Files pour que ton nouveau fichier soit reconnu (il apparaîtra alors en gras)
  • tu le modifies à ta guise :
    • Un petit saut sur la documentation de Views http://views-help.doc.logrus.com/help/views/using-theme te donnera en mieux ce que j'essaie d'expliquer dans les points suivants
    • pour la modification, l'outil de Développement de Drupal est très pratique. Il te permet d'avoir accès aux champs que tu vas intégrér dans ta vue. Sinon tu mets un "bon vieux" : <?php drupal_set_message('<pre>' . var_export($row, true) . '</pre>'); ?> dans ton fichier php, ça te donnera un bloc avec les champs auxquels tu as accès.
    • la variable $row te donne accès à tous les champs pour personnaliser à ta convenance
    • Il ne 'reste plus qu'à' écrire ton propre code pour qu'il ressemble exactement à ce que tu veux.
    • Pour avoir accès au champ dont tu as besoin, tu utilises, par exemple si tu veux afficher ton titre <?php print($row->{'title'}); ?>.

Deux points importants :

  • sachant que tu affiches des données rentrées par l'utilisateur, il est bon de s'assurer un peu de sécurité, utilise donc la fonction check_plain() (http://api.drupal.org/api/function/check_plain)
  • Si tu as ajouté des champs avec CCK, n'oublie pas de régler les permissions pour que les roles à qui ta vue est destinée aient accès à ces champs

Comme tu as modifié ta vue et qu'elle ressemble à ce que tu souhaites, tu peux donc la publier en page d'accueil, soit en tant que bloc soit en tant que page.

Voilà pour ma réponse. Comme dit plus haut dans le post, je suis un petit nouveau sur Drupal, il y a donc pas mal d'erreurs. Si quelqu'un de plus expérimenté veut corriger ou ajouter un point, j'en serai plus que ravi. On est là pour apprendre.

J'en profite pour poster un lien sur le "theming" de Views (ça pourrait servir aux personnes qui cherchent sur le forum)
Ca me semble bien plus simple que d'utiliser les fichiers de templates, on utilise la fonction 'output rewrite' intégrée à Views2.
Après il y a sûrement des inconvénients et avantages à chacune des méthodes.
pour le lien c'est par ici (en anglais):
http://pras.net.np/blogs/styling-views-using-output-rewrite