[gelöst] Views "items_per_page" dynamisch oder Views vor Ausgabe manipulieren?
am 24.03.2011 - 20:25 Uhr in
Hallo,
gibt es eine Möglichkeit die Anzahl der "items_per_page" eines Views dynamisch zu gestalten oder die "items_per_page" eines Views, vor der Ausgabe des Views, zu manipulieren?
Ich habe nämlich einen View mit diversen Feldern/Filtern - diesen View benötige ich aber in 10facher Ausführung, der einzige Unterschied ist die Anzahl der "items_per_page" - alles andere bleibt gleich. Da dieser View soweiso schon viele Attachments/Blocks enthält, möchte ich jetzt nicht nochmal 10 weitere Attachments/Blocks erstellen. Das wird langsam unübersichtlich.
Ich dachte nun, dass ich den View über views_embed_view('mein_view', 'default'); ausgebe und vorher die Anzahl der Pager/entrys verändere. Aber das scheint nicht möglich zu sein.
Mit folgendem Code, kann man die Anzahl der entrys verändern und den gesamten View in einer Variablen speichern aber wie kann ich den View danach ausgeben/anzeigen lassen?
<?php
$view = views_get_view( 'mein_view' );
$view->pager['items_per_page'] = 3; //<---- darauf kommt es mir an
$view->execute('page_9');
Ausgabe des View????
?>
Hätte da jemand einen Tip?
Danke und schöne Grüße
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Du kannst dies in einem
am 24.03.2011 - 20:33 Uhr
Du kannst dies in einem eigenen Modul über einen form_alter bzw. einen _views_query_alter machen. Hier kannst du direkt die Views ansprechen und entsprechend auch die Menge der Ergebnisse eingrenzen..
Weitere Infos dazu kannst du in unserem Blog nachlesen:
http://www.hopper-intermedia.de/webdesignblog/drupal-drop-down-limits-vi...
SteffenR
http://www.twitter.com/_steffenr
Drupal-Initiative e.V.
Hallo Steffen, danke für die
am 24.03.2011 - 20:40 Uhr
Hallo Steffen,
danke für den Hinweis.
Ich habe auch noch eine weitere Möglichkeit gefunden.
Man kann den View, nach der "Manipulation", einfach per print $view->render('block_1'); ausgeben.
<?php
$view = views_get_view( 'mein_View' );
$view->pager['items_per_page'] = 3;
print $view->render('page_9');
?>
Das klappt wunderbar und ich kann jetzt, mit Hilfe einer If-Anweisung und den Argumenten, den jeweiligen View, je nach Node/URL, mit unterschiedlichen "items_per_page" ausgeben.
Danke und schöne Grüße
Matthias
Drupal rockt!!!