Ergebnis eines Views an anderen als Argument weitergeben
Eingetragen von heinz963 (20)
am 04.03.2009 - 15:22 Uhr in
am 04.03.2009 - 15:22 Uhr in
Hallo,
vorweg ist wichtig, das ich gerade mein erstes Projekt mit Drupal mache. Und dabei komme ich leider immer wieder an Punkte die mich ewig aufhalten. Aktuell suche ich nach dem Weg, das Ergebnis eines Views an einen anderen View als Argument weiterzugeben. Über die Views Oberfläche ist mir das nicht gelungen, da konnte ich nicht finden, wo das passieren sollte. Der erste View gibt übrigens nur ein einziges Datum zurück. Sollte doch machbar sein, das weiterzureichen. Ich hoffe mal, es findet sich einer unter Euch der mir ein wenig auf die Sprünge hilft.
Vielen Dank
- Anmelden oder Registrieren um Kommentare zu schreiben
views argumente
am 04.03.2009 - 15:34 Uhr
Moin!
Ich glaube (bin mir jedoch nicht wirklich sicher), dass das so direkt nicht möglich ist. Allerdings könntest Du Dir eine eigene Seite basteln und dort den View mit der Funktion
views_embed_view()
einbauen.Vorher holst Du Dir mit der Funktion, die in diesem Beitrag gezeigt wird, das Ergebnis des ersten Views und übergibst das dann als Argument an den zweiten View (musst halt vorher schauen, was genau in result drinsteht).
Das sollte so eigentlich funktionieren.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
views_get_view_result
am 04.03.2009 - 19:25 Uhr
mit print views_embed_view() hatte ich auch schon probiert. Aber erst mal hänge ich ja noch an der Funktion views_get_view_result(). Was muss ich denn als arg übergeben, und steht das vielleicht irgendwo beschrieben? Wenn ich im view modul die Vorschau ausführe, gebe ich einfach die 2008 als Argument an, und bekomme die Ausgabe von page_1. Aber der Code in meinem Artikel erzeugt keine Ausgabe. Nicht mal ne Fehlerausgabe dass der Typ nicht stimmen würde. Und die sollte doch wohl kommen, oder ist das falsch? Tja ich denke da fehlen noch einige Basics.
Schon mal meinen Dank an den der Antwortet.
ps Drupal 6.8
<?php
$args=array (
'date_argument_1' => '2008'
);
$v=views_get_view_result("rp", $args);
print $v;
function views_get_view_result($viewname, $args) {
$view = views_get_view($viewname);
if (is_object($view)) {
if (is_array($args)) {
$view->set_arguments($args);
}
// Heed pager setting.
$view->init_display();
$view->pre_execute();
$view->execute();
return $view->result;
}
else {
return t('View %viewname not found.', array('%viewname' => $viewname));
}
}
function views_get_current_view_result() {
$view = views_get_current_view();
return $view->result;
}