public function addChild($name, $label, RouteBasedLocation $location = null) { $child = new MenuItem($name, $label, $location); $child->setParent($this); $this->getChildren()->append($child); return $child; }
public function testHasChildren() { $n1 = new MenuItem("n1", "n1", null); $n2 = $n1->addChild("n2", "n2", null); $this->assertTrue($n1->hasChildren(), "Se esperaba que el nodo contenga hijos."); $n1 = new MenuItem("n1", "n1", null); $this->assertFalse($n1->hasChildren(), "Se esperaba que el nodo no contenga hijos."); }
/** * * @param \Bluegrass\Blues\Component\Menu\MenuItem $item * @return \Bluegrass\Blues\Component\View\ViewModel */ protected function createViewModelForMenuItem(MenuItem $item) { $view = new ViewModel(); $view->set('name', $item->getName()); $view->set('label', $item->getLabel()); $view->set('current', $item->isCurrent()); $view->set('children', array()); return $view; }
protected function buildMenuItemFromSitemapNode(MenuItem $menu, Node $node) { foreach ($node->getChildren() as $childNode) { if ($childNode->isNavigable()) { $subMenu = $menu->addChild($childNode->getName(), $childNode->getLabel(), $childNode->getLocation()); $this->buildMenuItemFromSitemapNode($subMenu, $childNode); } } }
public function testIterate() { $menu = new MenuItem("home", "home", null); $n1 = $menu->addChild("n1", null); $n2 = $n1->addChild("n1.n1", null); $n3 = $n1->addChild("n1.n2", null); $it = new \RecursiveIteratorIterator($menu->getIterator(), \RecursiveIteratorIterator::SELF_FIRST); $it->rewind(); $this->assertEquals($menu, $it->current(), "Se esperaba que el primer elemento del iterador sea la raiz."); $it->next(); $this->assertEquals($n1, $it->current(), "Se esperaba que el segundo elemento del iterador sea el primer hijo de la raiz."); $it->next(); $this->assertEquals($n2, $it->current(), "Se esperaba que el tercer elemento del iterador sea el primer hijo del primer hijo de la raiz."); $it->next(); $this->assertEquals($n3, $it->current(), "Se esperaba que el cuarto elemento del iterador sea el segundo hijo del primer hijo de la raiz."); $it->next(); $this->assertFalse($it->valid(), "Se esperaba que el luego del cuarto elemento el iterador quede inválido."); }