/**
  * @param RokMenuNodeBase $node
  * @return bool
  */
 public function addNode(RokMenuNodeBase &$node)
 {
     if ($node->getParent() == $this->rootid) {
         $this->addChild($node);
         $node->setLevel(0);
         return true;
     } else {
         $iterator = $this->getIterator();
         $childrenIterator = new RecursiveIteratorIterator(new RokMenuIdFilter($iterator, $node->getParent()), RecursiveIteratorIterator::SELF_FIRST);
         foreach ($childrenIterator as $child) {
             if ($child->getId() == $node->getParent()) {
                 $child->addChild($node);
                 $node->setLevel($childrenIterator->getDepth() + 1);
                 return true;
             }
         }
     }
     return false;
 }
 public function addChild(RokMenuNodeBase &$node)
 {
     parent::addChild($node);
     $this->addListItemClass(self::PARENT_CSS_CLASS);
 }
 public function __construct(RokMenuNodeBase $menuNode)
 {
     $this->ar =& $menuNode->getChildren();
 }
Example #4
0
 /**
  * @param RokMenuNodeBase $node
  * @return void
  */
 public function addChild(RokMenuNodeBase &$node)
 {
     if (null == $this->children) {
         $this->children = array();
     }
     $node->setParentRef($this);
     $node->setLevel($this->getLevel() + 1);
     $this->children[$node->getId()] = $node;
 }