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');
     }
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 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;
 }
Ejemplo n.º 5
0
 /**
  *
  * @return \yii\db\ActiveQuery
  */
 public function getCmsMenus()
 {
     return $this->hasMany(CmsMenu::className(), ['cms_hierarchy_item_id' => 'id']);
 }