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

📄 ps_cart.inc

📁 phpShop是一个基于php的分布式电子商务模块
💻 INC
字号:
<?php// +----------------------------------------------------------------------+// | Advanced Cart                                                        |// | Copyright (c) 2001 BrettODonnell.com. All rights reserved.           |// +----------------------------------------------------------------------+// | The contents of this file are subject to the Mozilla Public License  |// | Version 1.1 (the "License"); you may not use this file except in     |// | compliance with the License. You may obtain a copy of the License at |// | http://www.mozilla.org/MPL/                                          |// |                                                                      |// | Software distributed under the License is distributed on an "AS IS"  |// | basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See  |// | the License for the specific language governing rights and           |// | limitations under the License.                                       |// |                                                                      |// | The Original Code is Advanced Cart and contains portions of          |// | phpShop.                                                             |// |                                                                      |// | The Initial Developer of the Original phpShop Code is Edikon Corp.   |// | Portions created by Edikon Corp. are Copyright (C) 2001 Edikon Corp. |// | All Rights Reserved.                                                 |// |                                                                      |// | The Initial Developer of the Advanced Cart Code is                   |// | BrettODonnell.com. Portions created by BrettODonnell.com are         |// | Copyright (C) 2001 BrettODonnell.com. All Rights Reserved.           |// +----------------------------------------------------------------------+/* * * Copyright (c) Edikon Corporation.  All rights reserved. * Distributed under the phpShop Public License (pSPL) Version 1.0. * * $Id: ps_cart.inc,v 1.1.1.1 2004/07/27 14:59:39 pablo Exp $ *** CLASS DESCRIPTION** ps_cart** The cart class is used to store products and carry them through the user's* session in the store.* propeties:*       item() - an array of items*       idx - the current count of items in the cart*       error - the error message returned by validation if any* methods:*       add()*       update()*       delete()***************************************************************************/class ps_cart {  var $classname="ps_cart";  /**************************************************************************  ** name: add()  ** created by: brett odonnell  ** description: updates the quantity of all product_ids in the cart  ** parameters:  ** returns:  ***************************************************************************/  function add(&$d) {    global $cart;    $db = new ps_DB;    $return=True;    $d["error"]="";    if(is_array($d["products"])){      for ($i=0;$i<count($d["products"]);$i++) {        if(!$this->add_item($d["products"][$i]["product_id"], $d["products"][$i]["quantity"])){          $d["error"] = $this->error;          $return=False;        }      }    }    else{      if(!$this->add_item($d["product_id"], $d["quantity"])){        $d["error"] = $this->error;        $return=False;      }    }    return $return;  }  /**************************************************************************  ** name: add_item()  ** created by: brett odonnell  ** description: adds an item to the shopping cart  ** parameters:  ** returns:  ***************************************************************************/  function add_item($product_id,$quantity) {    global $cart;    $return=True;    $db = new ps_DB;    $this->error ="";    if(!$quantity){      $quantity=1;    }    // Check for negative quantity    if ($quantity < 1) {        $this->error = "(qty:$quantity) - To delete an item please click the 'Delete' link.";        return False;    }    if (!ereg("^[0-9]*$", $quantity)) {      $this->error .= "Please enter a valid quantity for this item.<br>";      $return=False;    }    //If the product publish is No then it will not display the item even if you    //enter or change the product_id in the URL bar.    $q = "SELECT product_name,product_publish FROM product WHERE product_id='$product_id'";    $db->query($q);    $db->next_record();    // if the product isn't publishable, don't allow the add or update    if ('N' == $db->f("product_publish") ) {              // set your "not available" error message here             $d["error"] = "We're sorry but ".$db->f("product_name")." is not available at this time.";             // when in ps_cart->update, you probably want to uncomment            // the line below to remove the product from the cart            //$this->delete($d);             return False;    } //end if prodcut_publish    // Check to see if checking stock quantity    if (CHECK_STOCK) {      $q = "SELECT product_in_stock ";      $q .= "FROM product where product_id=";      $q .= $product_id;      $db->query($q);      $db->next_record();      $product_in_stock = $db->f("product_in_stock");      if ($quantity > $product_in_stock) {        $this->error .= "Quantity selected exceeds available stock. - ";        $this->error .= "Currently have $product_in_stock items available.";        $return=False;      }    }    // If no quantity sent them assume 1    if ($quantity == "")      $quantity = 1;    // Check to see if we already have it    if(!$return){ return FALSE; }else{      $updated = 0;      // Check for duplicate and do not add to current quantity      for ($i=0;$i<$cart["idx"];$i++) {        if ($cart[$i]["product_id"] == $product_id) {          $updated = 1;        }      }      // If we did not update then add the item      if (!$updated) {        $cart[$cart["idx"]]["product_id"] = $product_id;        $cart[$cart["idx"]]["quantity"]   = $quantity;        $cart["idx"]++;      }    }    return True;  } /**************************************************************************  ** name: update()  ** created by: brett odonnell  ** description: updates the quantity of all product_ids in the cart  ** parameters:  ** returns:  ***************************************************************************/  function update(&$d) {    global $cart;    $db = new ps_DB;    for ($i=0;$i<$cart["idx"];$i++) {      if(!$this->update_item($i, $d["quantity"][$i])){        $d["error"] = $this->error;        return False;      }    }  } /**************************************************************************  ** name: update_item()  ** created by: pablo  ** description: updates the entire shopping cart  ** parameters:  ** returns:  ***************************************************************************/  function update_item($idx, $quantity) {    global $cart;    $db = new ps_DB;    // Check for negative quantity    if ($quantity < 1) {        $this->error = "(IDX:$idx|QTY:$quantity) To delete an item please click the 'Delete' link.";        return False;    }    if (!ereg("^[0-9]*$", $quantity)) {        $this->error = "Please enter a valid quantity for this item.";        return False;    }    $product_id=$cart[$idx]["product_id"];    // Check to see if checking stock quantity    if (CHECK_STOCK) {      $q = "SELECT product_in_stock ";      $q .= "FROM product where product_id=";      $q .= $product_id;      $db->query($q);      $db->next_record();      $product_in_stock = $db->f("product_in_stock");      if ($quantity > $product_in_stock) {        $this->error = "Quantity selected exceeds available stock.<BR>";        $this->error .= "Currently have $product_in_stock items available.";        return False;      }    }    //If the product publish is No then it will not display the item even if you    //enter or change the product_id in the URL bar.    $q = "SELECT product_name,product_publish FROM product WHERE product_id='$product_id'";    $db->query($q);    $db->next_record();    // if the product isn't publishable, don't allow the add or update    if ('N' == $db->f("product_publish") ) {      // set your "not available" error message here      $d["error"] = "We're sorry but ".$db->f("product_name")." is not available at this time.";      // when in ps_cart->update, you probably want to uncomment      // the line below to remove the product from the cart      $this->delete($d);      return False;     } //end if prodcut_publish    if (!isset($idx)) {      $this->error = "No IDX was selected.";      return False;    }    $cart[$idx]["quantity"] = $quantity;    return True;  } /**************************************************************************  ** name: delete()  ** created by: pablo  ** description: deletes a given product_id from the cart  ** parameters:  ** returns:  ***************************************************************************/  function delete($d) {    global $cart;    $temp = array();    $product_id = $d["product_id"];    if (!$product_id) {      return False;    }    $j = 0;    for ($i=0;$i<$cart["idx"];$i++) {      if ($cart[$i]["product_id"] != $product_id) {        $temp[$j++] = $cart[$i];      }    }    $temp["idx"] = $j;    $cart = $temp;    return True;  } /**************************************************************************  ** name: reset()  ** created by: pablo  ** description: resets the cart (i.e. empty)  ** parameters:  ** returns:  ***************************************************************************/  function reset() {    global $cart;    $cart["idx"]=0;    return True;  }}?>

⌨️ 快捷键说明

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