function getChildCate($categories, $catedata = array()) { if (!is_array($categories) or empty($categories)) { return array(); } foreach ($categories as $category) { $catedata[] = $category->id; if (count($category->subcategories) > 0) { $catedata = getChildCate($category->subcategories, $catedata); } } return $catedata; }
public function delCategory($id = '') { $this->load->model('categories_m'); if ($id != '') { $categories = $this->categories_m->getAllCategories('article'); $categories = categoriesToTree($categories, $id); $categories = getChildCate($categories); $data['parent_id'] = 0; if ($this->categories_m->delete($id)) { $this->session->set_flashdata('msg', lang('custom_category_delete_success_msg')); // update parent_id. foreach ($categories as $cate_id) { $this->categories_m->save($data, $cate_id); } } else { $this->session->set_flashdata('error', lang('custom_category_delete_error_msg')); } } else { if ($checkb = $this->input->post('checkb')) { if (is_array($checkb)) { $categories = $this->categories_m->getAllCategories('article'); $data['parent_id'] = 0; foreach ($checkb as $id) { if ($this->categories_m->delete($id)) { $categories = categoriesToTree($categories, $id); $categories = getChildCate($categories); // update parent_id. foreach ($categories as $cate_id) { $this->categories_m->save($data, $cate_id); } $this->session->set_flashdata('msg', lang('custom_category_delete_success_msg')); } else { $this->session->set_flashdata('error', lang('custom_category_delete_some_error_msg')); break; } } } } } redirect(site_url() . 'admin/custom/categories'); }
public function delete($type = '', $id = null) { if ($id == null) { $type = $this->uri->segment(5); $id = $this->uri->segment(6); } $this->categories_m->_primary_key = 'id'; $this->categories_m->_table_name = 'categories'; if ($this->categories_m->delete($id)) { //udpate children cate. $categories = $this->categories_m->getAllCategories('article'); $categories = categoriesToTree($categories, $id); $categories = getChildCate($categories); $data['parent_id'] = 0; // update parent_id. foreach ($categories as $cate_id) { $this->categories_m->save($data, $cate_id); } } }