Beispiel #1
0
 /**
  * @param int    $id
  * @param string $action
  *
  * @return \Symfony\Component\HttpFoundation\RedirectResponse
  * @throws \ACP3\Core\Controller\Exception\ResultNotExistsException
  */
 public function execute($id, $action)
 {
     if ($this->menuItemRepository->menuItemExists($id) === true) {
         $this->sortOperation->execute($id, $action);
         $this->menusCache->saveMenusCache();
         Core\Cache\Purge::doPurge($this->appPath->getCacheDir() . 'http');
         return $this->redirect()->temporary('acp/menus');
     }
     throw new Core\Controller\Exception\ResultNotExistsException();
 }
Beispiel #2
0
 /**
  * @param string                                             $menu
  * @param \ACP3\Modules\ACP3\Menus\Helpers\MenuConfiguration $menuConfig
  *
  * @return string
  */
 protected function generateMenu($menu, Menus\Helpers\MenuConfiguration $menuConfig)
 {
     $items = $this->menusCache->getVisibleMenuItems($menu);
     $cItems = count($items);
     if ($cItems > 0) {
         $selected = $this->selectMenuItem($menu);
         $cacheKey = $this->buildMenuCacheKey($menu, $menuConfig);
         $this->menus[$cacheKey] = '';
         for ($i = 0; $i < $cItems; ++$i) {
             if (isset($items[$i + 1]) && $items[$i + 1]['level'] > $items[$i]['level']) {
                 $this->menus[$cacheKey] .= $this->processMenuItemWithChildren($menu, $menuConfig, $items[$i], $this->getMenuItemSelector($items[$i], $selected));
             } else {
                 $this->menus[$cacheKey] .= $this->processMenuItemWithoutChildren($menuConfig, $items[$i], $this->getMenuItemSelector($items[$i], $selected));
                 $this->menus[$cacheKey] .= $this->closeOpenedMenus($menuConfig, $items, $i);
             }
         }
         if (!empty($this->menus[$cacheKey])) {
             $this->menus[$cacheKey] = sprintf('<%1$s%2$s>%3$s</%1$s>', $menuConfig->getTag(), $this->prepareMenuHtmlAttributes($menu, $menuConfig), $this->menus[$cacheKey]);
         } else {
             $this->menus[$cacheKey] = '';
         }
         return $this->menus[$cacheKey];
     }
     return '';
 }
 /**
  * @param ModelSaveEvent $event
  */
 public function execute(ModelSaveEvent $event)
 {
     if (!$event->isDeleteStatement()) {
         return;
     }
     foreach ($event->getEntryId() as $item) {
         if (!empty($item) && $this->menuRepository->menuExists($item) === true) {
             // Delete the assigned menu items and update the nested set tree
             $menuItems = $this->menuItemRepository->getAllItemsByBlockId($item);
             foreach ($menuItems as $menuItem) {
                 $this->menuItemsModel->delete($menuItem['id']);
             }
             $menuName = $this->menuRepository->getMenuNameById($item);
             $this->cache->getCacheDriver()->delete(Cache::CACHE_ID_VISIBLE . $menuName);
         }
     }
 }
Beispiel #4
0
 /**
  * List all available menu items
  *
  * @param integer $parentId
  * @param integer $leftId
  * @param integer $rightId
  *
  * @return array
  */
 public function menuItemsList($parentId = 0, $leftId = 0, $rightId = 0)
 {
     // Menüpunkte einbinden
     if (empty($this->menuItems)) {
         $this->menuItems = $this->menusCache->getMenusCache();
     }
     $output = [];
     if (count($this->menuItems) > 0) {
         foreach ($this->menuItems as $row) {
             if (!($row['left_id'] >= $leftId && $row['right_id'] <= $rightId)) {
                 $row['selected'] = $this->formsHelper->selectEntry('parent_id', $row['id'], $parentId);
                 $row['spaces'] = str_repeat('&nbsp;&nbsp;', $row['level']);
                 // Titel für den aktuellen Block setzen
                 $output[$row['block_name']]['title'] = $row['block_title'];
                 $output[$row['block_name']]['menu_id'] = $row['block_id'];
                 $output[$row['block_name']]['items'][] = $row;
             }
         }
     }
     return $output;
 }
 public function execute()
 {
     $this->cache->saveMenusCache();
 }