Anzahl der Werte in einem Feld zählen, das unbegrenzte Werte akzeptiert [geschlossen]


7

Ich habe ein Bildfeld, das unbegrenzte Werte enthalten kann. Wie kann ich die Anzahl der in diesem Feld enthaltenen Bildwerte in Ansichten anzeigen?

Ich benutze Drupal 7.

Antworten:


4

Installieren Sie zuerst das berechnete Feldmodul, dann sollten Sie eine for-Schleife innerhalb der Variablen schreiben, die den Wert des Felds zählt. Dann geben Sie einfach diese Variable aus.


1
Vielen Dank, dass Sie mich auf das berechnete Feldmodul hingewiesen haben. Ich musste allerdings keine Schleife schreiben. Ich habe gezählt. Berechneter Code: $ entity_field [0] ['value'] = count (field_get_items ($ entity_type, $ entity, 'field_images')); Anzeigecode: $ display_output = $ entity_field_item ['value']; Nachdem ich dieses Feld erstellt hatte, konnte ich meinen Wert in Ansichten dokumentieren.
Jeroen

11

In Drupal 7 gibt es eine Möglichkeit, dies nativ zu tun.

  1. Setzen Sie 'Aggregation verwenden' auf Ja
  2. Fügen Sie ein Feld hinzu, das mehrere Werte enthält, z. B. ein Dateifeld
  3. Setzen Sie die Aggregationseinstellungen dafür auf COUNT DISTINCT

Einfach. Dadurch wird jedoch die Aggregation für alle Felder aktiviert. Durch die Standardeinstellungen für andere Felder verhalten sie sich jedoch normal.


2

Gute Frage. Möglicherweise gibt es eine bessere oder integrierte Methode, aber wenn nicht, überprüfen Sie zuerst die group multiple values togetherKonfigurationsoption in dem Feld, mit dem Sie sich befassen, und erstellen Sie dann eine Vorlage für diese Ansicht und das betreffende Feld:

<?php
$foo=node_load($row->nid);
if (count($foo->field_photo)) {
  print 'There are ' . count($foo->field_photo) . ' photos in this node.';
}

Durch schnelles Zusammenfügen einer Ansicht mit dem Namen fooa field_photowird diese in einer Vorlage mit dem Namen angezeigtviews-view-field--foo--field-photo-fid.tpl.php


Ausgezeichnet! Hier ist kein zusätzliches Modul erforderlich! Ich habe dein Snippet views-view-fields--MYVIEWNAME.tpl.php
reingelegt

1

Wenn Sie Ansichten verwenden, soll Ihre Ansicht Felder anzeigen, und Ihr Ansichtsfeld ist das Delta des Entitätsfelds.

'Delta' bedeutet nur zählen.

So sehe ich beispielsweise auf meiner Website im Dialogfeld "Feld hinzufügen" ein Feld mit dem Namen "Inhalt: Dateianhänge (Upload: Delta)". Wenn ich dies hinzufüge, kann ich zeigen, wie viele Dateien an diesen Knoten angehängt wurden.

Wenn Sie dieses Feld konfigurieren, sollten Sie wahrscheinlich auf den Abschnitt "Verhalten ohne Ergebnisse" achten, um ihn auszublenden, wenn Delta = 0 oder so.

HTH.


Ist dieses Feld die Summe aller an den Knoten angehängten Dateien? Wenn ja, funktioniert das nur, wenn er keine anderen Dateifelder hat, oder?
Jimajamma

Dieses Ansichtsfeld würde die Summe aller an dieses Feld angehängten Dateien darstellen. Sie könnten also andere Dateifelder haben, die nicht angezeigt werden. Die Frage ist jedoch: Wie wird die Anzahl der Dateien für ein angehängtes Dateifeld angezeigt?
Paul-m

Der Grund, den ich gefragt habe, ist, dass zumindest in Drupal 6 das Delta-Feld das Delta des einzelnen Feldes anzeigt, z. B. wenn es 5 Dateien enthält, würde es 0, 1, 2, 3, 4, jeweils eine pro Zeile und anzeigen nicht 5, wie bei der Zählung von allen. Meine Frage ist also wirklich in Drupal 7. Gibt es ein anderes Delta-Feld, das die Anzahl aller Inhalte in einem Feld enthält, oder gibt es ein Feld, das zeigt, wie viele Dateien an den Knoten als Ganzes angehängt sind.
Jimajamma

@ Jimajamma Sie sind das richtige Delta und geben die Position innerhalb des Arrays an.
Jeroen

0

Mit dem PHP-Modul Ansichten habe ich das Feld Fotos / Bilder wie gewohnt hinzugefügt und dann ein globales PHP-Feld hinzugefügt und Folgendes hinzugefügt:

$photos = $data->field_field_images;
$count = count($photos);
//dsm($count);
print $count;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.