Система управления «Сайт PRO»
Версия 20240107

Класс Cart

Объект $Cart: Cms\Root\Cart наследует Cms\Site\Page

Объект для работы с корзиной заказа

Исходный код
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');
    }