Example #1
0
 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;
 }
Example #2
0
 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);
 }
Example #3
0
 /**
  * Get page
  *
  * @param int $pageId
  * @return array
  */
 public static function getPage($pageId)
 {
     return Model::getPage($pageId);
 }