📄 ps_product_attribute.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 + -