Mehrere Views auf einer Seite

Manchmal kann es nützlich sein, mehrere Views auf einer Seite zu haben. Ein mögliches Szenario dafür könnte sein:

  • Eine Newsseite mit verschiedenen Typen von Artikel. Die Artikel sollen jetzt nicht einfach "durcheinander" aufgelistet werden, sondern gruppiert nach Typ.

Das Vorgehen dafür ist eigetlich ganz einfach:

  1. Die Views machen.
  2. Eine neue Page erstellen.
  3. In dieser Page die Views einfügen.
  4. Nicht vergessen den Filter auf PHP zu stellen. That's it.

Hier also der Code dafür:

<?php

$view_name
= 'list_all_games'; //Name der Views
$view = views_get_view($view_name);
   
$myview_args = array();
print
views_build_view('embed', $view, $myview_args, false, 4);
?>

Die wichtige Zeile ist eigentlich views_build_view(). Argument 4 ist ob ein Pager auf der Seite angezeigt werden soll und Argument 5 ist die Anzahl an Nodes, welche aufgelistet werden sollen.

Über $myview_args können zusätzlich Argumente an die Views übergeben werden. Diese können dann über Views ausgewertet werden. Das wäre es dann eigentlich auch schon. Es können jetzt nach dem gleichen Prinzip beliebig viele Views hinzufgefügt werden. Ich glaube es gibt auch ein Modul dazu, aber über das embeded lässt sich das sehr gut lösen. Zudem kann dadurch die Anzahl an Modulen reduziert zu werden.

Hier noch der Link zur offiziellen Views Doku.

Das geht noch ein wenig

Das geht noch ein wenig einfacher (in einer Zeile), denn die Funktion theme_view bündelt die gleichen Schritte schon:

print theme_view($view_name, 4, false, 'embed', $myview_args);

Hallo Rapsli, so ganz versthe

Hallo Rapsli,

so ganz versthe ich es noch nicht...
wenn Du sagst
Nicht vergessen den Filter auf PHP zu stellen.
Meinst Du dann unter 'Einstellungen - Eingabeformate'?
Aber ich möchte eigentlich nicht, dass andere User php eingeben können, nur der admin... aber auch als ich php zugelassen habe, wurde mir der php-Code angezeigt anstatt ihn zu interpretieren.
Da stehe ich leider irgendwie auf dem Schlauch.
hast Du noch einen Tipp??

Danke,
Poko

Es gibt einen PHP Filter,

Es gibt einen PHP Filter, welcher

<?php

?>
in leserlichen Code umwandelt und dann gibt es noch einen PHP Execute Filter (der muss in den Modulen speziell aktiviert sein). Den meine ich. Damit lässt sich dann code ausführen.

-> Hier in diesem Kommentar ist der Filter aktiv, welcher PHP Code leserlich macht, aber nicht ausführt.

Da es mich am vergangenen

Da es mich am vergangenen Wochenende viel Zeit gekostet hat, hier die Version für Drupal 6, Views in eine Seite einzubinden:

<?php
views_embed_view
("view_name","block_1", $arg);
?>

block_1 ... ist die Variante des Views (statt "block" auch "page",... möglich)
Die benötigte Nummer gibts in der Statusleiste des Browsers. Einfach die Maus auf eine Viewvariante schieben.

Und hier kommt das Wissen her:
Embed View without insert_view module

(manchmal lohnt sich der Blick ins Handbuch eben doch...)