Пример #1
0
 /**
  * @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')];
 }
Пример #2
0
 /**
  * @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]);
 }