Welcher Weg oder elches Modul wenn man die Anzahl von Reihen von Views als Navigation nutzen möchte
am 28.02.2017 - 17:16 Uhr in
Welcher Weg oder welches Modul sollte man verwenden, wenn man die Anzahl von Reihen von Views als Navigation - Benutzerinfo nutzen möchte?
Beispiel: Du hast 12 Verträge, Du hast 6 Anfragen, Du hast 4 offene Projekte als Info im Header.
Es geht um eine Drupal Installation bei der ich mir eine Übersicht über den Status für den Benutzer wünsche. In dem Projekt gibt es eine Menge Views, die benutzerabhängig sind und in denen die Menge der Reihen der Views als Information für den Benutzer angezeigt werden soll.
Beispiel: Wie viele Foreneinträge hat dieses Forum. Wie viele Beiträge sind offen, wie viele Beiträge sind von mir. Auch in diesem Forum gibt es Links zu meinen Einträgen und es werden dann genau meine Einträge aus der Datenbank selektiert. Es gibt ja Funktionen in den Views für die Anzeige des aktuellen Datensatzes und aller Datensätze.
Ich dachte, dass ich über
$view_contract = views_get_view('contract');
$view_contract->set_display('page_abc');
$view_contract->pre_execute();
$view_contract->execute('page_abc');
$count_i = count($view_contract->result);
Gibt es da eine bessere Strategie, soll ich die Werte in die Datenbank schreiben und nur ein paar Mal pro Tag per cron Job aktualisieren? Oder die Daten werden nur aufgerufen, wenn neue Datensätze angelegt wurden oder kann man diese Werte cachen?
Falls es dafür eine bessere oder richtige Strategie gibt, freue ich mich auf Vorschläge.
Gruss
Katasun
- Anmelden oder Registrieren um Kommentare zu schreiben
Möglichkeiten
am 12.03.2017 - 11:30 Uhr
In views kannst du im Kopfbereich der View die Anzahl der Datensätze ausgeben (unter 'global' gelistet).
Ausserdem kannst du im view nach aktivieren der Aggregation (unter erweitert) Summen- oder Durchschnittswerte eines Feldwerts ausgeben.
Gibt es da eine bessere Strategie, soll ich die Werte in die Datenbank schreiben und nur ein paar Mal pro Tag per cron Job aktualisieren? Oder die Daten werden nur aufgerufen, wenn neue Datensätze angelegt wurden oder kann man diese Werte cachen
Wenn du dir Sorgen machst wegen Performance, kannst du deine Views zeitgesteuert cachen oder noch besser: mit rules und cache_actions immer dann den views cache löschen lassen, wenn etwas für den view relevantes passiert (z.B. ein neuer node des Typs erstellt wird). In die db würde ich die Werte nicht extra schreiben.
– Grüße aus Franken –
"Eine Entscheidung ist dann eine gute Entscheidung, wenn Sie zu mehr Möglichkeiten führt.”
Heinz von Foerster (Kybernetiker)
www.bienlein-kommunikation.de
Strategie zum Caching
am 12.03.2017 - 18:10 Uhr
Vielen Dank für die ausführliche Antwort. Mit den caching Funktionen werde ich mich weiter auseinandersetzen und dann mal etwas Testen. Sobald ich ein Ergebnis habe, schreibe ich es hier ins Forum für den nächsten.
Gruss
Katasun