Test auf leeren view in views 2 (D6)?
Eingetragen von hermx (256)
am 30.12.2008 - 10:07 Uhr in
am 30.12.2008 - 10:07 Uhr in
Hallo zusammen,
Ich führe gerade einen upgrade von D5 nach D6 aus. Dabei muss ich einige vies ebenfalls von views1 auf views2 konvertieren.
Dabei habe ich noch folgendes Problem:
Einige meiner Seiten werden mit dynamischen views gefüllt, dazu verwendete ich folgende Konstruktion:
// $name enthält einen context-abhängigen Term, der als zweites Argument übergeben wird
$view[$name] = views_build_view('embed', $view_fachartikel_term, array($fachterm,$name),false,0);
// etwas mehr code hier...
if ($view[$name]) {
// ... und noch etwas mehr code
print $view[$name];
}
Der für den Term $name gebildete view und der "noch etwas mehr code" wird nur angezeigt/ausgeführt, wenn der view nicht leer ist. Das funktioniert mit views 1 unter D5.
Nun habe ich das ganze nach D6/views 2 konvertiert, und zwar so:
$view[$name] = views_embed_view("fachartikel_term", "Seite", $fachterm, $name); //neue embed-Funktion hier
if ($view[$name]) {
// ... und noch etwas mehr code
print $view[$name];
}
Leider funktioniert das if jetzt nicht mehr wie früher, da offenbar der view in views2/D6 als Objekt nicht mehr ganz leer ist. (Ich habe gelesen, dass wohl irgendeine id mindestens drin steht).
Nun meine Frage:
Wie kann ich auf einen leeren view testen, so dass diese KOnstruktion im wesentlichen wieder funktioniert?
Danke für Tipps!
- Anmelden oder Registrieren um Kommentare zu schreiben
Object ausgeben
am 30.12.2008 - 11:39 Uhr
Hast du das Object $view schon mal ausgegeben, dann siehst du wahrscheinlich, wie du deine Bedingung anpassen kannst.
"Schlechte" Lösung?!
am 30.12.2008 - 11:53 Uhr
Ich habe gerade folgendes gefunden: http://groups.drupal.org/node/10129
und habe damit folgendes Konstrukt probiert:
<?php $view = views_get_view('fachartikel_term');
$view->set_display('default');
$view->set_arguments(array($fachterm, $name));
$view->execute();
if (!empty($view->result)) {print "voll";} else {print "leer";}
?>
Dieses if funktioniert dann.
Gibt es da nichts einfacheres wie früher, wie den view direkt ins if zu schreiben oder eine Funktion die auf "empty" prüft?