Im Zuge eines Kunden-Projektes stand ich vor der Aufgabe Inhalte eines bestimmten Inhalts-Typen gefiltert nach bestimmten Kriterien zählen und die Anzahl ausgeben zu lassen.
Nach 2-3 kleineren Experimenten entschied ich mich für folgenden, sehr einfachen und effizienten Weg.
Ich erstellte zunächst eine Inhalts-View (Ansicht) welcher ich meine verschiedenen Filter und ein Feld des Inhalts-Typen gab.
Diese View erhielt von mir keine weiteren Displays ausser des Default-Displays.
Für die Ermittlung der Anzahl der entsprechenden Inhalte wand ich dann folgende Drupal-API auf die von mir erstellte View, an der von mir benötigten Stelle an.
$view = views_get_view('name_meines_views);
$view->execute();
$amount = count($view->result);
Erklärung:
Die API-Funktion views_get_view ermöglicht das Laden eines Views.
Die Methode execute, welche im Code auf das Views-Entity angewendet wurde, führt die View-Prozedur aus.
Im Attribut result sind die durch die View-Prozedur geladenen Datensätze in einem Array gespeichert.
Per count lässt sich dann also die Menge der Datensätze ermitteln.
Der Trick erparte mir eine Menge PHP-Schreiberei.
Und das View-Modul ist ohnehin sehr ausgeklügelt und mächtig. Es liegt also nahe, das Rad für so etwas angesichts dieser Möglichkeiten nicht noch einmal neu zu erfinden.
Die Variante lässt sich prima in das Header-Field eines andern Views verbauen (insofern das PHP Modul aktiviert ist).
Aber auch in eigene Hilfs-Modülchen.












Besser
views_get_view_result($view_name);.verwendenKommentar hinzufügen