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

📄 ps_product_attribute.inc

📁 php做的网上商店系统。简单易懂
💻 INC
字号:
<?php/* * The ps_product_attribute class * * Copyright (c) Edikon Corporation.  All rights reserved. * Distributed under the phpShop Public License (pSPL) Version 1.0. * * $Id: ps_product_attribute.inc,v 1.5 2000/09/13 16:36:11 pfmartin Exp $ ******************************************************************************* CLASS DESCRIPTION** ps_product_attribute** The class is is used to manage the function register.** propeties:** methods:***************************************************************************/class ps_product_attribute {  var $classname = "ps_product_attribute";  /**************************************************************************  ** name: validate()  ** created by:  ** description:  ** parameters:  ** returns:  ***************************************************************************/    function validate(&$d) {    $valid = true;    if ($d["attribute_name"] == "") {        $d["error"] .= "An attribute name must be entered.<BR>";        $valid = false;    }    elseif ($d["old_attribute_name"] != $d["attribute_name"]) {      $db = new ps_DB;      $q  = "SELECT attribute_name FROM product_attribute_sku ";      $q .= "WHERE attribute_name = '" . $d["attribute_name"] . "'";      $q .= "AND product_id = '" . $d["product_id"] . "'";      $db->query($q);      if ($db->next_record()) {        $d["error"] .= "A unique attribute name must be entered.<BR>";        $valid = false;                                                               }    }    return $valid;  }    /**************************************************************************  ** name: validate_delete()  ** created by:  ** description:   ** parameters:  ** returns:  ***************************************************************************/    function validate_delete(&$d) {    eval(load_class("product", "ps_product"));    $ps_product = new ps_product;    $db = new ps_DB;    $q  = "SELECT * FROM product_attribute_sku ";    $q .= "WHERE product_id = '" . $d["product_id"] . "' ";    $db->query($q);    if ($db->num_rows() == 1 and              $ps_product->parent_has_children($d["product_id"])) {      $d["error"] .= "ERROR: Cannot delete last attribute while product has ";      $d["error"] .= "Items.<BR>Delete all Items first.<BR>";      return false;                                                             }      return true;  }  /**************************************************************************  ** name: add()  ** created by:  ** description:  ** parameters:  ** returns:  ***************************************************************************/    function add(&$d) {    if (!$this->validate($d)) {      return false;     }    $db = new ps_DB;    $q  = "INSERT INTO product_attribute_sku (product_id,attribute_name,";    $q .= "attribute_list) VALUES ('" . $d["product_id"] . "','";    $q .= $d["attribute_name"] . "','" . $d["attribute_list"] . "')";    $db->query($q);    /** Insert new Attribute Name into child table **/    $ps_product = new ps_product;    $child_pid = $ps_product->get_child_product_ids($d["product_id"]);    for($i = 0; $i < count($child_pid); $i++) {      $q  = "INSERT INTO product_attribute (product_id,attribute_name) ";      $q .= "VALUES ('$child_pid[$i]','" . $d["attribute_name"] . "')";      $db->query($q);    }    return true;  }  /**************************************************************************  ** name: update()  ** created by:  ** description:  ** parameters:  ** returns:  ***************************************************************************/  function update(&$d) {    if (!$this->validate($d)) {      return false;    }    $db = new ps_DB;    $q  = "UPDATE product_attribute_sku SET ";    $q .= "attribute_name='" . $d["attribute_name"] . "',";    $q .= "attribute_list='" . $d["attribute_list"] . "' ";    $q .= "WHERE product_id='" . $d["product_id"] . "' ";    $q .= "AND attribute_name='" . $d["old_attribute_name"] . "' ";    $db->query($q);        if ($d["old_attribute_name"] != $d["attribute_name"]) {      $ps_product = new ps_product;      $child_pid = $ps_product->get_child_product_ids($d["product_id"]);      for($i = 0; $i < count($child_pid); $i++) {        $q  = "UPDATE product_attribute SET ";        $q .= "attribute_name='" . $d["attribute_name"] . "' ";        $q .= "WHERE product_id='$child_pid[$i]' ";        $q .= "AND attribute_name='" . $d["old_attribute_name"] . "' ";        $db->query($q);      }    }    return true;  }  /**************************************************************************  ** name: delete()  ** created by:  ** description:  ** parameters:  ** returns:  ***************************************************************************/    function delete(&$d) {    if (!$this->validate_delete($d)) {      return false;    }                                                                                $db = new ps_DB;    $q  = "DELETE FROM product_attribute_sku ";    $q .= "WHERE product_id = '" . $d["product_id"] . "' ";    $q .= "AND attribute_name = '" . $d["attribute_name"] . "'";    $db->query($q);    $ps_product = new ps_product;    $child_pid = $ps_product->get_child_product_ids($d["product_id"]);    for($i = 0; $i < count($child_pid); $i++) {      $q  = "DELETE FROM product_attribute ";      $q .= "WHERE product_id = '$child_pid[$i]' ";      $q .= "AND attribute_name = '" . $d["attribute_name"] . "' ";      $db->query($q);    }    return True;  }  /**************************************************************************   ** name: list_attribute($product_id, $attribute_name)   ** created by: pablo   ** description:    ** parameters: product_id (may be a product or item)   ** returns:   ***************************************************************************/  function list_attribute($product_id) {    eval(load_class("product", "ps_product"));    $ps_product = new ps_product;    $db = new ps_DB;        $db_sku = new ps_DB;    $db_item = new ps_DB;    $html = "<SELECT NAME=product_id>\n";    // Get list of children    $q = "SELECT * from product WHERE product_parent_id='$product_id'";    $db->query($q);    while ($db->next_record()) {      $has_attributes = True;      // Get item price      $price = $ps_product->get_price($db->f("product_id"));            // Start row for this child      $html .= "<OPTION VALUE=";      $html .= $db->f("product_id") . ">";	      $html .= $db->f("product_name") . " - ";	            // For each child get attribute values by looping through attribute list      $q = "SELECT attribute_name FROM ";      $q .= "product_attribute_sku ";      $q .= "WHERE product_id='$product_id' ";      $q .= "ORDER BY attribute_list ASC";      $db_sku->query($q);      while ($db_sku->next_record()) {	$q = "SELECT attribute_name, ";	$q .= "attribute_value, product_id ";	$q .= "FROM product_attribute WHERE ";	$q .= "product_id='" . $db->f("product_id") . "' AND ";	$q .= "attribute_name='" . $db_sku->f("attribute_name") . "'";	$db_item->query($q);	while ($db_item->next_record()) {	  $html .= $db_item->f("attribute_name") . " ";	  $html .= "(" . $db_item->f("attribute_value") . ") - ";	}      }      // Attributes for this item are done.      $html .= $price["product_price"] . $price["product_currency"];      $html .= "</OPTION>\n";    }    $html .= "</SELECT>\n";    // Check to see if product has attributes and show generated HTML.      // Otherwise, insert hidden product_id field    if ($has_attributes) {      echo $html;    }    else {      echo "<INPUT TYPE=hidden NAME=product_id VALUE=$product_id>\n";    }  }  }?>

⌨️ 快捷键说明

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