Esempio n. 1
0
 public function isMaxOrder()
 {
     //If menu is a child AND get maxOrder siblings
     if ($this->parent_id != 0) {
         $maxOrder = Nav::where('parent_id', '=', $this->parent_id)->where('id', '<>', $this->id)->max('order');
     } else {
         $maxOrder = Nav::where('parent_id', '=', 0)->where('id', '<>', $this->id)->max('order');
     }
     if (empty($maxOrder)) {
         return true;
     }
     //there are only one menu or one child
     if ($this->order > $maxOrder) {
         return true;
     }
     return false;
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     // delete
     $navigation = Nav::find($id);
     if (empty($navigation)) {
         return Redirect::to('admin/navigation')->with('success', Lang::get('admin.navigation_notfind'));
     }
     //delete all translation
     foreach ($navigation->i18n()->translations() as $translation) {
         if (!$translation->delete()) {
             return Redirect::to('admin/navigation')->with('error', Lang::get('admin.navigation_translation_delete_fail'));
         }
     }
     //equilibrate branche
     //here equilibrate orders of menu !
     //if parentid = 0, set all else other !
     $navigations = Nav::where('parent_id', $navigation->parent_id)->where('id', '<>', $navigation->id)->orderBy('order', 'ASC')->get();
     for ($count_navigation = count($navigations), $i = 0; $i < $count_navigation; $i++) {
         $navigations[$i]->order = $i + 1;
         $navigations[$i]->save();
     }
     //delete children if exists
     foreach ($navigation->children() as $child) {
         $child->delete();
     }
     // delete
     if ($navigation->delete()) {
         //track user
         parent::track('delete', 'Navigation', $navigation->id);
         Cache::forget('DB_Nav');
         return Redirect::to('admin/navigation')->with('success', Lang::get('admin.navigation_delete_success'));
     }
     return Redirect::to('admin/navigation')->with('success', Lang::get('admin.navigation_delete_fail'));
 }
Esempio n. 3
0
    public function initCache()
    {
        // !!! DATABASE CACHE !!!
        //Cache Model::Menu
        //Cache::forget('DB_Menu');
        /*Cache::rememberForever('DB_Menu', function()
        		{
        		    return Menu::where('parent_id','=',0)->orderBy('order','ASC')->get();
        		});*/
        //Cache Model::Locale
        Cache::rememberForever('DB_LocaleFrontEnable', function () {
            //Get all data in database
            $locales = Locale::where('enable', '=', 1)->where('is_publish', '=', 1)->get();
            //Preapre data to extract by id
            $data = array();
            foreach ($locales as $l) {
                $data[] = $l->id;
            }
            return $data;
        });
        //Cache Model::Nav
        Cache::rememberForever('DB_Nav', function () {
            return Nav::where('parent_id', '=', 0)->orderBy('order', 'ASC')->get();
        });
        //Cache Model::Resource('name')
        Cache::rememberForever('DB_AdminResourceName', function () {
            //Get all data in database
            $resources = Resource::where('in_admin_ui', '=', 1)->get();
            //Preapre data to extract by id
            $data = array();
            foreach ($resources as $r) {
                $data[$r->id] = $r->name;
            }
            return $data;
        });
        Cache::rememberForever('DB_AdminResource', function () {
            //Get all data in database
            return Resource::where('in_admin_ui', '=', 1)->get();
        });
        Cache::rememberForever('DB_AdminResourceNavigable', function () {
            //Get all data in database
            return Resource::where('navigable', '=', 1)->where('in_admin_ui', '=', 1)->get();
        });
        // Get all Locales enableds in the table
        Cache::rememberForever('DB_LocalesEnabled', function () {
            return Locale::where('enable', 1)->where('is_publish', 1)->get();
        });
        Cache::rememberForever('DB_AdminBlockTypes', function () {
            //Get all data in database
            return BlockType::all();
        });
        //Cache Model::Mosaique('name')
        //Cache::forget('DB_Mosaique');
        /*Cache::rememberForever('DB_Mosaique', function()
        		{
        			//Get all data in database
        		    return Mosaique::all();
        		});*/
        //Cache Model::Option
        Cache::rememberForever('DB_Option', function () {
            return Option::all();
        });
        //Cache Model::Urls
        Cache::rememberForever('DB_Urls', function () {
            $data = DB::select('
		    	SELECT translations.i18n_id , translations.text , translations.locale_id 
				FROM translations
				INNER JOIN i18n_types ON i18n_types.name = ?
				INNER JOIN i18n ON i18n.i18n_type_id = i18n_types.id AND translations.i18n_id = i18n.id
		    ', array('url'));
            //$data = Translation::i18n()->where('i18n_type_id','=',I18nType::where('name','=','url')->first()->id)->get
            $datas = array();
            foreach ($data as $d) {
                $datas[] = array('i18n_id' => $d->i18n_id, 'url' => $d->text, 'locale_id' => $d->locale_id);
            }
            return $datas;
        });
    }
Esempio n. 4
0
 public static function getNotAllowed()
 {
     $notAllowed = array();
     //get all Nav with a page as resource
     $navs = Nav::where('navigable_type', '=', get_class())->get();
     $allowed = array();
     foreach ($navs as $nav) {
         $allowed[] = $nav->navigable->id;
     }
     //get all Pages
     $objects = self::all();
     //store each resources
     foreach ($objects as $object) {
         if (!in_array($object->id, $allowed)) {
             $notAllowed[] = $object;
         }
     }
     return $notAllowed;
 }