⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ps_product.inc

📁 php做的网上商店系统。简单易懂
💻 INC
📖 第 1 页 / 共 2 页
字号:
<?phpclass ps_product {  var $classname = "ps_product";  /**************************************************************************  ** name: validate()  ** created by:  ** description: Validates fields and uploaded image files.  ** parameters:  ** returns:  ***************************************************************************/    function validate(&$d) {    $valid = true;    $db = new ps_DB;    /** Validate Fields **/    $q = "SELECT * FROM product WHERE product_sku='";    $q .= $d["product_sku"] . "'";    $db->query($q);    if ($db->next_record()&&($db->f("product_id") != $d["product_id"])) {      $d["error"] .= "ERROR: A Product with that SKU already exists.<BR>";      $valid = false;    }    if (!$d["product_sku"]) {      $d["error"] .= "ERROR: A Product Sku must be entered.<BR>";      $valid = false;    }    if (!$d["product_name"]) {      $d["error"] .= "ERROR: A name must be entered.<BR>";      $valid = false;    }    if ($d["product_available_date"]) {      $date = explode("/",$d["product_available_date"]);      if (checkdate($date[0],$date[1],$date[2])) {        $d["product_available_date_timestamp"] =                mktime("","","",$date[0],$date[1],$date[2]);      } else {        $d["error"] .= "ERROR: Availability date is invalid.<BR>";        $valid = false;      }    }    /** Validate Product Specific Fields **/    if (!$d["product_parent_id"]) {      if (!$d["category_id"]) {        $d["error"] .= "ERROR: A category must be selected.<BR>";        $valid = false;      }     }    /** Validate Images **/    if (!validate_image($d,"product_thumb_image","product")) {      $valid = false;    }    if (!validate_image($d,"product_full_image","product")) {      $valid = false;    }    return $valid;  }  /**************************************************************************  ** name: validate_delete()  ** created by:  ** description:   ** parameters:  ** returns:  ***************************************************************************/    function validate_delete(&$d) {    /* Check that ps_vendor_id and product_id match */    if (!$this->check_vendor($d)) {      $d["error"] = "ERROR: Cannot delete product. Wrong product or vendor." ;      return false;    }    /* Get the image filenames from the database */    $db = new ps_DB;    $q  = "SELECT product_thumb_image,product_full_image ";    $q .= "FROM product ";    $q .= "WHERE product_id='" . $d["product_id"] . "'";    $db->query($q);    $db->next_record();    /* Validate product_thumb_image */    $d["product_thumb_image_curr"] = $db->f("product_thumb_image");    $d["product_thumb_image_name"] = "none";    if (!validate_image($d,"product_thumb_image","product")) {      return false;    }    /* Validate product_full_image */    $d["product_full_image_curr"] = $db->f("product_full_image");    $d["product_full_image_name"] = "none";    if (!validate_image($d,"product_full_image","product")) {      return false;    }      return true;  }  /**************************************************************************  ** name: add()  ** created by: jep  ** description:   ** parameters:  ** returns:  ***************************************************************************/  function add(&$d) {    global $ps_vendor_id;    if (!$this->validate($d)) {      return false;    }    if (!process_images($d)) {      return false;    }    $timestamp = time();    $db = new ps_DB;    if ($d["product_publish"] == "") {      $d["product_publish"] = "N";    }    $q  = "INSERT INTO product (vendor_id,product_parent_id,product_sku,";    $q .= "product_name,product_desc,product_s_desc,";    $q .= "product_thumb_image,product_full_image,";    $q .= "product_publish,product_weight,product_weight_uom,";    $q .= "product_length,product_width,product_height,product_lwh_uom,";    $q .= "product_url,product_in_stock,";    $q .= "product_available_date,product_special,product_discount_id,";    $q .= "cdate,mdate) ";    $q .= "VALUES ('";    $q .= $ps_vendor_id . "','" . $d["product_parent_id"] . "','";    $q .= $d["product_sku"] . "','" . $d["product_name"] . "','";    $q .= $d["product_desc"] . "','" . $d["product_s_desc"] . "','";    $q .= $d["product_thumb_image"] . "','";    $q .= $d["product_full_image"] . "','" . $d["product_publish"] . "','";    $q .= $d["product_weight"] . "','" . $d["product_weight_uom"] . "','";    $q .= $d["product_length"] . "','" . $d["product_width"] . "','";    $q .= $d["product_height"] . "','" . $d["product_lwh_uom"] . "','";    $q .= $d["product_url"] . "','" . $d["product_in_stock"] . "','";    $q .= $d["product_available_date_timestamp"] . "','";    $q .= $d["product_special"] . "','";    $q .= $d["product_discount_id"] . "','$timestamp','$timestamp')";    $db->query($q);    // Get the assigned product_id //    $q  = "SELECT product_id FROM product ";    $q .= "WHERE product_sku = '" . $d["product_sku"] . "' ";    $q .= "AND vendor_id = '" . $ps_vendor_id . "' ";    $q .= "AND cdate = $timestamp";    $db->query($q);    $db->next_record();    $d["product_id"] = $db->f("product_id");    // If is Item, add attributes from parent //    if ($d["product_parent_id"]) {      $q  = "SELECT attribute_name FROM product_attribute_sku ";      $q .= "WHERE product_id='" . $d["product_parent_id"] . "' ";      $q .= "ORDER BY attribute_list,attribute_name";      $db->query($q);      $db2 = new ps_DB;      $i = 0;      while($db->next_record()) {        $i++;        $q2  = "INSERT INTO product_attribute ";        $q2 .= "(product_id,attribute_name,attribute_value) ";        $q2 .= "VALUES ('" . $d["product_id"] . "','";        $q2 .=  $db->f("attribute_name") . "','" . $d["attribute_$i"] . "')";        $db2->query($q2);      }    }     /* If is Product, Insert category ids */    elseif ($d["category_id"]) {      $q  = "INSERT INTO product_category_xref ";      $q .= "(category_id,product_id) ";      $q .= "VALUES ('" . $d["category_id"] . "','";      $q .=  $d["product_id"] . "')";      $db->query($q);    }    return true;  }   /**************************************************************************  ** name: update()  ** created by:  ** description:  ** parameters:  ** returns:  ***************************************************************************/  function update(&$d) {    global $ps_vendor_id;    if (!$this->validate($d)) {      return false;    }    if (!process_images($d)) {      return false;    }    $timestamp = time();    $db = new ps_DB;    if ($d["product_publish"] == "") {      $d["product_publish"] = "N";    }    $q  = "UPDATE product SET ";    $q .= "product_sku='" . $d["product_sku"] . "',";    $q .= "product_name='" . $d["product_name"] . "',";    $q .= "product_s_desc='" . $d["product_s_desc"] . "',";    $q .= "product_desc='" . $d["product_desc"] . "',";    $q .= "product_publish='" . $d["product_publish"] . "',";    $q .= "product_weight='" . $d["product_weight"] . "',";    $q .= "product_weight_uom='" . $d["product_weight_uom"] . "',";    $q .= "product_length='" . $d["product_length"] . "',";    $q .= "product_width='" . $d["product_width"] . "',";    $q .= "product_height='" . $d["product_height"] . "',";    $q .= "product_lwh_uom='" . $d["product_lwh_uom"] . "',";    $q .= "product_url='" . $d["product_url"] . "',";    $q .= "product_in_stock='" . $d["product_in_stock"] . "',";    $q .= "product_available_date='";    $q .= $d["product_available_date_timestamp"] . "',";    $q .= "product_special='" . $d["product_special"] . "',";    $q .= "product_discount_id='" . $d["product_discount_id"] . "',";    $q .= "product_thumb_image='" . $d["product_thumb_image"] . "',";    $q .= "product_full_image='" . $d["product_full_image"] . "',";    $q .= "mdate='$timestamp' ";    $q .= "WHERE product_id='" . $d["product_id"] . "'";    $q .= "AND vendor_id='" . $ps_vendor_id . "'";    $db->query($q);    /* If is Item, update attributes */    if ($d["product_parent_id"]) {      $q  = "SELECT attribute_name FROM product_attribute_sku ";      $q .= "WHERE product_id='" . $d["product_parent_id"] . "' ";      $q .= "ORDER BY attribute_list,attribute_name";      $db->query($q);      $db2 = new ps_DB;      $i = 0;      while($db->next_record()) {        $i++;        $q2  = "UPDATE product_attribute SET ";        $q2 .= "attribute_value='" . $d["attribute_$i"] . "' ";        $q2 .= "WHERE product_id = '" . $d["product_id"] . "' ";        $q2 .= "AND attribute_name = '" . $db->f("attribute_name") . "' ";         $db2->query($q2);      }    /* If it is a Product, update Category */    } elseif ($d["category_id"]) {      $q  = "UPDATE product_category_xref ";      $q .= "SET category_id = '" . $d["category_id"] . "' ";      $q .= "WHERE product_id = '" . $d["product_id"] . "' ";      $db->query($q);    }    return true;  }  /**************************************************************************  ** name: delete()  ** created by: jep  ** description:  ** parameters:  ** returns:  ***************************************************************************/  function delete(&$d) {    if (!$this->validate_delete($d)) {      return false;    }    $db = new ps_DB;    $product_id = $d["product_id"];    /* If is Product */    if ($this->is_product($product_id)) {      /* Delete all items first */      $q  = "SELECT product_id FROM product ";      $q .= "WHERE product_parent_id='$product_id'";      $db->query($q);      while($db->next_record()) {        $d2["product_id"] = $db->f("product_id");        if (!$this->delete($d2)) {          $d["error"] = $d2["error"];          return false;        }      }      /* Delete attributes */      $q  = "DELETE FROM product_attribute_sku ";      $q .= "WHERE product_id='$product_id' ";      $db->query($q);      /* Delete categories xref */      $q  = "DELETE FROM product_category_xref ";      $q .= "WHERE product_id = '$product_id' ";      $db->query($q);    }     /* If is Item */    else {      /* Delete attribute values */      $q  = "DELETE FROM product_attribute WHERE product_id='$product_id'";      $db->query($q);    }    /* For both Product and Item */    /* Delete Image files */    if (!process_images($d)) {      return false;    }    /* Delete Prices */    $q  = "DELETE FROM product_price WHERE product_id = '$product_id'";    $db->query($q);    /* Delete entry from product table */    $q  = "DELETE FROM product WHERE product_id = '$product_id'";    $db->query($q);    /* If only deleting an item, go to the parent product page after    ** the deletion. This had to be done here because the product id    ** of the item to be deleted had to be passed as product_id */    if ($d["product_parent_id"]) {      $d["product_id"] = $d["product_parent_id"];      $d["product_parent_id"] = "";    }    return true;  }  /**************************************************************************  ** name: check_vendor()  ** created by:  ** description:  ** parameters:  ** returns:  ***************************************************************************/  function check_vendor($d) {    global $ps_vendor_id;    $db = new ps_DB;    $q  = "SELECT vendor_id  FROM product ";    $q .= "WHERE vendor_id = '$ps_vendor_id' ";    $q .= "AND product_id = '" . $d["product_id"] . "' ";    $db->query($q);    if ($db->next_record()) {      return true;    } else {      return false;    }  }  /**************************************************************************  ** name: sql()  ** created by: jep

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -