Example #1
0
 public function testRemove()
 {
     $cart = new StallCart($this->cartVar);
     $cart->add(1, 1);
     $cart->add(1, 2);
     $cart->add(1, 5);
     $cart->add(6, 1);
     $cart->add(3, 2);
     $this->assertEquals(3, $cart->cartCount());
     $cart->remove(6);
     $this->assertEquals(2, $cart->cartCount());
     $cart->remove(3, 50);
     $this->assertEquals(1, $cart->cartCount());
     $cart->remove(1, 2);
     $this->assertEquals(1, $cart->cartCount());
     $this->assertEquals(6, $cart->viewCart(1)['count']);
     $cart->add(1, 0);
     //this remove
     $this->assertEquals(0, $cart->cartCount());
     unset($cart);
 }
Example #2
0
<?php

require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
/**
 * @link https://github.com/anmaslov/stall
 * @copyright Copyright &copy; Alexey Maslov, 2016
 * @license http://opensource.org/licenses/mit-license.php
 */
if (!CModule::IncludeModule('anmaslov.stall')) {
    return;
}
$cart = new StallCart('anmaslov.stall');
$sAction = $_REQUEST['action'];
$id = (int) $_REQUEST['id'];
$count = (int) $_REQUEST['count'];
if ($sAction) {
    switch ($sAction) {
        case 'add':
            $cart->add($id, $count);
            break;
        case 'remove':
            $cart->remove($id, $count);
            break;
    }
}
echo \Bitrix\Main\Web\Json::encode($cart->viewCart());
Example #3
0
        //обновление корзины
        foreach ($_POST as $arPostVal => $count) {
            if (strstr($arPostVal, "cart_item_")) {
                $id = substr($arPostVal, 10);
                if (preg_match('/^[1-9]\\d*$/', $count)) {
                    //Проверка на целое число
                    $cart->update($id, $count);
                }
            }
        }
        LocalRedirect($APPLICATION->GetCurPageParam());
    }
    //////
}
if ($cart->cartCount()) {
    $cartArr = array_keys($cart->viewCart());
    $arSelect = array("ID", "NAME", "PREVIEW_PICTURE", "DETAIL_PICTURE", "DETAIL_PAGE_URL", "PROPERTY_PRICE");
    $arFilter = array('IBLOCK_ID' => $arParams["IBLOCK_ID"], "ID" => $cartArr, "ACTIVE" => "Y");
    $res = CIBlockElement::GetList(array(), $arFilter, false, array(), $arSelect);
    $res->SetUrlTemplates($arParams["DETAIL_URL"]);
    //Применяем шаблон построения ссылок из настроек
    if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["SendOrder"]) > 0) {
        $arResult["SHOW_FORM"] = 1;
        if (strlen($_POST["name"]) < 3) {
            $arResult["ERROR_MESSAGE"]["NAME"] = GetMessage("STALL_USER_NAME_ERROR_MIN_VALUE");
        }
        if (strlen($_POST["email"]) < 5 || !check_email($_POST["email"])) {
            $arResult["ERROR_MESSAGE"]["EMAIL"] = GetMessage("STALL_USER_EMAIL_ERROR");
        }
        if (strlen($_POST["phone"]) < 5) {
            $arResult["ERROR_MESSAGE"]["PHONE"] = GetMessage("STALL_USER_PHONE_ERROR_MIN_VALUE");
Example #4
0
<?php

/**
 * @link https://github.com/anmaslov/stall
 * @copyright Copyright &copy; Alexey Maslov, 2016
 * @license http://opensource.org/licenses/mit-license.php
 */
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
if (!CModule::IncludeModule('iblock')) {
    return;
}
if (!CModule::IncludeModule('anmaslov.stall')) {
    return;
}
$IBLOCK_ID = intval(COption::GetOptionString("anmaslov.stall", "iblock_id"));
$cart = new StallCart('anmaslov.stall');
if ($cart->cartCount()) {
    $arCart = array_keys($cart->viewCart());
    $arSelect = array("ID", "NAME", "PROPERTY_price");
    $arFilter = array('IBLOCK_ID' => $IBLOCK_ID, "ID" => $arCart, "ACTIVE" => "Y");
    $res = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect);
    while ($ob = $res->GetNext()) {
        $arResult[] = array("ID" => $ob['ID'], "NAME" => $ob['NAME'], "PRICE" => $ob['PROPERTY_PRICE_VALUE'], "COUNT" => $cart->viewCart($ob['ID'])['count']);
        //$ob->GetFields();
    }
} else {
    $arResult = array();
}
$this->IncludeComponentTemplate();