/** * Edit Category * * @param int $id cat. ID * * @author Nguyen Van Hiep * @access public * * @version 1.0 * @since 1.0 */ public function action_edit($id = null, $selected_lang = '') { $cat = Model_Categories::find($id); if (!$cat or $id < 4) { Session::set_flash('error', __('message.cat_not_exists')); Response::redirect('admin/categories'); } $view = View::forge('admin/categories/edit'); $view->cat = $cat; $view->error = array(); $view->cats = Model_Categories::get_cats(); $view->langs = $this->langs; $view->selected_lang = "lang={$selected_lang}"; $max = (int) Model_Categories::query()->max('order'); $view->max = $max + 1; if (Input::method() == 'POST') { $cat->name = Input::post('name'); $cat->name_search = strip_tags(Input::post('name')); $cat->slug = Input::post('slug'); $val = Model_Categories::validate('edit', $cat); Upload::process($this->config); $upload_errs = Upload::get_errors(); $input_file = Input::file(); // Check if upload new thumbnail or not foreach ($upload_errs as $key => $err) { if (empty($err['name'])) { unset($upload_errs[$key]); unset($input_file[$err['field']]); } } if ($val->run(Input::post()) && empty($upload_errs)) { // Check if order changed $varied = $cat->order == Input::post('order') ? false : true; $cat->order = Input::post('order') ? Input::post('order') : $cat->order; $cat->parent_id = Input::post('parent'); $cat->desc = Input::post('desc'); $cat->side = Input::post('side'); $cat->display_type = Input::post('dtype'); $cat->info = Input::post('info'); $cat->active = Input::post('active') ? true : false; $cat->art_display_by_order = Input::post('art_display_by_order') ? true : false; $cat->lang = Input::post('lang'); $this->save_cat($cat, $max, $varied); if (Input::post('delete_thumbnail', false)) { $this->delete_file($cat->id, $this->dir . $cat->bg); } else { if (!empty($input_file)) { $this->delete_file($cat->id, $this->dir . $cat->bg); $this->save_thumb($cat->id, true); } } Response::redirect("admin/categories?{$view->selected_lang}"); } else { $view->error = $val->error_message(); Session::set_flash('error', __('message.validation_error')); } } $this->template->title = __('cat.edit'); $this->template->content = $view; }