/** * Saves one category * */ public function save() { if ($this->input->post('name') != '') { // If no ID (means new one) and this item name already exists in DB : No save if ($this->input->post('id_category') == '' && $this->category_model->exists(array('name' => url_title($this->input->post('name'))))) { $this->error(lang('ionize_message_category_name_exists')); } else { $this->_prepare_data(); // Event $event_data = array('base' => $this->data, 'lang' => $this->lang_data); $event_received = Event::fire('Category.save.before', $event_data); $event_received = array_pop($event_received); if (!empty($event_received['base']) && !empty($event_received['lang'])) { $this->data = $event_received['base']; $this->lang_data = $event_received['lang']; } // Save data $this->id = $this->category_model->save($this->data, $this->lang_data); // Event $event_data = array('base' => $this->data, 'lang' => $this->lang_data); Event::fire('Category.save.success', $event_data); // JSON Update array : If parent is defined in form, the categories selectbox of the parent will be updated if ($this->input->post('parent') != '') { $this->update[] = array('element' => 'categories', 'url' => 'category/get_select/' . $this->input->post('parent') . '/' . $this->input->post('id_parent')); } else { $this->callback = array(array('fn' => 'ION.HTML', 'args' => array('category/get_list', '', array('update' => 'categoriesContainer'))), array('fn' => 'ION.clearFormInput', 'args' => array('form' => 'newCategoryForm'))); } $this->success(lang('ionize_message_category_saved')); } } else { Event::fire('Category.save.error'); $this->error(lang('ionize_message_category_not_saved')); } }