Класс Cart
Объект $Cart:
Объект для работы с корзиной заказа
Исходный код
class Cart extends \Cms\Site\Page { … }
Методы
register()
$Cart->register($Main);
Исходный код
function register($Main) {
$Main->openType("zakaz");
return array(
"title" => "Корзина",
);
}
quote()
$Cart->quote($id);
Исходный код
function quote($id) {
return htmlspecialchars($id, ENT_QUOTES);
}
myPrice()
$Cart->myPrice($id);
Исходный код
function myPrice($id) {
$r = $this->getPrice($id) * (1 - $this->getDiscount($id) / 100);
return $r;
}
getPrice()
$Cart->getPrice($id);
Исходный код
function getPrice($id) {
$Main = $this->Main();
if ($Item = $this->load($id)) {
$Item->openInfo();
return doubleval($Item->info['price']);
}
return 0;
}
oldPrice()
$Cart->oldPrice($id);
Исходный код
function oldPrice($id) {
$Main = $this->Main();
if ($Item = $this->load($id)) {
$Item->openInfo();
return doubleval($Item->info['old-price']);
}
return 0;
}
getDiscount()
$Cart->getDiscount($id);
Исходный код
function getDiscount($id) {
$Main = $this->Main();
if ($Item = $this->load($id)) {
$Item->openInfo();
return doubleval($Item->info['discount']);
}
return 0;
}
getQty()
$Cart->getQty($id);
Исходный код
function getQty($id) {
$Main = $this->Main();
if ($Item = $this->load($id)) {
$r = $_SESSION['cart'][$id];
if ($r > 0) return $r;
}
return null;
}
getAll()
$Cart->getAll();
Исходный код
function getAll() {
$r = array(
"item" => 0,
"cost" => 0,
"unit" => 0,
);
if (is_array($_SESSION['cart'])) foreach ($_SESSION['cart'] as $id => $qty) if ($qty) {
if ($price = $this->myPrice($id)) {
$r['item'] ++;
$r['unit'] += $qty;
$r['cost'] += $qty * $price;
}
}
return $r;
}
addCart()
$Cart->addCart($id, $qty, $force=false);
Исходный код
function addCart($id, $qty, $force = false) {
$id = strval($id);
$qty = strval($qty);
if (!strlen($id)) return;
if (!strlen($qty)) $qty = 1;
else $qty = intval($qty);
if ($qty < 0) $qty = 0;
$Auth = $this->Auth();
$Main = $this->Main();
$Auth->sessionStart();
if (!is_array($_SESSION['cart'])) $_SESSION['cart'] = array();
if ($Item = $this->load($id)) {
if ($force || $Item->canBuy()) {
if ($qty > 0) $_SESSION['cart'][$id] = $qty;
else unset($_SESSION['cart'][$id]);
}
}
}
inCart()
$Cart->inCart($id);
Исходный код
function inCart($id) {
return intval($_SESSION['cart'][$id]);
}
clearCart()
$Cart->clearCart();
Исходный код
function clearCart() {
$Auth = $this->Auth();
$Auth->sessionStart();
$_SESSION['cart'] = array();
}
load()
$Cart->load($id);
Исходный код
function load($id) {
return $this->Main()->load(strval($id), 'price');
}