Question

J'utilise RecursiveIteratorIterator à boucle sur Zend_Navigation, qui est essentiellement une liste des balises <ul> et <li> imbriqués:

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

Comment déterminer, si est le premier ou le dernier élément sur le niveau actuel? L'élément actuellement itéré (de $page)
Je dois ajouter l'attribut class first et de last à ces éléments.

Était-ce utile?

La solution

Vous pouvez utiliser getDepth () pour interroger la profondeur de la étiquette. Lorsque la profondeur augmente, vous êtes à un nouveau niveau et devrait ajouter un attribut first. Lorsque la profondeur diminue entre les balises, qui vous indique la balise précédente a été le dernier à son niveau et vous devez ajouter un attribut last à lui. Cela signifie que vous devrez lire la balise suivante avant de pouvoir terminer le traitement de la balise courante.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top