Module views : Personnaliser l'affichage uniquement du premier contenu d'une vue

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 à tous,

Je suis confronté à un problème semblable à ce poste : http://drupalfr.org/node/9060.

J'ai une toute petite vue (2 nodes de type Actualité) qui sont affiché dans un bloc en page d'accueil.

Chaque actualité contient une image (imagefield + image cache) et doit être affiché dans la page node.

Seulement en accueil, seulement la première image de la preimère actu doit être affichée.

Que dois je-faire, un var_dump($variables) du contenu de ma vue me donne un truc indigeste...

Comment faire un unset uniquement de ma seconde image dans ma fonction de pré traitement ?

function theme_preprocess_views_view_unformatted__actualite_accueil(&$variables) {
}

je sais qu'il est très simple de faire un display none en CSS et que dans mon cas la chute des performances est insignifiante... mais comment faire cela proprement en PHP ?

Merci de vos réponses.

Nico

Forum : 
Version de Drupal : 

Alors, voilà une façon de faire, au lieu de travailler dans ton preprocess qui va te poser des soucis plus qu'autre chose, je t'invite à travailler dans le fichier views-view-fields--actualite-accueil--block.tpl.php et dans ce fichier tu mets quelque chose dans le genre :

<?php
 
if ($view->row_id == 0) {
    echo
$fields["field_illustration_fid"]->content;
  }
  echo
"<br />";
  echo
$fields["title"]->content;
?>

Ca devrait être proche de ce que tu veux. Je suis parti du postulat où :
1/ Ta vue s'appelle actualite_accueil.
2/ Tu as un display de type block qui fait uniquement sortir le titre de l'actu et l'image attache qui s'appelle "field_illustration"

Tu me tiens au courant ;)

Salut,

je reviens sur ce post car j'ai exactement le même besoin (mais, je n'utilise pas sementic views) et ça ne fonctionne pas correctement, à savoir que j'ai mon image qui apparaît sur tous les nodes. Autrement dit, le problème semble venir de la condision.
(et si je remplace par "if ($view->row_id == 1)", aucune image apparaît).

ce que je comprends (je ne suis pas caler en php), c'est que le souci vient précisement du row_id)

je cherche partout depuis des heures et je ne trouve pas la solution... help !

Salut,

Après un petit moment de déprime je reviens...

J'utilise semantic views car views tout seul c'est pas jolie jolie !

je n'ai pas ce tpl :views-view-fields--actualite-accueil--block.tpl.php dans la vue block des actualités...

je suis un peu perdu !!!

Vu que tu utilises semantic views, le tpl s'appelle semanticviews-view-fields--NOMDELAVUE--block.tpl.php, tu peux voir les noms de fichiers à utiliser pour views dans la catégorie informations de l'interface de views.