J'ai un champ d'image qui peut contenir des valeurs illimitées. Comment afficher le nombre de valeurs d'image contenues dans ce champ dans les vues?
J'utilise Drupal 7.
installez d'abord champ calculé module puis vous devez écrire une boucle for dans la variable qui compte la valeur du champ, puis vous venez de sortir cette variable.
Il existe un moyen de le faire de manière native dans Drupal 7.
Facile. Cela activera cependant l'agrégation pour tous les champs, mais les paramètres par défaut pour les autres champs les feront se comporter normalement.
Bonne question. Il peut y avoir une meilleure méthode ou une méthode intégrée pour ce faire, mais sinon, vérifiez d'abord le group multiple values together
option de configuration dans le champ avec lequel vous traitez, puis créez un modèle pour la vue et le champ en question:
<?php
$foo=node_load($row->nid);
if (count($foo->field_photo)) {
print 'There are ' . count($foo->field_photo) . ' photos in this node.';
}
En lançant rapidement une vue nommée foo
avec un field_photo
dedans, ce serait dans un modèle appelé views-view-field--foo--field-photo-fid.tpl.php
En utilisant Vues, vous voulez que votre vue affiche les champs, et votre champ de vue sera le delta du champ d'entité.
"Delta" signifie simplement compter.
Ainsi, par exemple, sur mon site dans la boîte de dialogue "Ajouter un champ" des vues, je vois un champ appelé "Contenu: Pièces jointes (téléchargement: delta)". L'ajout de cela me permet de montrer combien de fichiers ont été joints à ce nœud.
Lorsque vous configurez ce champ, vous voudrez probablement faire attention à la section "aucun comportement de résultats", pour le masquer si delta = 0 ou quelque chose.
HTH.
En utilisant le Vues PHP j'ai ajouté le champ Photos/Images comme d'habitude, puis j'ai ajouté un champ Global PHP champ et ajouté:
$photos = $data->field_field_images;
$count = count($photos);
//dsm($count);
print $count;