Exemple #1
0
 public function createCollection($configs, $parent = null)
 {
     foreach ($configs as $key => $config) {
         if (isset($config['parent'])) {
             $parent = $config['parent'];
         }
         $menuItem = new Menu\MenuItem();
         $menuItem->setId($key)->setLabel($config['label'])->setAttr(isset($config['attr']) ? $config['attr'] : array())->setRoute(isset($config['route']) ? $config['route'] : null)->setSymlink(isset($config['symlink']) ? $config['symlink'] : null);
         $this->collection->add($menuItem, $parent);
         if (isset($config['children'])) {
             $this->createCollection($config['children'], $key);
         }
     }
 }
 private function addChildren(MenuItem $menuItem, MenuItem $context = null)
 {
     $childrens = $context ? $context->getChildren() : $this->collection;
     if ($menuItem->getOrder()) {
         if (array_key_exists($menuItem->getOrder(), $childrens)) {
             array_splice($childrens, $menuItem->getOrder(), 0, array($menuItem));
             return;
         }
     }
     $childrens[] = $menuItem;
     if ($context) {
         return $context->setChildren($childrens);
     }
     $this->collection = $childrens;
 }