public function createComponent($pres, $name) { // $cache = $this->getEntityCache(); // $data = $cache->load(self::MENU_CONTROL); // if ($data === null) { $c = new MenuControl($pres, $name); $c->setLabel($this->translator->translate("system.categoryMenu.label")); $gs = $this->getGroups(); $tmp = array_filter($gs, function ($e) { if ($e->getParent() == null) { return true; } return false; }); $tmp = $tmp[0]; $rootNode = $c->addNode($tmp->getName(), $pres->link($this->linkModuleHelper($pres), $tmp->getAbbr()), FALSE, array(), $tmp->getAbbr()); if ($pres->getParam('abbr') === null && $tmp->getAbbr() == $pres::ROOT_GROUP) { $c->setCurrentNode($rootNode); } $this->iterateChildren($tmp, $rootNode, $pres, $c); // $data = $c; // $opts = [Cache::TAGS=>[self::MENU_CONTROL, self::ENTITY_COLLECTION]]; // $cache->save(self::MENU_CONTROL, $data, $opts); // } return $c; }
public function createComponent($pres, $name) { $c = new MenuControl($pres, $name); $iterator = $this->items->getIterator(); $iterator->uasort(function ($a, $b) { return $a->getLabel() < $b->getLabel() ? -1 : 1; }); $this->items = new ArrayCollection(iterator_to_array($iterator)); foreach ($this->items as $i) { $node = $c->addNode($i->getLabel(), $i->getUrl(), $i->getMode(), $i->getData(), $i->getName()); if ($i->getUrl() == ":" . $pres->getName() . ":" . $pres->getAction() || $i->getUrl() == ":" . $pres->getName() . ":" . "default") { $c->setCurrentNode($node); } } return $c; }