/** * [getSpecificationsList description] * @param int $idUser * @return array or false */ function getSpecificationsList($idUser) { if (!CModule::IncludeModule('iblock')) { return false; } global $USER; if ($idUser) { $IBLOCK_ID = getIblockSpecifications(); $rsUser = CUser::GetByID($idUser); $arUser = $rsUser->Fetch(); $arSpecificationsId = $arUser["UF_SPECIFICATIONS"]; foreach ($arSpecificationsId as $key => $id) { $arFilterSec = array('IBLOCK_ID' => $IBLOCK_ID, 'GLOBAL_ACTIVE' => 'Y', "ID" => $id); $db_list = CIBlockSection::GetList(array("TIMESTAMP_X" => "DESC"), $arFilterSec, true); if ($ar_result = $db_list->GetNext()) { $ar_result["ITEMS"] = array(); $arSelect = array("NAME", "ID", "PROPERTY_PRODUCT", "PROPERTY_COUNT"); $arFilter = array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y", "SECTION_ID" => $ar_result["ID"]); $res = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect); while ($ob = $res->GetNextElement()) { $arItem = $ob->GetFields(); $arProdSpec = getItemCart($arItem["PROPERTY_PRODUCT_VALUE"]); if ($arProdSpec && $arItem["PROPERTY_PRODUCT_VALUE"]) { $arItem["PRODUCT"] = $arProdSpec; $dbPrice = CPrice::GetList(array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC", "SORT" => "ASC"), array("PRODUCT_ID" => $arItem["PROPERTY_PRODUCT_VALUE"]), false, false, array("ID", "CATALOG_GROUP_ID", "PRICE", "CURRENCY", "QUANTITY_FROM", "QUANTITY_TO")); if ($arPrice = $dbPrice->Fetch()) { $arDiscounts = CCatalogDiscount::GetDiscountByPrice($arPrice["ID"], $USER->GetUserGroupArray(), "N", SITE_ID); $discountPrice = CCatalogProduct::CountPriceWithDiscount($arPrice["PRICE"], $arPrice["CURRENCY"], $arDiscounts); $arPrice["DISCOUNT_PRICE"] = $discountPrice; $arItem["DISCOUNT"] = $arPrice; } $ar_result["ITEMS"][] = $arItem; } elseif (!$arItem["PROPERTY_PRODUCT_VALUE"]) { $arParams["product"] = $arItem["ID"]; removeItemSpecification($arParams); } } $arSections[] = $ar_result; } } return $arSections; } return false; }
* $_POST["count"] count products */ if (htmlspecialchars($_POST["action"]) == "add") { // добавляем спецификацию $result = addSpecifications($_POST); } elseif (htmlspecialchars($_POST["action"]) == "update") { // обновляем спецификацию $result = updateSpecifications($_POST); } elseif (htmlspecialchars($_POST["action"]) == "remove") { // если remove тогда либо пустой product либо пустой spec if (htmlspecialchars($_POST["spec"])) { // если удаляем спецификацию $result = removeSpecification($_POST); } elseif (htmlspecialchars($_POST["product"])) { // если удаляем проудкт из спецификации $result = removeItemSpecification($_POST); } } elseif (htmlspecialchars($_POST["action"]) == "get") { // получаем спецификации по юзеру $result = getSpecificationsName(htmlspecialchars($_POST["user"])); echo getPopupSpecifications($result); exit; } elseif (htmlspecialchars($_POST["action"]) == "file") { $idSpec = htmlspecialchars($_POST["spec"]); $pathFile = getPdfFile($idSpec); // формируем файл if ($pathFile) { echo json_encode(array("result" => true, "path" => $pathFile)); exit; } }