public function post_delete() { if (Input::has('menu_id')) { $mid = Input::get('menu_id'); $menu = CmsMenu::find($mid); //CHECK IF MENU EXISTS if (!empty($menu)) { //DELETE FROM DB $menu->pages()->delete(); $menu->delete(); Notification::success(LL('cms::alert.delete_menu_success', CMSLANG, array('menu' => $menu->name)), 1500); return Redirect::to_action('cms::menu'); } else { Notification::error(LL('cms::alert.delete_menu_error', CMSLANG), 2500); return Redirect::to_action('cms::menu'); } } else { Notification::error(LL('cms::alert.delete_menu_error', CMSLANG), 1500); return Redirect::to_action('cms::menu'); } }
public function installMenuAction() { $em = $this->getDoctrine()->getManager(); // public main menu $m = new CmsMenu(); $m->setName('public_account'); $m->setAttr(array('class' => 'horisontal')); $i1 = new CmsMenuItem(); $i1->setValue('Login'); $i1->setPath('/login'); $i1->setPosition(1); $i1->setMenu($m); $em->persist($i1); $i2 = new CmsMenuItem(); $i2->setValue('Logout'); $i2->setPath('/logout'); $i2->setPosition(2); $i2->setMenu($m); $em->persist($i2); $i3 = new CmsMenuItem(); $i3->setValue('Register'); $i3->setPath('/register'); $i3->setPosition(3); $i3->setMenu($m); $em->persist($i3); $em->persist($m); $em->flush(); // public main menu $m = new CmsMenu(); $m->setName('public_main'); $m->setAttr(array('class' => 'horisontal')); $i1 = new CmsMenuItem(); $i1->setValue('How it Works'); $i1->setPath('/howitworks'); $i1->setPosition(1); $i1->setMenu($m); $em->persist($i1); $i2 = new CmsMenuItem(); $i2->setValue('Get'); $i2->setPath('/get'); $i2->setPosition(2); $i2->setMenu($m); $em->persist($i2); $i3 = new CmsMenuItem(); $i3->setValue('Give'); $i3->setPath('/give'); $i3->setPosition(3); $i3->setMenu($m); $em->persist($i3); $em->persist($m); $em->flush(); // admin main menu $m = new CmsMenu(); $m->setName('admin_main'); $m->setAttr(array('class' => 'horisontal')); $i1 = new CmsMenuItem(); $i1->setValue('Dashboard'); $i1->setPath('/admin/dashboard'); $i1->setPosition(1); $i1->setMenu($m); $em->persist($i1); $i2 = new CmsMenuItem(); $i2->setValue('Users'); $i2->setPath('/admin/users'); $i2->setPosition(2); $i2->setMenu($m); $em->persist($i2); $i3 = new CmsMenuItem(); $i3->setValue('Cms'); $i3->setPath('/admin/cms'); $i3->setPosition(3); $i3->setMenu($m); $em->persist($i3); $em->persist($m); $em->flush(); // admin cms menu $m = new CmsMenu(); $m->setName('admin_cms'); $m->setAttr(array('class' => 'horisontal')); $i1 = new CmsMenuItem(); $i1->setValue('Pages'); $i1->setPath('/admin/cms/pages'); $i1->setPosition(1); $i1->setMenu($m); $em->persist($i1); $i2 = new CmsMenuItem(); $i2->setValue('FAQ'); $i2->setPath('/admin/cms/faq'); $i2->setPosition(2); $i2->setMenu($m); $em->persist($i2); $i3 = new CmsMenuItem(); $i3->setValue('Menus'); $i3->setPath('/admin/cms/menus'); $i3->setPosition(3); $i3->setMenu($m); $em->persist($i3); $em->persist($m); $em->flush(); return $this->response; }
public function post_save_menu() { $auth = Auth::check(); if ($auth) { $input = Input::get(); //GRAB DATA $menu = new CmsMenu(); if (!empty($input['menu_id'])) { $menu = CmsMenu::find($input['menu_id']); } //VALIDATION CHECK $rules = array('menu_name' => 'required|alpha_dash|between:2,20|unique_lang:' . $input['menu_id'] . ',' . $input['menu_lang'] . ',menus,name'); $messages = array('required' => LL('cms::validation.required', CMSLANG)->get(), 'between' => LL('cms::validation.between.string', CMSLANG)->get(), 'unique_lang' => LL('cms::validation.unique', CMSLANG)->get(), 'alpha_dash' => LL('cms::validation.alpha_dash', CMSLANG)->get()); $validation = Validator::make($input, $rules, $messages); if ($validation->fails()) { return json_encode($validation->errors); } $menu->name = strtolower($input['menu_name']); $menu->lang = strtolower($input['menu_lang']); $menu->parent_start = $input['parent_start']; $menu->is_nested = Input::has('is_nested') ? 1 : 0; //DELETE CACHE if (CACHE) { Cache::forget('menu_' . strtolower($input['menu_name']) . '_' . LANG); } if (CACHE) { Cache::forget('menu_pages_' . strtolower($input['menu_name']) . '_' . LANG); } $menu->save(); $mid = $menu->id; // Empty template $template = ''; if (Input::get('page_id') !== '') { $pages = Input::get('page_id'); if (is_array($pages)) { foreach ($pages as $pid) { $check = DB::table('menus_pages')->where_cmspage_id($pid)->where_cmsmenu_id($mid)->first(); if (empty($check)) { $menu->pages()->attach($pid, array('order_id' => Config::get('cms::settings.order'))); } // Template returned $template .= '<li id="' . $mid . '_' . $pid . '">'; $template .= '<a class="btn" href="#">'; $template .= '<i class="icon-resize-vertical"></i>'; $template .= CmsPage::find($pid)->name; $template .= '</a>'; $template .= '</li>'; } //DELETE NOT IN DB::table('menus_pages')->where_cmsmenu_id($mid)->where_not_in('cmspage_id', $pages)->delete(); } $response = 'success'; $msg = LL('cms::ajax_resp.menu_save_success', CMSLANG)->get(); $backurl = $input['back_url']; // Inject container $inject = 'ul.sortable'; $detach = true; } else { //DELETE ALL MENU_ID DB::table('menus_pages')->where_cmsmenu_id($mid)->delete(); $response = 'success'; $msg = LL('cms::ajax_resp.menu_save_success', CMSLANG)->get(); $backurl = $input['back_url']; $template = ''; $inject = ''; $detach = true; } } else { $response = 'error'; $msg = LL('cms::ajax_resp.menu_save_error', CMSLANG)->get(); $backurl = '#'; $template = ''; $inject = ''; $detach = true; } $data = array('auth' => $auth, 'cls' => 'menu_id', 'id' => $mid, 'response' => $response, 'message' => $msg, 'backurl' => $backurl, 'detach' => $detach, 'inject' => $inject, 'template' => $template); return json_encode($data); }
/** * MENU Marker - Show a menu saved in Service / Menu * * [$MENU[{ * "name":"<menu name>", * "class":"<class>", => OPTIONAL (<ul> class) * "tpl":"<tpl_name>" => OPTIONAL (in /partials/markers) * }]] * * @param array * @return string */ public static function MENU($vars = array()) { //Get variables from array $vars if (!empty($vars)) { extract($vars); } //Bind variables $_name = ''; if (isset($name) and !empty($name)) { $_name = $name; } $_class = 'menu'; if (isset($class) and !empty($class)) { $_class = $class; } $_tpl = 'menu'; if (isset($tpl) and !empty($tpl)) { $_tpl = $tpl; } //Get DB information if (!empty($_name)) { //CACHE DATA if (CACHE) { $m = Cache::remember('menu_' . $_name . '_' . SITE_LANG, function () use($_name) { return CmsMenu::where_name($_name)->where_lang(SITE_LANG)->first(); }, 5); } else { $m = CmsMenu::where_name($_name)->where_lang(SITE_LANG)->first(); } if (!empty($m)) { $id = $m->id; $nested = (bool) $m->is_nested; $lower_parent = 0; if ($nested) { $lower_parent = $m->parent_start; } //CACHE DATA if (CACHE) { $menu = Cache::remember('menu_pages_' . $_name . '_' . SITE_LANG, function () use($_name, $nested, $lower_parent) { return CmsMenu::with(array('pages' => function ($query) use($nested, $lower_parent) { if ($nested) { $query->where('parent_id', '=', $lower_parent); } }))->where_name($_name)->where_lang(SITE_LANG)->first(); }, 5); } else { $menu = CmsMenu::with(array('pages' => function ($query) use($nested, $lower_parent) { if ($nested) { $query->where('parent_id', '=', $lower_parent); } }))->where_name($_name)->where_lang(SITE_LANG)->first(); } //Load file lable and title if (!empty($menu->pages)) { $pages = $menu->pages; $nested = (bool) $nested; } else { $pages = array(); $nested = false; } } else { $id = null; $pages = array(); $nested = false; } } else { $id = null; $pages = array(); $nested = false; } $options = array('id' => $_name, 'class' => $_class); $view = LOAD_VIEW($_tpl); $view['mid'] = $id; $view['pages'] = $pages; $view['nested'] = $nested; $view['options'] = HTML::attributes($options); return $view; }
/** * * @return \yii\db\ActiveQuery */ public function getCmsMenus() { return $this->hasMany(CmsMenu::className(), ['cms_hierarchy_item_id' => 'id']); }