/** * @Request({"id": "int", "order": "array"}, csrf=true) * @Response("json") */ public function reorderAction($id, $order = []) { $items = $this->items->findByMenu($id); foreach ($order as $data) { if (!isset($items[$data['id']])) { continue; } $item = $items[$data['id']]; $item->setParentId($data['parent_id']); $item->setDepth($data['depth']); $item->setPriority($data['order']); $this->items->save($item); } return ['message' => __('Menu order updated')]; }
/** * @Request({"menu": "int", "id": "int[]"}, csrf=true) */ public function deleteAction($menuId, $ids = []) { try { if (!($menu = $this->menus->find($menuId))) { throw new Exception(__('Invalid menu.')); } $items = $this->items->findByMenu($menu); foreach ($ids as $id) { if (isset($items[$id])) { $this->items->delete($items[$id]); } } $this['message']->success(_c('{0} No menu item deleted.|{1} Menu item deleted.|]1,Inf[ Menu items deleted.', count($ids))); } catch (Exception $e) { $this['message']->error($e->getMessage()); } return $this->redirect('@system/menu', ['id' => $menuId]); }