/** * @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({"status": "int", "menu": "int", "id": "int[]"}, csrf=true) */ public function statusAction($status, $menuId, $ids = []) { try { if (!($menu = $this->menus->find($menuId))) { throw new Exception(__('Invalid menu.')); } foreach ($ids as $id) { if ($item = $this->items->find($id) and $item->getStatus() != $status) { $this->items->save($item, compact('status')); } } if ($status == Item::STATUS_ENABLED) { $message = _c('{0} No menu item enabled.|{1} Menu item enabled.|]1,Inf[ Menu items enabled.', count($ids)); } else { $message = _c('{0} No menu item disabled.|{1} Menu item disabled.|]1,Inf[ Menu items disabled.', count($ids)); } $this['message']->success($message); } catch (Exception $e) { $this['message']->error($e->getMessage()); } return $this->redirect('@system/menu', ['id' => $menuId]); }