Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
 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');
             }
         }
     }
 }