Biorąc pod uwagę widok o nazwie „Dzieci” (z dwoma polami: child_node_id i birth_order_value), jaki jest najlepszy sposób, programowo, na iterację przez zestaw wyników widoków, biorąc pod uwagę display_id „default” i argument zawierający identyfikator węzła nadrzędnego?
Wcześniej korzystałem z widoku w bloku przy użyciu kodu podobnego do następującego:
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);
}
Jednak w innym bloku chcę wykonać logikę na podstawie wartości znalezionych w widoku. Być może będziesz w stanie odgadnąć tę logikę biznesową w oparciu o moje ostatnie wymaganie: chcę, aby blok kodu obsługujący widok („Dzieci”) był wywoływany wiele razy. Podczas iteracji po wynikach zestawu danych widoku chcę rekurencyjnie iterować przez węzły potomne, które szukają swoich dzieci.
foreach
zamiast dla (.. sizeof ()), działa on znacznie lepiej (ponieważ jest to C zamiast PHP).
if (arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2))
lepiej użyć if ($node = menu_get_object())
.