/** * @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); } } }
/** * @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'); }