예제 #1
0
 /**
  * @param string $menuItemUri
  * @param bool $createOrUpdateMenuItem
  * @param array $data
  *
  * @return bool
  */
 public function manageMenuItem($menuItemUri, $createOrUpdateMenuItem, array $data = [])
 {
     $menuItem = $this->menuItemRepository->getOneMenuItemByUri($menuItemUri);
     $result = true;
     if ($createOrUpdateMenuItem === true) {
         if (empty($menuItem)) {
             $result = $this->createMenuItem($data, $menuItemUri);
         } else {
             $result = $this->updateMenuItem($data, $menuItem);
         }
     } elseif (!empty($menuItem)) {
         $result = $this->menuItemsModel->delete($menuItem['id']) > 0;
     }
     return $result;
 }
 /**
  * @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);
         }
     }
 }
예제 #3
0
 /**
  * @param string $action
  *
  * @return mixed
  * @throws \ACP3\Core\Controller\Exception\ResultNotExistsException
  */
 public function execute($action = '')
 {
     return $this->actionHelper->handleDeleteAction($action, function (array $items) {
         return $this->menuItemsModel->delete($items);
     }, null, 'acp/menus');
 }