Example #1
0
 public function addChild($name, $label, RouteBasedLocation $location = null)
 {
     $child = new MenuItem($name, $label, $location);
     $child->setParent($this);
     $this->getChildren()->append($child);
     return $child;
 }
Example #2
0
 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;
 }
Example #4
0
 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);
         }
     }
 }
Example #5
0
 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.");
 }