public static function menuForm($menuId) { $menu = Model::getPage((int) $menuId); if (!$menu) { throw new \Ip\Exception('Menu not found.', array('id' => $menuId)); } $form = new \Ip\Form(); $form->setEnvironment(\Ip\Form::ENVIRONMENT_ADMIN); $field = new \Ip\Form\Field\Hidden(array('name' => 'aa', 'value' => 'Pages.updateMenu')); $form->addField($field); $field = new \Ip\Form\Field\Hidden(array('name' => 'id', 'value' => $menu['id'])); $form->addField($field); $field = new \Ip\Form\Field\Text(array('name' => 'title', 'label' => __('Title', 'Ip-admin', false), 'value' => $menu['title'])); $form->addField($field); $field = new \Ip\Form\Field\Text(array('name' => 'alias', 'label' => __('Menu name (used in PHP code)', 'Ip-admin', false), 'value' => $menu['alias'])); $form->addField($field); $layouts = \Ip\Internal\Design\Service::getLayouts(); $values = array(); foreach ($layouts as $layout) { $values[] = array($layout, $layout); } $field = new \Ip\Form\Field\Select(array('name' => 'layout', 'label' => __('Layout', 'Ip-admin', false), 'value' => $menu['layout'], 'values' => $values)); $form->addField($field); $values = array(array('tree', __('Tree (for menu)', 'Ip-admin', false)), array('list', __('List (for blogs)', 'Ip-admin', false))); $field = new \Ip\Form\Field\Select(array('name' => 'type', 'label' => __('Type', 'Ip-admin', false), 'value' => $menu['type'], 'values' => $values)); $form->addField($field); $form = ipFilter('ipMenuForm', $form, array('menuId' => $menuId)); return $form; }
public function updateMenu() { $request = ipRequest(); $menuId = $request->getPost('id'); $title = $request->getPost('title'); $alias = $request->getPost('alias'); $layout = $request->getPost('layout'); $type = $request->getPost('type'); if (empty($menuId) || empty($title) || empty($alias) || empty($layout) || empty($type)) { throw new \Ip\Exception('Missing required parameters'); } // validate page alias $page = Model::getPage($menuId); $errors = array(); if ($page['alias'] != $alias) { if (Model::getPageByAlias($page['languageCode'], $alias)) { $errors['alias'] = __('This alias is already occupied', 'Ip-admin'); } } if ($errors) { return new \Ip\Response\Json(array('status' => 'error', 'errors' => $errors)); } Service::updateMenu($menuId, $alias, $title, $layout, $type); $eventData = $request->getPost(); ipEvent('ipFormUpdateMenuSubmitted', $eventData); $answer = array('status' => 'ok'); return new \Ip\Response\Json($answer); }
/** * Get page * * @param int $pageId * @return array */ public static function getPage($pageId) { return Model::getPage($pageId); }