In einer Ansicht mit dem Namen "Children" (mit zwei Feldern: "child_node_id" und "birth_order_value") können Sie die Ansichtsergebnisse am besten programmgesteuert durchlaufen, wenn Sie die display_id "default" und ein Argument mit der ID des übergeordneten Knotens angeben.
Bisher habe ich die Ansicht in einem Block mit folgendem Code verwendet:
if ( arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2)) {
$node = node_load(arg(1));
$args = array($node->nid);
$view = views_get_view('Children');
print $view->preview('default', $args);
}
In einem anderen Block möchte ich jedoch eine Logik basierend auf den in der Ansicht gefundenen Werten ausführen. Vielleicht können Sie diese Geschäftslogik anhand meiner letzten Anforderung erraten: Ich möchte, dass der Codeblock, der die Ansicht ('Children') unterstützt, mehrmals aufgerufen wird. Während ich die Ergebnisse des View-Datasets durchlaufe, möchte ich die Kinderknoten, die nach ihren Kindern fragen, rekursiv durchlaufen.
foreach
anstelle von for (.. sizeof ()) eine viel bessere Leistung erzielt wird (da es sich um C anstelle von PHP handelt).
if (arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2))
, könnte es besser sein, zu verwenden if ($node = menu_get_object())
.