$arParams["DETAIL_URL"] = trim($arParams["DETAIL_URL"]); $IBLOCK_ID = intval(COption::GetOptionString("anmaslov.stall", "iblock_id")); //$arParams["SITE_NAME"] = trim($arParams["SITE_NAME"]); if (strlen($arParams["ADMIN_EMAIL"]) <= 0) { $arParams["ADMIN_EMAIL"] = COption::GetOptionString("anmaslov.stall", "property_manager_email"); } $arParams["EVENT_NAME"] = 'STALL_EMAIL'; $arResult["SHOW_FORM"] = 0; $cart = new StallCart('anmaslov.stall'); if ($cart->cartCount()) { if (isset($_GET["del"])) { //Удаление элемента из корзины $del = $_GET["del"]; if (preg_match('/^[1-9]\\d*$/', $del)) { //Проверка на целое число $cart->remove($del); //LocalRedirect($APPLICATION->GetCurPageParam()); } } if (isset($_POST["BasketRefresh"])) { //обновление корзины 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());
public function testWrongTypes() { $cart = new StallCart($this->cartVar); $cart->add(4, 5); $this->assertEquals(1, $cart->cartCount()); $cart->add(0, 3); $cart->add(-1, 3); $cart->add("text", 3); $this->assertEquals(1, $cart->cartCount()); $cart->add(3, "text"); $this->assertEquals(1, $cart->cartCount()); $cart->remove("text"); $this->assertEquals(1, $cart->cartCount()); }
<?php require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; /** * @link https://github.com/anmaslov/stall * @copyright Copyright © 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());