新年あけましておめでとうございます。昨年暮れに始まった本連載ですが,
PHPにはPHPの書き方がある
2014年最初の患者さんは,
今回は,
<?php
/*=============================================================================
title : Cartクラス
commnets: 買い物カゴを定義する
コンストラクタで、一意のカートID&カートDBに新レコードを
生成。
カートIDはクッキーに発行し、セッション管理を行う
how to :
filename: cart.inc
date : 2000/06/22
===========================================================================*/
/*---------------------------------------------------------------------------*/
/* 定数定義
/*---------------------------------------------------------------------------*/
define("CART_ISSUE_TIME", 24); //カート有効時間
class Cart{
//メンバ変数
var $a_Item = ""; //アイテム情報
var $cCartId; //カートID
var $iMoney = 0; //合計金額
/*-----------------------------------------------------------------------*/
/* コンストラクタ
/*-----------------------------------------------------------------------*/
function Cart(){
global $CK_cCartId;
//カートIDセット
if(!$CK_cCartId) $CK_cCartId = make_unique_code("cart", "id", 8);
$this->cCartId = $CK_cCartId;
}
/*-----------------------------------------------------------------------*/
/* 商品を追加する
/*-----------------------------------------------------------------------*/
function do_add_item($cGoodsCode){
$a_Value[0] = $this->cCartId;
$a_Value[] = date("YmdHis", mktime(date("H") + CART_ISSUE_TIME, date("i"), date("s"), date("m"), date("d"), date("Y"))); //有効時間時間;
$a_Value[] = $cGoodsCode;
$a_Value[] = 1;
$db = new DB;
$db->do_insert("cart", "", $a_Value);
}
/*-----------------------------------------------------------------------*/
/* 商品個数を修正する
/*-----------------------------------------------------------------------*/
function do_change_item($cGoodsCode, $iGoodsNum){
$a_Value[0] = $iGoodsNum;
//一時削除
$this->do_delete_item($cGoodsCode);
$a_Value[0] = $this->cCartId;
$a_Value[] = make_date("YmdHis");
$a_Value[] = $cGoodsCode;
$a_Value[] = $iGoodsNum;
$db = new DB;
$db->do_insert("cart", "", $a_Value);
}
/*-----------------------------------------------------------------------*/
/* 商品を削除する
/*-----------------------------------------------------------------------*/
function do_delete_item($cGoodsCode){
if($cGoodsCode == -1) $cWhere = " WHERE id=\"" . $this->cCartId . "\"";
else $cWhere = " WHERE id=\"" . $this->cCartId . "\" AND gds_id=\"" . $cGoodsCode . "\"";
$db = new DB;
$db->do_delete("cart", $cWhere);
}
/*-----------------------------------------------------------------------*/
/* カートIDをクッキーに保存
/*-----------------------------------------------------------------------*/
function set_cookie(){
setcookie("CK_cCartId", $this->cCartId, time()+3600);
}
/*-----------------------------------------------------------------------*/
/* カートを削除
/*-----------------------------------------------------------------------*/
function delete_cart(){
//クッキーを削除
setcookie("CK_cCartId", $this->cCartId, time()-1);
//DBを削除
$db = new DB;
$db->do_delete("cart", " WHERE id=\"" . $this->cCartId . "\"");
}
/*-----------------------------------------------------------------------*/
/* メンバ変数参照
/*-----------------------------------------------------------------------*/
/*---------- カートID ---------*/
function get_id(){
return $this->cCartId;
}
/*---------- 商品情報 ---------*/
function get_item(){
return $this->a_Item;
}
/*---------- 合計個数 ---------*/
function get_count(){
$count = 0;
while($this->a_Item[$i]){
$count += $this->a_Item[$i];
}
return $count;
}
}
?>