public function add_sub_category() { if (null != $this->input->post('add_sub_category_btn')) { $data_post = $this->input->post(); $this->load->helper('Validation'); $this->load->helper('HTMLPurifier'); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $data_insert['category_name'] = $purifier->purify($data_post['sub_category_name']); $data_insert['super_categoryId'] = $data_post['super_category_id']; //========================= VALIDATION: START ======================= $error = array(); if (trim_input($data_insert['category_name']) == '') { $error[] = 'Tên loại sản phẩm không thể rỗng.'; } if (has_special_character($data_insert['category_name'])) { $error[] = "Tên sản phẩm không được chứa ký tự đặc biệt."; } elseif ($this->Category->has_duplicate_sub_category_name($data_insert['category_name'])) { $error[] = 'Loại sản phẩm này đã tồn tại.'; } if (trim_input($data_insert['super_categoryId']) == '') { $error[] = 'Bạn chưa chọn loại danh mục.'; } elseif (!is_numeric($data_insert['super_categoryId']) || !$this->Category->has_super_category_exist_by_id($data_insert['super_categoryId'])) { $error[] = 'Loại danh mục bạn chọn không tồn tại.'; } //========================= VALIDATION: END ========================= if (count($error) > 0) { // has error validate set_notice('status', FAILED_STATUS, $error); $data['re_super_categoryId'] = $data_post['super_category_id']; $data['all_super_category'] = $this->Category->list_all_super_category(); $data['subData'] = $data; $data['re_sub_category_name'] = $data_post['sub_category_name']; $data['subView'] = '/category/add_sub_category_layout'; $data['title'] = "Thêm loại danh mục"; $data['subData'] = $data; $this->load->view('/main/main_layout', $data); } else { // not error validate if ($this->Category->insert_sub_category($data_insert)) { $content = 'Thêm loại sản phẩm <span style="color:blue">' . $data_insert['category_name'] . '</span> thành công.'; set_notice('status', SUCCESS_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/category/show_sub_category'); } else { $content = 'Thêm loại sản phẩm thất bại.'; set_notice('status', FAILED_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/category/show_sub_category'); } } } else { $data['all_super_category'] = $this->Category->list_all_super_category(); $data['subView'] = '/category/add_sub_category_layout'; $data['title'] = "Thêm loại sản phẩm"; $data['subData'] = $data; $this->load->view('/main/main_layout', $data); } }
public function doedit() { if (isset($_POST["btnSubmit"])) { //============================== Purifier ============================== $this->load->helper('Validation'); $this->load->helper('HTMLPurifier'); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); // $clean_html = $purifier->purify($dirty_html); //su dung //============================== Purifier ============================== $update_data = array(); $war = array(); $loi = array(); $has_new_detail_image = false; $product_id = $_POST['product_id']; $page = isset($_POST['page']) && is_numeric($_POST['page']) ? $_POST['page'] : 1; $old_detail_image = $this->Product->get_detail_image($product_id); $old_avatar = $this->Product->get_avatar($product_id); $delete_detail_img = empty($_POST['delete_detail_img']) ? array() : $_POST['delete_detail_img']; if (count($_FILES['detail_img']['name']) > 0) { $imgs = $_FILES['detail_img']; $url = ''; $tmp_name_detail_img = array(); for ($i = 0; $i < count($_FILES['detail_img']['name']); $i++) { if ($_FILES['detail_img']['name'][$i] != '') { $tmp = new SplFileInfo($_FILES['detail_img']['name'][$i]); $type = $tmp->getExtension(); if (strtolower($type) != 'jpg' && strtolower($type) != 'gif' && strtolower($type) != 'png') { $war[] = "Dịnh dạng ảnh chi tiết sản phẩm không cho phép!"; $type = $tmp->getExtension(); } elseif ($_FILES['detail_img']['size'][$i] > 1024000) { $war[] = "Ảnh chi tiết sản phẩm phải nhỏ hơn 2MB"; } elseif (!isImage($_FILES['detail_img']['tmp_name'][$i])) { $war[] = "Ảnh chi tiết không phải là file ảnh!"; } else { $url = $url . '|' . htmlspecialchars(md5($_POST['product_name'])) . '-' . $i . time() . '.' . $type; $tmp_name_detail_img[] = $_FILES['detail_img']['tmp_name'][$i]; } } } if (trim($url, '|') != '') { $new_detail_image = trim($url, '|'); $update_data['detail_image'] = $old_detail_image . '|' . $new_detail_image; $update_data['detail_image'] = trim($update_data['detail_image'], '|'); $has_new_detail_image = true; } } if (!empty($delete_detail_img)) { if ($has_new_detail_image) { foreach ($delete_detail_img as $value) { $update_data['detail_image'] = str_replace($value . '|', '', $update_data['detail_image']); } } else { $update_data['detail_image'] = $old_detail_image . '|'; foreach ($delete_detail_img as $value) { $update_data['detail_image'] = str_replace($value . '|', '', $update_data['detail_image']); } } $update_data['detail_image'] = trim($update_data['detail_image'], '|'); } $update_data['product_name'] = trim_input($_POST["product_name"]); $update_data['category_id'] = $_POST["category_id"]; $update_data['des'] = $purifier->purify($_POST["des"]); $update_data['price'] = trim_input($_POST["price"]); $update_data['size'] = $purifier->purify($_POST["size"]); $update_data['substance'] = $purifier->purify($_POST["substance"]); //====================== Validate START ====================== if (!empty($_FILES['avatar']['name'])) { $avatar_name = $_FILES['avatar']['name']; $tmp = new SplFileInfo($avatar_name); $avatar_type = $tmp->getExtension(); if (strtolower($avatar_type) != 'jpg' && strtolower($avatar_type) != 'gif' && strtolower($avatar_type) != 'png') { $loi[] = "Định dạng ảnh đại diện sản phẩm không cho phép!"; } elseif (!isImage($_FILES['avatar']['tmp_name'])) { $loi[] = "Ảnh đại diện sản phẩm không phải là file ảnh!"; } elseif ($_FILES['avatar']['size'] > 2048000) { $loi[] = "Ảnh đại diện sản phẩm phải nhỏ hơn 2MB"; } else { $tmp_name_avatar = $_FILES['avatar']['tmp_name']; $update_data['image'] = md5($update_data['product_name']) . '-' . time() . '.' . $avatar_type; } } if (empty($_POST["product_name"])) { $loi[] = "Tên sản phẩm không được rỗng"; } elseif (has_special_character($_POST['product_name'])) { $loi[] = "Tên sản phẩm không được chứa ký tự đặc biệt."; } else { if (strlen($_POST["product_name"]) >= 4 && strlen($_POST["product_name"]) <= 100) { $update_data['product_name'] = $_POST["product_name"]; $update_data['product_name'] = trim($_POST["product_name"]); $update_data['product_name'] = strip_tags($_POST["product_name"]); $update_data['product_name'] = addslashes($update_data['product_name']); $product_name_exist = $this->Product->has_exist_product_name($update_data['product_name'], $product_id); if ($product_name_exist) { $loi[] = "Sản phẩm đã tồn tại"; } } else { $loi[] = "Tên sản phẩm phải dài hơn 4 và nhỏ hơn 100 kí tự!"; } } if (empty($update_data['category_id'])) { $loi[] = "Chưa chọn loại sản phẩm!"; } elseif (!is_numeric($update_data['category_id']) || !$this->Category->has_sub_category_exist_by_id($update_data['category_id'])) { $loi[] = "Loại sản phẩm không hợp lệ!"; } if (!empty($update_data['price'])) { if (!is_numeric($update_data['price'])) { $loi[] = "Giá phải là kiểu số!"; } } $ribbon = trim($_POST['ribbon']); if ($ribbon != '') { if (mb_strlen($ribbon) > 9) { $loi[] = "Tem dán tối đa 9 kí tự."; } else { $update_data['ribbon'] = trim_input($_POST['ribbon']); } } //====================== Validate END ====================== if (count($loi) > 0) { $alert_time = 20000; set_notice('status', FAILED_STATUS, $loi, $alert_time); $data['category'] = $this->Category->list_all_sub_category(); $redata['info'] = $this->Product->get_product_by_id($product_id); $redata['re_product_name'] = $_POST['product_name']; $redata['re_category_id'] = $_POST['category_id']; $redata['re_price'] = $_POST['price']; $redata['re_size'] = $_POST['size']; $redata['re_substance'] = $_POST['substance']; $redata['re_des'] = $_POST['des']; $redata['re_ribbon'] = $_POST['ribbon']; $data['subView'] = '/product/edit_product_layout'; $data['title'] = 'Cập nhật sản phẩm'; $data['subData'] = $redata; $this->load->view('/main/main_layout', $data); } else { $rs = $this->Product->update($product_id, $update_data); // ============= Xoa anh chi tiet =================== if ($rs && !empty($delete_detail_img)) { foreach ($delete_detail_img as $value) { @unlink('public/img/detail_img/' . $value); } } // ============= Xoa anh chi tiet =================== // ============= Upload anh chi tiet =================== if ($rs && $has_new_detail_image) { $detail_image_name = explode('|', $new_detail_image); for ($i = 0; $i < count($detail_image_name); $i++) { $path = "public/img/detail_img/"; move_uploaded_file($tmp_name_detail_img[$i], $path . $detail_image_name[$i]); resizeImage($path . $detail_image_name[$i], $path . $detail_image_name[$i], 600, 600); } } // ============= Upload anh chi tiet =================== // ============= Upload anh avatar =================== if ($rs && isset($_FILES['avatar'])) { $path = "public/img/products/"; if (move_uploaded_file($tmp_name_avatar, $path . $update_data['image'])) { resizeImage($path . $update_data['image'], $path . $update_data['image'], 600, 600); @unlink('public/img/products/' . $old_avatar); } } // ============= Upload anh avatar =================== if ($rs) { if (!empty($war)) { $war['title'] = 'Cập nhật sản phẩm <span style="color:blue;"> ' . $update_data['product_name'] . '</span> thành công!'; $content = $war; $alert_time = 15000; set_notice('status', FAILED_STATUS, $content, $alert_time); header('location:' . base_url() . 'index.php/_admin/product'); } else { $mess = 'Cập nhật sản phẩm <span style="color:blue;"> ' . $update_data['product_name'] . '</span> thành công!'; set_notice('status', SUCCESS_STATUS, $mess); header('location:' . base_url() . 'index.php/_admin/product'); } } else { $mess = 'Có lỗi xảy ra cập nhật sản phẩm.'; set_notice('status', FAILED_STATUS, $mess); header('location:' . base_url() . 'index.php/_admin/product/add_product'); } } } }