web-dev-qa-db-fra.com

Compter le nombre de valeurs dans un champ qui accepte des valeurs illimitées

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.

7
jeroen

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.

4
abd

Il existe un moyen de le faire de manière native dans Drupal 7.

  1. Définissez "Utiliser l'agrégation" sur Oui
  2. Ajouter un champ contenant plusieurs valeurs, tel qu'un champ de fichier
  3. Définissez ses paramètres d'agrégation sur COUNT DISTINCT

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.

11
Lomax

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

2
Jimajamma

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.

1
paul-m

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;
0
Lee Woodman