En bloc sur ma page d'accueil, j'essaie de produire:
<ul>
<li><a><img><p>Node 1</p></a></li>
<li><a>Node 2</a></li>
<li><a>Node 3</a></li>
<li><a>Node 4</a></li>
</ul>
où chaque <li> représente un nœud, et l'image / le texte fourni par les champs CCK attachés à chaque nœud.
Actuellement, j'utilise une vue de bloc pour générer les nœuds 2-4 et une vue de pièce jointe pour présenter le premier nœud comme indiqué ici: http://www.agileapproach.com/blog-entry/the-views2-attachment-display
Le problème est que ma sortie se termine plus comme ceci:
<div class="attachment attachment-before">
<div class="view view-homepage-news ..">
<div class="item-list">
<ul>
<li class="views-row ...">
<a><img><p>Node 1</p></a>
</li>
</ul>
</div>
</div> <!-- /.view -->
</div>
<div class="item-list">
<ul>
<li class="views-row ..."><a>Node 2</a></li>
<li class="views-row ..."><a>Node 3</a></li>
<li class="views-row ..."><a>Node 4</a></li>
</ul>
</div>
Je peux probablement plier cette sortie en fonction de mon objectif, mais cela impliquera beaucoup de modèles et de configuration. Je voudrais également éviter d'utiliser CSS et / ou JavaScript pour modifier la sortie, sauf si c'est ma seule option.
Compte tenu de cela, quelle est la façon la plus simple de rapprocher la sortie de ce dont j'ai besoin?
Edit: voici un code php approximatif que j'utilise dans le champ de code php customfield (basé sur la suggestion de Jeremy French: Voici le code que j'utilise dans mon champ personnalisé PHP Code:
<?php
++$static;
if ($static == 1) {
$nd=node_load($data->nid);
$img_path = imagecache_create_path('news_image_thumbnail', $nd->field_image[0]['filepath']);
print '<a><img src="' . $img_path . '"><p>Node 1</p></a>';
} else {
print "<a>Node $static</a>";
}
?>
J'utilise personnellement des fonctions de prétraitement pour ce faire, quelque chose comme ceci:
la source
Je ne sais pas si je comprends bien votre question, mais je pense que vous pouvez utiliser le module Vues sémantiques pour cela. Si vous définissez le Style sous Paramètres de base sur Vues sémantiques, vous aurez alors une option sous les paramètres Vues sémantiques pour définir un "attribut de première classe", qui vous aidera à cibler le premier élément de la liste de votre vue dans le style de votre thème. fichier css.
la source
La solution la plus simple consiste à utiliser un modèle personnalisé. Cependant, cela ne nécessite pas beaucoup de travail. Avec les informations de thème disponibles dans l'interface des vues, vous pouvez voir quel modèle vous devez modifier. Tout ce que vous devez faire est d'ajouter du code pour imprimer les éléments supplémentaires pour le premier nœud. Les vues parcourront chaque ligne, donc cela devrait être facile.
la source