示例#1
0
 protected function convertNodes(RokMenuNodeTree $menu)
 {
     $top = new RokNavMenuTree();
     $top->_params = $this->convertArgsToParams();
     $subnodes = array();
     // convert the nodes to an array of old school node types
     $itr = new RecursiveIteratorIterator($menu, RecursiveIteratorIterator::SELF_FIRST);
     foreach ($itr as $tmp) {
         $node = new RokNavMenuNode();
         $node->id = $tmp->getId();
         $node->parent = $tmp->getParent();
         $node->title = $tmp->getTitle();
         $node->access = $tmp->getAccess();
         $node->link = $tmp->getLink();
         $node->level = $tmp->getLevel();
         $node->image = $tmp->getImage();
         $node->alias = $tmp->isAlias();
         $node->nav = $tmp->getTarget();
         $node->access = $tmp->getAccess();
         switch ($tmp->getTarget()) {
             case 'newnotool':
                 $node->displayType = 2;
                 break;
             case 'new':
                 $node->displayType = 1;
                 break;
             default:
                 $node->displayType = 0;
                 break;
         }
         $node->setParameters($tmp->getParams());
         $node->type = $tmp->getType();
         //$node->order = $item->ordering;
         foreach (explode(" ", $tmp->getListItemClasses()) as $class) {
             $node->addListItemClass($class);
         }
         foreach (explode(" ", $tmp->getSpanClasses()) as $class) {
             $node->addSpanClass($class);
         }
         foreach (explode(" ", $tmp->getLinkClasses()) as $class) {
             $node->addLinkClass($class);
         }
         foreach ($tmp->getLinkAttribsArray() as $name => $attrib) {
             $node->addLinkAttrib($name, $attrib);
         }
         foreach ($tmp->getLinkAdditionsArray() as $name => $value) {
             $node->addLinkAddition($name, $value);
         }
         if ($node->parent == RokNavMenu::TOP_LEVEL_PARENT_ID) {
             $node->_parentRef = $top;
             $top->_children[$node->id] = $node;
         } else {
             foreach ($subnodes as $subnode) {
                 if ($node->parent == $subnode->id) {
                     $subnode->addChild($node);
                     break;
                 }
             }
         }
         $subnodes[] = $node;
     }
     return $top;
 }