Theming view

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.

Salut les drupalonautes,

Ma question concerne la création des templates notamment à partir des views.

J'ai généré le code nécessaire avec theming wizard, placé la nouvelle fonction dans template.php, mis en ligne la page de la vue (views-list-musique.tpl.php).

Le résultat à l'affichage montre bien les ajouts manuels sur views-list-nomdemavue.tpl.php mais impossible d'ajouter des variables de champs spécifiques autre que

<?php
 
print $title_label
?>

ou

<?php
 
print $title
?>

: impossible par exemple d'ajouter un teaser, et surtout le champ logo de field type image

<?php
 
print $field_logo
?>

Ce que je cherche à faire c'est afficher sur deux cols ou plus, la liste des articles et pages musique (view musique) avec le logo et/ou le teaser : une manip simple mais assez rebutante sur Drupal.

Comment enleveriez-vous aussi le menu de navigation sur une page de type view ?

A côté, la génération des vignettes n'est pas non plus aisée . Il suffit que je place une image attachée en début du body pour qu'il me l'affiche dans le teaser. Le lien vers l'image attachée s'affiche aussi dans l'article à ma grande déconvenance. Je suis contraint d'ajouter un break avant l'image dans ce même body (pas intuitif pour les contributeurs) ou de placer l'image au milieu de l'article pour qu'il ne me l'affiche pas en teaser !?.

Je passe par un CCK image pour générer une vignette (le logo de l'article) ce qui m'oblige à recadrer automatiquement le logo via les css. Or, la classe ".field-field-logo img" sera la même dans le block (pour le teaser) que sur la page view!

Comment procédez-vous pour afficher les articles d'une view en particulier sur deux ou plusieurs cols ?
Quelle est votre méthode pour créer des vignettes d'articles sachant que les thumbnails générées à partir du module image sont fixées en largeur ou hauteur et je ne vois pas dans ce cas comment activer + de 5 et sur quelle page renseigner les labels autres que thumbnail?

Merci à vous.

Stéphane, Lyon

Version de Drupal : 

Salut,

Génération des thumbnails

Combine l'utilisation du champ CCK image avec le module imagecache. Ca marche très bien et ça te permet de contrôler précisément la taille des images (en mode teaser ET en mode page).

Personnalisation de la vue

Une vue est une liste d'éléments. Le template que tu as créé (views-list-musique.tpl.php) sert à afficher UN SEUL de ces éléments.

Si tu veux afficher ta liste sur 2 colonnes, la personnalisation doit intervenir au niveau de la génération de la liste, pas de la génération d'un élément. Autrement dit, il faut modifier le code de la fonction que tu as ajoutée dans template.php, car c'est elle qui définit la charpente globale de la page (par défaut, cette charpente est une liste générée par theme('list'...) mais rien ne t'empêche de la remplacer par un tableau de ton propre cru).

Ce sont plus des pistes qu'une explication détaillée, mais elles devraient te permettre de partir dans la bonne direction.

Imagecache :
Pas mal, il faut que je trouve le moyen de supprimer l'image qui vient par défaut se substituer en cas d'un article sans logo (image field CCK). Pas fun sur Ie.

Personnalisation de la vue 2 colonnes :
J'ai recours pour le moment à Panel + Bonus Pack Views. Il me suffit alors de personnaliser un peu twocols.css (parmi les fichiers du module panel. cela revient à peu près au même que ta piste que j'essaierai à la mano.

.panel-2col .panel-col-first {
float: left;
width: 400px;
}

.panel-2col .panel-col-first img, .panel-2col .panel-col-last img{
width: 150px;
height: 150px;
float: left;
padding-right: 5px;
}