/** * 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; }
/** * 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; }