Domanda

sto usando RecursiveIteratorIterator al ciclo su Zend_Navigation, che è fondamentalmente un elenco di annidate <ul> e <li> tag:

$iterator = new RecursiveIteratorIterator(
    $container, 
    RecursiveIteratorIterator::CHILD_FIRST
);
foreach ($iterator as $page) {
    ...
    // isLast()?
    // isFirst()?
}

Come determinare, se l'elemento attualmente iterato ($page) è il primo o l'ultimo elemento sul livello attuale?
Ho bisogno di aggiungere l'attributo first e la classe last a quegli elementi.

È stato utile?

Soluzione

Si potrebbe usare getDepth () alla query profondità del etichetta. Quando la profondità aumenta, siete ad un nuovo livello e dovrebbe aggiungere un attributo first. Quando la profondità diminuisce tra i tag, che ti dice il tag precedente era l'ultima del suo livello e si dovrebbe aggiungere un attributo last ad esso. Questo significa che si dovrà leggere il tag successivo prima di poter completare l'elaborazione del tag corrente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top