Example #1
0
 /**
  * Admin widget form
  *
  * @return string
  */
 public function form()
 {
     $menu_left = isset($this->options->menu_left) ? $this->options->menu_left : '';
     $menu_right = isset($this->options->menu_right) ? $this->options->menu_right : '';
     $title = isset($this->options->title) ? $this->options->title : '';
     $form = '<p><label for="' . $this->getFieldId('title') . '">' . __('gb_title') . '</label>';
     $form .= Tag::textField([$this->getFieldName('title'), 'class' => 'form-control input-sm', 'value' => $title]);
     $form .= '</p>';
     $menuTypeAvailable = MenuTypes::find(['order' => 'name ASC']);
     $form .= '<p><label for="' . $this->getFieldId('menu_left') . '">' . __('w_menu_form_label_select_menu_left') . '</label>';
     $form .= Tag::select([$this->getFieldName('menu_left'), $menuTypeAvailable, 'using' => ['menu_type_id', 'name'], 'class' => 'form-control input-sm', 'value' => $menu_left, 'usingEmpty' => true]);
     $form .= '</p>';
     $form .= '<p><label for="' . $this->getFieldId('menu_left') . '">' . __('w_menu_form_label_select_menu_right') . '</label>';
     $form .= Tag::select([$this->getFieldName('menu_right'), $menuTypeAvailable, 'using' => ['menu_type_id', 'name'], 'class' => 'form-control input-sm', 'value' => $menu_right, 'usingEmpty' => true]);
     $form .= '</p>';
     return $form;
 }
Example #2
0
 /**
  * Save menu detail
  *
  * @param MenuTypes $menuType
  * @return \Phalcon\Http\ResponseInterface
  */
 private function saveMenuDetails($menuType)
 {
     $this->db->begin();
     if (!$menuType->save()) {
         foreach ($menuType->getMessages() as $mgs) {
             $this->flashSession->error($mgs);
         }
         $this->db->rollBack();
     } else {
         //Delete all menu item
         /**
          * @var MenuDetails[] $menuDetails
          */
         $menuDetails = MenuDetails::find(['menu_type_id = ?0', 'bind' => [$menuType->menu_type_id]]);
         foreach ($menuDetails as $it) {
             $it->delete();
         }
         $d_array = $this->request->getPost('nestable-output');
         $result = json_decode($d_array);
         if (count($result) > 0) {
             $index = 1;
             foreach ($result as $value) {
                 $menuDetail = new MenuDetails();
                 $menuDetail->menu_type_id = $menuType->menu_type_id;
                 $menuDetail->menu_item_id = $value->id;
                 $menuDetail->parent_id = 0;
                 $menuDetail->ordering = $index++;
                 if (!$menuDetail->save()) {
                     $this->db->rollBack();
                     foreach ($menuDetail->getMessages() as $mgs) {
                         $this->flashSession->error($mgs);
                     }
                     return null;
                 } else {
                     if (!empty($value->children)) {
                         if (!$this->addMenuChild($menuType->menu_type_id, $value->id, $value->children)) {
                             $this->db->rollBack();
                             return null;
                         }
                     }
                 }
             }
         }
         $this->flashSession->success($menuType->name . ' was updated successfully');
         $this->db->commit();
         $this->view->disable();
         return $this->response->redirect('/admin/menu/');
     }
     return null;
 }