public function post_delete()
 {
     if (Input::has('file_id')) {
         $fid = Input::get('file_id');
         $file = CmsFile::find($fid);
         //CHECK IF FILE EXISTS
         if (!empty($file)) {
             $path = MEDIA_PATH($file->path);
             //DELETE MAIN FILE
             if (file_exists($path)) {
                 unlink($path);
             }
             //LOOP ALL THUMBS AND DELETE
             foreach (Config::get('cms::theme.thumb') as $option) {
                 $thumb = MEDIA_NAME($path, $option['suffix']);
                 if (file_exists($thumb)) {
                     unlink($thumb);
                 }
             }
             //DELETE FROM DB
             $file->pages()->delete();
             $file->filetexts()->delete();
             $file->delete();
             Notification::success(LL('cms::alert.delete_file_success', CMSLANG, array('file' => $file->name)), 1500);
             return Redirect::to_action('cms::file');
         } else {
             Notification::error(LL('cms::alert.delete_file_error', CMSLANG), 2500);
             return Redirect::to_action('cms::file');
         }
     } else {
         Notification::error(LL('cms::alert.delete_file_error', CMSLANG), 1500);
         return Redirect::to_action('cms::file');
     }
 }
 public function post_save_download()
 {
     $auth = Auth::check();
     if ($auth and is_numeric(AUTHORID)) {
         $input = Input::get();
         //GRAB DATA
         $download = new CmsDownload();
         if (!empty($input['download_id'])) {
             $download = CmsDownload::find($input['download_id']);
         }
         //VALIDATION CHECK
         $rules = array('download_name' => 'required|alpha_dash|between:2,20|unique:downloads,name,' . $input['download_id']);
         $messages = array('required' => LL('cms::validation.required', CMSLANG)->get(), 'between' => LL('cms::validation.between.string', CMSLANG)->get(), 'unique' => 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);
         }
         $download->name = strtolower($input['download_name']);
         $download->save();
         //DELETE CACHE
         if (CACHE) {
             Cache::forget('file_list_' . strtolower($input['download_name']));
         }
         $did = $download->id;
         // Empty template
         $template = '';
         if (Input::get('file_id') !== '') {
             $files = Input::get('file_id');
             if (is_array($files)) {
                 foreach ($files as $fid) {
                     $check = DB::table('files_downloads')->where_cmsfile_id($fid)->where_cmsdownload_id($did)->first();
                     if (empty($check)) {
                         $download->files()->attach($fid, array('order_id' => Config::get('cms::settings.order')));
                     }
                     $img = CmsFile::find($fid);
                     // Template returned
                     $template .= '<li id="' . $did . '_' . $fid . '" class="span1">';
                     $template .= '<a class="thumbnail" rel="tooltip" data-original-title="' . $img->name . '" href="' . BASE . $img->path . '">';
                     $template .= '<img src="' . BASE . $img->thumb . '" />';
                     $template .= '</a>';
                     $template .= '</li>';
                 }
                 //DELETE NOT IN
                 DB::table('files_downloads')->where_cmsdownload_id($did)->where_not_in('cmsfile_id', $files)->delete();
             }
             $response = 'success';
             $msg = LL('cms::ajax_resp.download_save_success', CMSLANG)->get();
             $backurl = $input['back_url'];
             // Inject container
             $inject = 'ul.sortable';
             $detach = true;
         } else {
             //DELETE ALL DOWNLOAD_ID
             DB::table('files_downloads')->where_cmsdownload_id($did)->delete();
             $response = 'success';
             $msg = LL('cms::ajax_resp.download_save_success', CMSLANG)->get();
             $backurl = $input['back_url'];
             $template = '';
             $inject = '';
             $detach = true;
         }
     } else {
         $response = 'error';
         $msg = LL('cms::ajax_resp.download_save_error', CMSLANG)->get();
         $backurl = '#';
         $template = '';
         $inject = '';
         $detach = true;
     }
     $data = array('auth' => $auth, 'cls' => 'download_id', 'id' => $did, 'response' => $response, 'message' => $msg, 'backurl' => $backurl, 'detach' => $detach, 'inject' => $inject, 'template' => $template);
     return json_encode($data);
 }
 public function post_save_filename()
 {
     $auth = Auth::check();
     if ($auth) {
         $input = Input::get();
         //GRAB DATA
         if (!empty($input['file_id'])) {
             //GRAB DATA
             $file = CmsFile::find($input['file_id']);
             $fid = $file->id;
             $path = MEDIA_PATH($file->path);
             $name = $file->name;
             $ext = '.' . $file->ext;
             $filename = str_replace($ext, '', $name);
             $newname = $input['file_name'];
             //VALIDATION CHECK
             $rules = array('file_name' => 'required|alpha_dash|unique_filename:' . $file->ext . ',name');
             $messages = array('required' => LL('cms::validation.required', CMSLANG)->get(), 'unique_filename' => LL('cms::validation.unique_filename', 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);
             }
             //VALIDATION OK
             //RENAME DB
             //RENAME NAME
             $file->name = str_replace($filename, $newname, $name);
             //RENAME PATH
             $file->path = str_replace($filename, $newname, $file->path);
             //RENAME THUMB
             $file->thumb = str_replace($filename, $newname, $file->thumb);
             $file->save();
             //RENAME DISK
             //RENAME FILE
             if (file_exists($path)) {
                 rename($path, str_replace($filename, $newname, $path));
             }
             //LOOP ALL THUMBS AND RENAME
             foreach (Config::get('cms::theme.thumb') as $option) {
                 $thumb = MEDIA_NAME($path, $option['suffix']);
                 if (file_exists($thumb)) {
                     rename($thumb, str_replace($filename, $newname, $thumb));
                 }
             }
             $response = 'success';
             $msg = LL('cms::ajax_resp.filename_filename_success', CMSLANG)->get();
             $backurl = $input['back_url'];
         } else {
             $fid = null;
             $response = 'error';
             $msg = LL('cms::ajax_resp.filename_filename_error', CMSLANG)->get();
             $backurl = '#';
         }
     } else {
         $fid = null;
         $response = 'error';
         $msg = LL('cms::ajax_resp.filename_filename_error', CMSLANG)->get();
         $backurl = '#';
     }
     $data = array('auth' => $auth, 'cls' => 'file_id', 'id' => $fid, 'response' => $response, 'message' => $msg, 'backurl' => $backurl);
     return json_encode($data);
 }
 public function post_save_banner()
 {
     $auth = Auth::check();
     if ($auth) {
         $input = Input::get();
         //GRAB DATA
         $banner = new CmsBanner();
         if (!empty($input['banner_id'])) {
             $banner = CmsBanner::find($input['banner_id']);
         }
         //VALIDATION CHECK
         $rules = array('banner_name' => 'required|alpha_dash|between:2,20|unique_lang:' . $input['banner_id'] . ',' . $input['banner_lang'] . ',banners,name');
         $messages = array('required' => LL('cms::validation.required', CMSLANG)->get(), 'between' => LL('cms::validation.between.string', CMSLANG)->get(), 'alpha_dash' => LL('cms::validation.alpha_dash', CMSLANG)->get(), 'unique_lang' => LL('cms::validation.unique', CMSLANG)->get());
         $validation = Validator::make($input, $rules, $messages);
         if ($validation->fails()) {
             return json_encode($validation->errors);
         }
         $banner->name = strtolower($input['banner_name']);
         $banner->lang = $input['banner_lang'];
         $banner->save();
         //DELETE CACHE
         if (CACHE) {
             Cache::forget('img_banner_' . strtolower($input['banner_name']));
         }
         $bid = $banner->id;
         if (Input::get('file_id') !== '') {
             $files = Input::get('file_id');
             $url = Input::get('url');
             $date_off = Input::get('date_off');
             $is_blank = Input::get('is_blank', array());
             if (is_array($files)) {
                 // Empty template
                 $template = '';
                 foreach ($files as $key => $fid) {
                     $check = DB::table('files_banners')->where_cmsfile_id($fid)->where_cmsbanner_id($bid)->first();
                     $blank = array_key_exists($key, $is_blank) ? 1 : 0;
                     if (empty($date_off[$key])) {
                         $off_date = dateTimeFuture(date("Y-m-d H:i:s"), 'P5Y');
                     } else {
                         $off_date = date2Db(substr($date_off[$key], 0, 10));
                     }
                     if (empty($check)) {
                         $add_array = array('url' => $url[$key], 'date_off' => $off_date, 'is_blank' => $blank, 'order_id' => 1000000);
                         $banner->files()->attach($fid, $add_array);
                     } else {
                         $update_array = array('url' => $url[$key], 'date_off' => $off_date, 'is_blank' => $blank);
                         DB::table('files_banners')->where_cmsfile_id($fid)->where_cmsbanner_id($bid)->update($update_array);
                     }
                     $img = CmsFile::find($fid);
                     // Template returned
                     $template .= '<li id="' . $bid . '_' . $fid . '" class="span1">';
                     $template .= '<a class="thumbnail fancy" rel="tooltip" data-original-title="' . $img->name . '" href="' . BASE . $img->path . '">';
                     $template .= '<img src="' . BASE . $img->thumb . '" />';
                     $template .= '</a>';
                     $template .= '</li>';
                 }
                 //DELETE NOT IN
                 DB::table('files_banners')->where_cmsbanner_id($bid)->where_not_in('cmsfile_id', $files)->delete();
             }
             $response = 'success';
             $msg = LL('cms::ajax_resp.banner_save_success', CMSLANG)->get();
             $backurl = $input['back_url'];
             // Inject container
             $inject = 'ul.sortable';
             $detach = true;
         } else {
             //DELETE ALL GALLERY_ID
             DB::table('files_banners')->where_cmsbanner_id($bid)->delete();
             $response = 'success';
             $msg = LL('cms::ajax_resp.banner_save_success', CMSLANG)->get();
             $backurl = $input['back_url'];
             $template = '';
             $inject = '';
             $detach = true;
         }
     } else {
         $response = 'error';
         $msg = LL('cms::ajax_resp.banner_save_error', CMSLANG)->get();
         $backurl = '#';
         $template = '';
         $inject = '';
         $detach = true;
     }
     $data = array('auth' => $auth, 'cls' => 'banner_id', 'id' => $bid, 'response' => $response, 'message' => $msg, 'backurl' => $backurl, 'detach' => $detach, 'inject' => $inject, 'template' => $template);
     return json_encode($data);
 }
 public function post_image_list_add()
 {
     if (Input::has('rel') and Input::has('lid') and Input::has('fid')) {
         $where = Input::get('rel');
         $list_id = Input::get('lid');
         $file_id = Input::get('fid');
         $singular = Str::singular($where);
         $inser_arr = array('cmsfile_id' => $file_id, 'cms' . $singular . '_id' => $list_id, 'order_id' => Config::get('cms::settings.order'));
         DB::table('files_' . $where)->insert($inser_arr);
         $file = CmsFile::find($file_id);
         if ($where == 'galleries') {
             $data = array('file' => $file->to_array(), 'list_id' => $list_id, 'del_btn' => LL('cms::button.delete', CMSLANG)->get());
         } else {
             if ($where == 'banners') {
             }
         }
         return json_encode($data);
     }
     return false;
 }