public function getPriceItems() { $items = array(); if (CModule::IncludeModule("catalog")) { $rsPrice = CCatalogGroup::GetList($v1, $v2); while ($arPrice = $rsPrice->Fetch()) { if (($arPrice["CAN_ACCESS"] == "Y" || $arPrice["CAN_BUY"] == "Y") && in_array($arPrice["NAME"], $this->arParams["PRICE_CODE"])) { $items[$arPrice["NAME"]] = array("ID" => $arPrice["ID"], "CODE" => $arPrice["NAME"], "NAME" => $arPrice["NAME_LANG"], "PRICE" => true, "VALUES" => array("MIN" => array("CONTROL_ID" => htmlspecialcharsbx($this->FILTER_NAME . "_P" . $arPrice["ID"] . "_MIN"), "CONTROL_NAME" => htmlspecialcharsbx($this->FILTER_NAME . "_P" . $arPrice["ID"] . "_MIN")), "MAX" => array("CONTROL_ID" => htmlspecialcharsbx($this->FILTER_NAME . "_P" . $arPrice["ID"] . "_MAX"), "CONTROL_NAME" => htmlspecialcharsbx($this->FILTER_NAME . "_P" . $arPrice["ID"] . "_MAX")))); } } } return $items; }
/** * Метод вернет список типов цен * * @return array */ function getPriceTypeList() { $result = array(); $selectedType = getSelectedType(); $dbCatalogGroup = CCatalogGroup::GetList(array('SORT' => 'ASC'), array('BASE' => 'N'), false, false, array('ID', ' NAME', 'NAME_LANG')); while ($type = $dbCatalogGroup->GetNext()) { if ($type['ID'] == $selectedType) { $type['SELECTED'] = true; } $result[] = $type; } return $result; }
public function getPriceItems() { $items = array(); if (!empty($this->arParams["PRICE_CODE"])) { if (CModule::IncludeModule("catalog")) { $rsPrice = CCatalogGroup::GetList(array('SORT' => 'ASC', 'ID' => 'ASC'), array('=NAME' => $this->arParams["PRICE_CODE"]), false, false, array('ID', 'NAME', 'NAME_LANG', 'CAN_ACCESS', 'CAN_BUY')); while ($arPrice = $rsPrice->Fetch()) { if ($arPrice["CAN_ACCESS"] == "Y" || $arPrice["CAN_BUY"] == "Y") { $items[$arPrice["NAME"]] = array("ID" => $arPrice["ID"], "CODE" => $arPrice["NAME"], "NAME" => strlen($arPrice["NAME_LANG"]) ? $arPrice["NAME_LANG"] : $arPrice["NAME"], "PRICE" => true, "VALUES" => array("MIN" => array("CONTROL_ID" => htmlspecialcharsbx($this->FILTER_NAME . "_P" . $arPrice["ID"] . "_MIN"), "CONTROL_NAME" => htmlspecialcharsbx($this->FILTER_NAME . "_P" . $arPrice["ID"] . "_MIN")), "MAX" => array("CONTROL_ID" => htmlspecialcharsbx($this->FILTER_NAME . "_P" . $arPrice["ID"] . "_MAX"), "CONTROL_NAME" => htmlspecialcharsbx($this->FILTER_NAME . "_P" . $arPrice["ID"] . "_MAX")))); } } } } return $items; }
/** * @param $intRangeID * @param $strPrefix * @return string */ function __AddCellPriceType($intRangeID, $strPrefix) { $dbCatalogGroups = CCatalogGroup::GetList(array("SORT" => "ASC", "NAME" => "ASC", "ID" => "ASC")); $priceTypeCellOption = ''; while ($arCatalogGroup = $dbCatalogGroups->Fetch()) { $priceTypeCellOption .= "<option value=" . $arCatalogGroup['ID'] . ">" . htmlspecialcharsbx($arCatalogGroup["NAME"]) . "</option>"; } return <<<PRICETYPECELL \t<td width="30%"> \t\t<span class="adm-select-wrap"> \t\t\t<select id="IB_SEG_PRICE_TYPE" class="adm-select" style="width: 169px; max-width: 300px;" name="{$strPrefix}PRICETYPE[{$intRangeID}]" /> \t\t\t\t{$priceTypeCellOption} \t\t\t</select> \t\t</span> \t</td> PRICETYPECELL; }
function __cat_setPriceTypes($arPriceTypes) { $arCurrentPriceTypes = array(); $dbRes = CCatalogGroup::GetList(); while ($arRes = $dbRes->Fetch()) { $arCurrentPriceTypes[$arRes['NAME']] = $arRes; } $arLang = __cat_LoadMess(dirname(__FILE__) . '/types.php'); foreach ($arPriceTypes as $type_id => $arFields) { if (isset($arCurrentPriceTypes[$type_id])) { continue; } foreach ($arLang as $LANG => $arMess) { $arFields['USER_LANG'][$LANG] = $arMess['CAT_PRICE_TYPE_' . $type_id]; } // errors're goin by forest CCatalogGroup::Add($arFields); } }
unset($arFProps); } $arWFStatus = array(); if ($boolSubWorkFlow) { $rsWF = CWorkflowStatus::GetDropDownList('Y'); while ($arWF = $rsWF->GetNext()) { $arWFStatus[$arWF["~REFERENCE_ID"]] = $arWF["~REFERENCE"]; } } if ($boolSubCatalog) { $arHeader[] = array("id" => "CATALOG_QUANTITY", "content" => GetMessage("IBEL_CATALOG_QUANTITY"), "align" => "right", "sort" => "CATALOG_QUANTITY"); $arHeader[] = array("id" => "CATALOG_QUANTITY_TRACE", "content" => GetMessage("IBEL_CATALOG_QUANTITY_TRACE"), "align" => "right"); $arHeader[] = array("id" => "CATALOG_WEIGHT", "content" => GetMessage("IBEL_CATALOG_WEIGHT"), "align" => "right", "sort" => "CATALOG_WEIGHT"); $arCatGroup = array(); $arBaseGroup = CCatalogGroup::GetBaseGroup(); $dbCatalogGroups = CCatalogGroup::GetList(array("SORT" => "ASC"), array("LID" => LANGUAGE_ID)); while ($arCatalogGroup = $dbCatalogGroups->Fetch()) { $arHeader[] = array("id" => "CATALOG_GROUP_" . $arCatalogGroup["ID"], "content" => htmlspecialcharsex(!empty($arCatalogGroup["NAME_LANG"]) ? $arCatalogGroup["NAME_LANG"] : $arCatalogGroup["NAME"]), "align" => "right", "sort" => "CATALOG_PRICE_" . $arCatalogGroup["ID"], "default" => $arBaseGroup['ID'] == $arCatalogGroup["ID"] ? true : false); $arCatGroup[$arCatalogGroup["ID"]] = $arCatalogGroup; } $arCatExtra = array(); $db_extras = CExtra::GetList($by3 = "NAME", $order3 = "ASC"); while ($extras = $db_extras->Fetch()) { $arCatExtra[] = $extras; } } if ($boolSubBizproc) { $arWorkflowTemplates = CBPDocument::GetWorkflowTemplatesForDocumentType(array("iblock", "CIBlockDocument", "iblock_" . $intSubIBlockID)); foreach ($arWorkflowTemplates as $arTemplate) { $arHeader[] = array("id" => "WF_" . $arTemplate["ID"], "content" => $arTemplate["NAME"]); }
elseif($arCur["CURRENCY"] == "EUR") CCurrencyLang::Update($arCur["CURRENCY"], $lang, Array("DECIMALS" => 2, "FORMAT_STRING" => "€#")); } } WizardServices::IncludeServiceLang("step1.php", $lang); CModule::IncludeModule("catalog"); $dbVat = CCatalogVat::GetList(array(), Array("SITE_ID" => WIZARD_SITE_ID)); if(!($dbVat->Fetch())) { $arF = Array ("ACTIVE" => "Y", "SORT" => "100", "NAME" => GetMessage("WIZ_VAT_1"), "RATE" => 0); CCatalogVat::Set($arF); $arF = Array ("ACTIVE" => "Y", "SORT" => "200", "NAME" => GetMessage("WIZ_VAT_2"), "RATE" => GetMessage("WIZ_VAT_2_VALUE")); CCatalogVat::Set($arF); } $dbResultList = CCatalogGroup::GetList(Array(), Array("CODE" => "BASE")); if($arRes = $dbResultList->Fetch()) { $arFields = Array(); foreach($arLanguages as $langID) { WizardServices::IncludeServiceLang("step1.php", $langID); $arFields["USER_LANG"][$langID] = GetMessage("WIZ_PRICE_NAME"); } $arFields["BASE"] = "Y"; if($wizard->GetVar("installPriceBASE") == "Y"){ $db_res = CCatalogGroup::GetGroupsList(array("CATALOG_GROUP_ID"=>'1', "BUY"=>"Y")); if ($ar_res = $db_res->Fetch()) { $wizGroupId[] = $ar_res['GROUP_ID']; }
/** * Get common data from cache. * @return mixed[] */ protected function getReferences() { global $USER; $this->arParams['CACHE_GROUPS'] = isset($this->arParams['CACHE_GROUPS']) && $this->arParams['CACHE_GROUPS'] == 'N' ? 'N' : 'Y'; $obCache = new CPHPCache(); if ($this->arParams['CACHE_GROUPS'] == 'Y') { $cacheId = implode("-", array(__CLASS__, LANGUAGE_ID, SITE_ID, $USER->GetGroups())); } else { $cacheId = implode("-", array(__CLASS__, LANGUAGE_ID, SITE_ID)); } $cached = array(); if ($obCache->StartDataCache($this->arParams["CACHE_TIME"], $cacheId, SITE_ID . '/' . $this->getRelativePath() . '/reference')) { // Catalog Groups $cached['CATALOG_GROUP'] = array(); $catalogGroupIterator = CCatalogGroup::GetList(array("SORT" => "ASC")); while ($catalogGroup = $catalogGroupIterator->fetch()) { $cached['CATALOG_GROUP'][$catalogGroup['NAME']] = $catalogGroup; } // Catalog Prices $cached['CATALOG_PRICE'] = CIBlockPriceTools::GetCatalogPrices(false, array_keys($cached['CATALOG_GROUP'])); // Catalog Currency $cached['CURRENCY'] = array(); if ($this->isCurrency) { $by = "currency"; $order = "asc"; $currencyIterator = CCurrency::getList($by, $order); while ($currency = $currencyIterator->fetch()) { $cached['CURRENCY'][$currency['CURRENCY']] = $currency; } } // Catalogs list $cached['CATALOG'] = array(); $catalogIterator = CCatalog::getList(array("IBLOCK_ID" => "ASC")); while ($catalog = $catalogIterator->fetch()) { $info = CCatalogSku::getInfoByIblock($catalog['IBLOCK_ID']); $catalog['CATALOG_TYPE'] = $info['CATALOG_TYPE']; $cached['CATALOG'][$catalog['IBLOCK_ID']] = $catalog; } // Measure list $cached['MEASURE'] = array(); $measureIterator = CCatalogMeasure::getList(array("CODE" => "ASC")); while ($measure = $measureIterator->fetch()) { $cached['MEASURE'][$measure['ID']] = $measure; } // Default Measure $cached['DEFAULT_MEASURE'] = CCatalogMeasure::getDefaultMeasure(true, true); $obCache->EndDataCache($cached); } else { $cached = $obCache->GetVars(); } return $cached; }
'sku' => getMessage('FILTER_PRICE_GROUPED_FOR_SKU'), ); $defaultListValues = array('-' => getMessage('RS_SLINE.UNDEFINED')); $IBLOCK_ID = intval($arCurrentValues['IBLOCK_ID']); $arProperty = array(); if(0 < intval($IBLOCK_ID)){ $rsProp = CIBlockProperty::GetList(Array('sort' => 'asc', 'name' => 'asc'), Array('IBLOCK_ID' => $IBLOCK_ID, 'ACTIVE' => 'Y')); while($arr = $rsProp->Fetch()){ $arProperty[$arr['CODE']] = '['.$arr['CODE'].'] '.$arr['NAME']; } } $arPrice = array(); $rsPrice = CCatalogGroup::GetList($v1='sort', $v2='asc'); while($arr = $rsPrice->Fetch()){ $arPrice[$arr['NAME']] = '['.$arr['NAME'].'] '.$arr['NAME_LANG']; } $arTemplateParameters = array( //PAGER_SETTINGS 'AJAXPAGESID' => array( 'PARENT' => 'PAGER_SETTINGS', 'NAME' => getMessage('MSG_AJAXPAGESID'), 'TYPE' => 'STRING', 'DEFAULT' => 'ajaxpages_catalog_identifier', ), 'USE_AJAXPAGES' => array( 'PARENT' => 'PAGER_SETTINGS', 'NAME' => getMessage('RS_SLINE.USE_AJAXPAGES'),
function ExportPrices() { if ($this->next_step["catalog"]) { $rsPrice = CCatalogGroup::GetList(array(), array()); if ($arPrice = $rsPrice->Fetch()) { fwrite($this->fp, "\t\t<" . GetMessage("IBLOCK_XML2_PRICE_TYPES") . ">\n"); do { fwrite($this->fp, $this->formatXMLNode(3, GetMessage("IBLOCK_XML2_PRICE_TYPE"), array(GetMessage("IBLOCK_XML2_ID") => $arPrice["NAME"], GetMessage("IBLOCK_XML2_NAME") => $arPrice["NAME"]))); } while ($arPrice = $rsPrice->Fetch()); fwrite($this->fp, "\t\t</" . GetMessage("IBLOCK_XML2_PRICE_TYPES") . ">\n"); } } }
echo $ind; ?> "> <input type="button" value="<?php echo GetMessage("C2IT_MORE"); ?> " OnClick="ClonePriceSections()"> </td> </tr> <script type="text/javascript"> arCatalogGroups = []; catalogGroupsInd = 0; </script> <?php if (CBXFeatures::IsFeatureEnabled('CatMultiPrice')) { $dbCatalogGroups = CCatalogGroup::GetList(array("SORT" => "ASC", "NAME" => "ASC", "ID" => "ASC"), array("!BASE" => "Y")); while ($arCatalogGroup = $dbCatalogGroups->Fetch()) { ?> <script type="text/javascript"> arCatalogGroups[catalogGroupsInd] = <?php echo $arCatalogGroup["ID"]; ?> ; catalogGroupsInd++; </script> <tr> <td valign="top" align="right"> <?php echo GetMessage("C2IT_PRICE_TYPE"); ?> "<?php
function CatalogGetPriceTable($ID) { global $USER; $ID = (int) $ID; if ($ID <= 0) { return false; } $arResult = array(); $arPriceGroups = array(); $cacheKey = LANGUAGE_ID . "_" . $USER->GetGroups(); if (isset($GLOBALS["CATALOG_PRICE_GROUPS_CACHE"]) && is_array($GLOBALS["CATALOG_PRICE_GROUPS_CACHE"]) && isset($GLOBALS["CATALOG_PRICE_GROUPS_CACHE"][$cacheKey]) && is_array($GLOBALS["CATALOG_PRICE_GROUPS_CACHE"][$cacheKey])) { $arPriceGroups = $GLOBALS["CATALOG_PRICE_GROUPS_CACHE"][$cacheKey]; } else { $dbPriceGroupsList = CCatalogGroup::GetList(array("SORT" => "ASC"), array("CAN_ACCESS" => "Y", "LID" => LANGUAGE_ID), array("ID", "NAME_LANG", "SORT"), false, array("ID", "NAME_LANG", "CAN_BUY", "SORT")); while ($arPriceGroupsList = $dbPriceGroupsList->Fetch()) { $arPriceGroups[] = $arPriceGroupsList; $GLOBALS["CATALOG_PRICE_GROUPS_CACHE"][$cacheKey][] = $arPriceGroupsList; } } if (empty($arPriceGroups)) { return false; } $arBorderMap = array(); $arPresentGroups = array(); $bMultiQuantity = False; $dbPrice = CPrice::GetList(array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC", "SORT" => "ASC"), array("PRODUCT_ID" => $ID), false, false, array("ID", "CATALOG_GROUP_ID", "PRICE", "CURRENCY", "QUANTITY_FROM", "QUANTITY_TO", "ELEMENT_IBLOCK_ID", "SORT")); while ($arPrice = $dbPrice->Fetch()) { CCatalogDiscountSave::Disable(); $arDiscounts = CCatalogDiscount::GetDiscount($ID, $arPrice["ELEMENT_IBLOCK_ID"], $arPrice["CATALOG_GROUP_ID"], $USER->GetUserGroupArray(), "N", SITE_ID, array()); CCatalogDiscountSave::Enable(); $discountPrice = CCatalogProduct::CountPriceWithDiscount($arPrice["PRICE"], $arPrice["CURRENCY"], $arDiscounts); $arPrice["DISCOUNT_PRICE"] = $discountPrice; if (array_key_exists($arPrice["QUANTITY_FROM"] . "-" . $arPrice["QUANTITY_TO"], $arBorderMap)) { $jnd = $arBorderMap[$arPrice["QUANTITY_FROM"] . "-" . $arPrice["QUANTITY_TO"]]; } else { $jnd = count($arBorderMap); $arBorderMap[$arPrice["QUANTITY_FROM"] . "-" . $arPrice["QUANTITY_TO"]] = $jnd; } $arResult[$jnd]["QUANTITY_FROM"] = DoubleVal($arPrice["QUANTITY_FROM"]); $arResult[$jnd]["QUANTITY_TO"] = DoubleVal($arPrice["QUANTITY_TO"]); if (DoubleVal($arPrice["QUANTITY_FROM"]) > 0 || DoubleVal($arPrice["QUANTITY_TO"]) > 0) { $bMultiQuantity = True; } $arResult[$jnd]["PRICE"][$arPrice["CATALOG_GROUP_ID"]] = $arPrice; } $numGroups = count($arPriceGroups); for ($i = 0; $i < $numGroups; $i++) { $bNeedKill = True; for ($j = 0, $intCount = count($arResult); $j < $intCount; $j++) { if (!array_key_exists($arPriceGroups[$i]["ID"], $arResult[$j]["PRICE"])) { $arResult[$j]["PRICE"][$arPriceGroups[$i]["ID"]] = False; } if ($arResult[$j]["PRICE"][$arPriceGroups[$i]["ID"]] != false) { $bNeedKill = False; } } if ($bNeedKill) { for ($j = 0, $intCount = count($arResult); $j < $intCount; $j++) { unset($arResult[$j]["PRICE"][$arPriceGroups[$i]["ID"]]); } unset($arPriceGroups[$i]); } } return array("COLS" => $arPriceGroups, "MATRIX" => $arResult, "MULTI_QUANTITY" => $bMultiQuantity ? "Y" : "N"); }
if (!is_set($arCacheOfferProperties[$arOffersIblock["OFFERS_IBLOCK_ID"]])) { $dbOfferProperties = CIBlock::GetProperties($arOffersIblock["OFFERS_IBLOCK_ID"], array(), array("!XML_ID" => "CML2_LINK")); while ($arOfferProperties = $dbOfferProperties->Fetch()) { $arCacheOfferProperties[$arOffersIblock["OFFERS_IBLOCK_ID"]][] = $arOfferProperties["CODE"]; } } $arIblockOfferPropsFilter = $arCacheOfferProperties[$arOffersIblock["OFFERS_IBLOCK_ID"]]; $arIblockOfferProps = array(); $arIblockOfferPropsFilter = array(); foreach ($arIblockOfferPropsFilter as $val) { $arIblockOfferProps[] = array("CODE" => $val["CODE"], "NAME" => $val["NAME"]); $arIblockOfferPropsFilter[] = $val["CODE"]; } static $arCacheResultPrices = array(); if (!is_set($arCacheResultPrices[$arElements["IBLOCK_ID"]])) { $dbPriceType = CCatalogGroup::GetList(array(), array('NAME_LANG' => $arItems['NOTES'], 'CAN_BUY' => 'Y'), false, false, array('NAME', 'ID')); $arPriceType = $dbPriceType->Fetch(); $arResultPrices = CIBlockPriceTools::GetCatalogPrices($arElements["IBLOCK_ID"], array($arPriceType["NAME"])); $arCacheResultPrices[$arElements["IBLOCK_ID"]] = $arResultPrices; } else { $arResultPrices = $arCacheResultPrices[$arElements["IBLOCK_ID"]]; } $arOffers = CIBlockPriceTools::GetOffersArray($arElements["IBLOCK_ID"], $arItems["PRODUCT_ID"], array("ID" => "DESC"), array("NAME"), $arIblockOfferPropsFilter, 0, $arResultPrices, 1, array(), $USER->GetID(), $arItems['LID']); if (count($arOffers) > 0) { foreach ($arOffers as $arOffer) { /*$arPrice = CCatalogProduct::GetOptimalPrice($arOffer['ID'], 1, $arGroups, "N", array(), $arItems['LID']); $arOffer["PRICES"] = $arPrice; if ($arCatalogProduct = CCatalogProduct::GetByID($arOffer['ID'])) { if ($arCatalogProduct["CAN_BUY_ZERO"]!="Y" && ($arCatalogProduct["QUANTITY_TRACE"]=="Y" && doubleval($arCatalogProduct["QUANTITY"])<=0))
$obCache = new CPHPCache(); $life_time = $arParams['MENU_CACHE_TIME'] ? IntVal($arParams['MENU_CACHE_TIME']) : 604800; $cache_id = "menu_hits_horizontal"; if ($obCache->InitCache($life_time, $cache_id, "/")) { $vars = $obCache->GetVars(); if (is_array($vars['MENU_HITS']) && count($vars['MENU_HITS']) > 0) { $arResult['HITS'] = $vars['MENU_HITS']; } } if (!is_array($arResult['HITS'])) { if ($arResult[0]['PARAMS']['FROM_IBLOCK'] == 1) { $fromIb = true; } $arHits = array(); if (CModule::IncludeModule('catalog')) { $arPrice = CCatalogGroup::GetList(array(), array("NAME" => $arParams["PRICE_CODE"]), false, false, array("ID"))->Fetch(); } foreach ($arResult as $index => &$arItem) { if ($arItem['DEPTH_LEVEL'] == 1 && $index !== 'HITS') { $arSelect = array("ID", "NAME", "CODE", "IBLOCK_ID", "IBLOCK_SECTION_ID", "DETAIL_PAGE_URL", "DETAIL_PICTURE", "PREVIEW_PICTURE", "CATALOG_GROUP_" . $arPrice["ID"], "PROPERTY_NEWPRODUCT", "PROPERTY_SALELEADER", "PROPERTY_SPECIAL_OFFER"); $arFilter = $arItem['PARAMS']['FILTER']; if (!is_array($arFilter) || empty($arFilter)) { $arFilter = array("ACTIVE" => "Y", "CATALOG_AVAILABLE" => "Y"); $arIbType = CIBlockType::GetList(array(), array("NAME" => $arItem["TEXT"]))->Fetch(); if (!empty($arIbType)) { $arFilter += array("IBLOCK_TYPE" => $arIbType["ID"]); } else { $arIb = CIBlock::GetList(array(), array("NAME" => $arItem["TEXT"], 'SITE_ID' => SITE_ID, 'ACTIVE' => 'Y'))->Fetch(); if (!empty($arIb)) { $arFilter += array("IBLOCK_ID" => $arIb["ID"]); } else {
$boolFlag = CIBlock::Delete($IBLOCK_CATALOG_ID); if (!$boolFlag) { $strError = ""; if ($ex = $APPLICATION->GetException()) { $strError = $ex->GetString(); } else { $strError = "Couldn't delete catalog iblock"; } //die($strError); } } if ($boolFlag) { $IBLOCK_CATALOG_ID = false; } } $dbResultList = CCatalogGroup::GetList(array(), array("BASE" => "Y")); if (!$dbResultList->Fetch()) { $arFields = array(); $rsLanguage = CLanguage::GetList($by, $order, array()); while ($arLanguage = $rsLanguage->Fetch()) { WizardServices::IncludeServiceLang("catalog.php", $arLanguage["ID"]); $arFields["USER_LANG"][$arLanguage["ID"]] = GetMessage("WIZ_PRICE_NAME"); } $arFields["BASE"] = "Y"; $arFields["SORT"] = 100; $arFields["NAME"] = "BASE"; $arFields["USER_GROUP"] = array(1); $arFields["USER_GROUP_BUY"] = array(1); CCatalogGroup::Add($arFields); } if ($IBLOCK_CATALOG_ID == false) {
$strHidden = implode('',$arHidden); } else { $strHidden = '<input type="hidden" name="GROUP_IDS[]" value="">'; } $tabControl->EndCustomField("GROUP_IDS", $strHidden ); $tabControl->BeginCustomField("CAT_IDS", GetMessage('DSC_PRICE_TYPES').":", false); ?><tr id="tr_CAT_IDS"> <td valign="top" width="40%"><? echo $tabControl->GetCustomLabelHTML(); ?></td> <td valign="top" width="60%"> <select name="CAT_IDS[]" multiple size="8"><? $dbCats = CCatalogGroup::GetList(array("NAME" => "ASC"), array("LID" => LANGUAGE_ID)); while ($arCats = $dbCats->Fetch()) { ?><option value="<?php echo $arCats["ID"]; ?> "<?if (in_array(intval($arCats["ID"]), $arDiscountCatList)) echo " selected";?>>[<?php echo $arCats["ID"]; ?> ] <?php echo htmlspecialcharsEx($arCats["NAME"]); ?> (<?php echo htmlspecialcharsEx($arCats["NAME_LANG"]); ?> )</option><?
"IBLOCK_ID"=>$arParams["IBLOCK_ID"], "ACTIVE"=>"Y", ), false, Array("ID", "DEPTH_LEVEL", "NAME") ); while($arSection = $rsSection->Fetch()) { $arResult["arrSection"][$arSection["ID"]] = str_repeat(" . ", $arSection["DEPTH_LEVEL"]).$arSection["NAME"]; } } // prices if(CModule::IncludeModule("catalog")) { $rsPrice = CCatalogGroup::GetList($v1, $v2); while($arPrice = $rsPrice->Fetch()) { if(($arPrice["CAN_ACCESS"] == "Y" || $arPrice["CAN_BUY"] == "Y") && in_array($arPrice["NAME"],$arParams["PRICE_CODE"])) $arResult["arrPrice"][$arPrice["NAME"]] = array("ID"=>$arPrice["ID"], "TITLE"=>$arPrice["NAME_LANG"]); } } else { $rsProp = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$arParams["IBLOCK_ID"])); while($arProp = $rsProp->Fetch()) { if(in_array($arProp["CODE"],$arParams["PRICE_CODE"]) && in_array($arProp["PROPERTY_TYPE"], array("N"))) $arResult["arrPrice"][$arProp["CODE"]] = array("ID"=>$arProp["ID"], "TITLE"=>$arProp["NAME"]); } }
if ($ex = $APPLICATION->GetException()) { $strError = $ex->GetString() . "<br>"; } else { $strError = (0 < $ID ? GetMessage("ERROR_UPDATING_TYPE") : GetMessage("ERROR_ADDING_TYPE")) . "<br>"; } $DB->Rollback(); } } $boolRealBase = false; $arDefaultValues = array('NAME' => '', 'BASE' => 'N', 'SORT' => 100, 'XML_ID' => ''); $arSelect = array_merge(array('ID'), array_keys($arDefaultValues)); $arCatalogGroup = array(); $arGroupUserList = array(); $arGroupUserBuyList = array(); $arGroupLangList = array(); $rsCatalogGroups = CCatalogGroup::GetList(array(), array('ID' => $ID), false, false, $arSelect); if (!($arCatalogGroup = $rsCatalogGroups->Fetch())) { $ID = 0; $arCatalogGroup = $arDefaultValues; } else { $rsGroups = CCatalogGroup::GetGroupsList(array("CATALOG_GROUP_ID" => $ID)); while ($arGroup = $rsGroups->Fetch()) { $arGroup['GROUP_ID'] = intval($arGroup['GROUP_ID']); if ('Y' == $arGroup['BUY']) { $arGroupUserBuyList[] = $arGroup['GROUP_ID']; } else { $arGroupUserList[] = $arGroup['GROUP_ID']; } } $rsLangs = CCatalogGroup::GetLangList(array("CATALOG_GROUP_ID" => $ID)); while ($arLang = $rsLangs->Fetch()) {
$arResult["arrPrice"] = array(); $arResult["arrSection"] = array(); $arResult["arrOfferProp"] = array(); // simple fields if (in_array("SECTION_ID", $arParams["FIELD_CODE"])) { $arResult["arrSection"][0] = GetMessage("CC_BCF_TOP_LEVEL"); $rsSection = CIBlockSection::GetList(array("left_margin" => "asc"), array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ACTIVE" => "Y"), false, array("ID", "DEPTH_LEVEL", "NAME")); while ($arSection = $rsSection->Fetch()) { $arResult["arrSection"][$arSection["ID"]] = str_repeat(" . ", $arSection["DEPTH_LEVEL"]) . $arSection["NAME"]; } } // prices if (CModule::IncludeModule("catalog")) { $arResultModules['catalog'] = true; if (!empty($arParams["PRICE_CODE"])) { $rsPrice = CCatalogGroup::GetList(array('SORT' => 'ASC', 'ID' => 'ASC'), array('=NAME' => $arParams["PRICE_CODE"]), false, false, array('ID', 'NAME', 'NAME_LANG', 'CAN_ACCESS', 'CAN_BUY')); while ($arPrice = $rsPrice->Fetch()) { if ($arPrice["CAN_ACCESS"] == "Y" || $arPrice["CAN_BUY"] == "Y") { $arResult["arrPrice"][$arPrice["NAME"]] = array("ID" => $arPrice["ID"], "TITLE" => !empty($arPrice["NAME_LANG"]) ? $arPrice["NAME_LANG"] : $arPrice["NAME"]); } } } } else { $rsProp = CIBlockProperty::GetList(array("sort" => "asc", "name" => "asc"), array("IBLOCK_ID" => $arParams["IBLOCK_ID"], "ACTIVE" => "Y")); while ($arProp = $rsProp->Fetch()) { if (in_array($arProp["CODE"], $arParams["PRICE_CODE"]) && in_array($arProp["PROPERTY_TYPE"], array("N"))) { $arResult["arrPrice"][$arProp["CODE"]] = array("ID" => $arProp["ID"], "TITLE" => $arProp["NAME"]); } } } // properties
} if (isset($intGroupID)) { unset($intGroupID); } } } $lAdmin->AddFooter(array(array("title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value" => $dbResultList->SelectedRowsCount()), array("counter" => true, "title" => GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value" => "0"))); if (!$bReadOnly) { if (CBXFeatures::IsFeatureEnabled('CatMultiPrice')) { $lAdmin->AddGroupActionTable(array("delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"))); } else { $lAdmin->AddGroupActionTable(array()); } } if (!$bReadOnly) { $aContext = array(); $boolEmptyPrice = true; $dbCatGroup = CCatalogGroup::GetList(array("ID" => "ASC"), array(), false, array("nTopCount" => 1), array("ID")); if ($arCatGroup = $dbCatGroup->Fetch()) { $boolEmptyPrice = false; } if (CBXFeatures::IsFeatureEnabled('CatMultiPrice') || $boolEmptyPrice) { $aContext = array(array("TEXT" => GetMessage("CGAN_ADD_NEW"), "ICON" => "btn_new", "LINK" => "cat_group_edit.php?lang=" . LANG, "TITLE" => GetMessage("CGAN_ADD_NEW_ALT"))); } $lAdmin->AddAdminContextMenu($aContext); } $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("GROUP_TITLE")); require $DOCUMENT_ROOT . "/bitrix/modules/main/include/prolog_admin_after.php"; $lAdmin->DisplayList(); require $DOCUMENT_ROOT . "/bitrix/modules/main/include/epilog_admin.php";
if ($USER->CanDoOperation('catalog_price')) { $IBLOCK_ID = (int) $IBLOCK_ID; $ID = (int) $ID; $userId = (int) $USER->GetID(); if (0 < $IBLOCK_ID && 0 < $ID) { $PRODUCT_ID = CIBlockElement::GetRealElement($ID); $bUseStoreControl = COption::GetOptionString('catalog', 'default_use_store_control', 'N') == "Y"; $bEnableReservation = 'N' != COption::GetOptionString('catalog', 'enable_reservation'); if (CIBlockElementRights::UserHasRightTo($IBLOCK_ID, $PRODUCT_ID, "element_edit_price")) { IncludeModuleLangFile($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/catalog/templates/product_edit_action.php'); if ('' == $strWarning) { $bUseExtForm = isset($_POST['price_useextform']) && 'Y' == $_POST['price_useextform']; $arCatalog = CCatalog::GetByID($IBLOCK_ID); $arCatalogPrice_tmp = array(); $intBasePriceCount = count($arCatalogBasePrices); $dbCatGroups = CCatalogGroup::GetList(array(), array("!BASE" => "Y")); while ($arCatGroups = $dbCatGroups->Fetch()) { unset($arCatalogPrice_tmp); $arCatalogPrice_tmp = array(); for ($i = 0; $i < $intBasePriceCount; $i++) { ${"CAT_PRICE_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]} = str_replace(",", ".", ${"CAT_PRICE_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]}); $arCatalogPrice_tmp[$i] = array("ID" => IntVal(${"CAT_ID_" . $arCatGroups["ID"]}[$arCatalogBasePrices[$i]["IND"]]), "EXTRA_ID" => ${"CAT_EXTRA_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]} ? IntVal(${"CAT_EXTRA_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]}) : 0, "PRICE" => ${"CAT_PRICE_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]}, "CURRENCY" => Trim(${"CAT_CURRENCY_" . $arCatGroups["ID"] . "_" . $arCatalogBasePrices[$i]["IND"]}), "QUANTITY_FROM" => $arCatalogBasePrices[$i]["QUANTITY_FROM"], "QUANTITY_TO" => $arCatalogBasePrices[$i]["QUANTITY_TO"]); if (strlen($arCatalogPrice_tmp[$i]["CURRENCY"]) <= 0) { $arCatalogPrice_tmp[$i]["CURRENCY"] = $arCatalogBasePrices[$i]["CURRENCY"]; } if ($arCatalogPrice_tmp[$i]["EXTRA_ID"] > 0) { if (0 < doubleval($arCatalogBasePrices[$i]["PRICE"])) { $arCatalogPrice_tmp[$i]["CURRENCY"] = $arCatalogBasePrices[$i]["CURRENCY"]; $arCatalogExtra = CExtra::GetByID($arCatalogPrice_tmp[$i]["EXTRA_ID"]); $arCatalogPrice_tmp[$i]["PRICE"] = RoundEx($arCatalogBasePrices[$i]["PRICE"] * (1 + DoubleVal($arCatalogExtra["PERCENTAGE"]) / 100), CATALOG_VALUE_PRECISION); } else {
"default" => false, ); } if ($strUseStoreControl == "Y") { $arHeader[] = array( "id" => "CATALOG_BAR_CODE", "content" => GetMessage("IBEL_CATALOG_BAR_CODE"), "title" => "", "align" => "right", "default" => false, ); } $arCatGroup = array(); $dbCatalogGroups = CCatalogGroup::GetList( array("SORT" => "ASC"), array("LID" => LANGUAGE_ID), false, false, array('ID', 'NAME', 'NAME_LANG') ); while ($arCatalogGroup = $dbCatalogGroups->Fetch()) { $arHeader[] = array( "id" => "CATALOG_GROUP_" . $arCatalogGroup["ID"], "content" => htmlspecialcharsex(!empty($arCatalogGroup["NAME_LANG"]) ? $arCatalogGroup["NAME_LANG"] : $arCatalogGroup["NAME"]), "title" => "", "align" => "right", "sort" => "CATALOG_PRICE_" . $arCatalogGroup["ID"], "default" => false, ); $arCatGroup[$arCatalogGroup["ID"]] = $arCatalogGroup; } $arCatExtra = array(); $db_extras = CExtra::GetList(($by3 = "NAME"), ($order3 = "ASC"));
"name"=>$arOneCatalogAvailQuantityFields["name"], ); if ($boolSep) { $arAvailFields[$intCount]['SEP'] = GetMessage('CAT_ADM_CSV_IMP_SEP_PRICES'); $boolSep = false; } $intCount++; } } if (isset($arOneCatalogAvailQuantityFields)) unset($arOneCatalogAvailQuantityFields); $strVal = COption::GetOptionString("catalog", "allowed_price_fields", $defCatalogAvailValueFields); $arVal = explode(",", $strVal); $db_prgr = CCatalogGroup::GetList(array("SORT" => "ASC"), array()); while ($prgr = $db_prgr->Fetch()) { foreach ($arCatalogAvailValueFields as &$arOneCatalogAvailValueFields) { $mxKey = array_search($arOneCatalogAvailValueFields['value'],$arVal); if (false !== $mxKey) { $strName = ($prgr['NAME_LANG'] ? str_replace(array('#TYPE#','#NAME#'),array($prgr["NAME"],$prgr['NAME_LANG']),GetMessage('EST_PRICE_TYPE2')): str_replace("#TYPE#", $prgr["NAME"], GetMessage("EST_PRICE_TYPE")) ); $arAvailFields[$intCount] = array( "value" => $arOneCatalogAvailValueFields['value']."_".$prgr["ID"], "name" => $strName.": ".$arOneCatalogAvailValueFields["name"], );
"length" => "length", "width" => "width", "height" => "height", ); if(!check_bitrix_sessid()) return; __IncludeLang(GetLangFileName($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/intaro.intarocrm/lang/", "/icml_export_setup.php")); $MODULE_ID = 'intaro.intarocrm'; $CRM_CATALOG_BASE_PRICE = 'catalog_base_price'; $basePriceId = COption::GetOptionString($MODULE_ID, $CRM_CATALOG_BASE_PRICE . '_' . $_REQUEST['PROFILE_ID'], 1); $arResult['PRICE_TYPES'] = array(); $dbPriceType = CCatalogGroup::GetList( array("SORT" => "ASC"), array(), array(), array(), array("ID", "NAME", "BASE") ); while ($arPriceType = $dbPriceType->Fetch()) { $arResult['PRICE_TYPES'][$arPriceType['ID']] = $arPriceType; } if (($ACTION == 'EXPORT' || $ACTION == 'EXPORT_EDIT' || $ACTION == 'EXPORT_COPY') && $STEP == 1) { if (isset($arOldSetupVars['SETUP_FILE_NAME'])) $SETUP_FILE_NAME = $arOldSetupVars['SETUP_FILE_NAME']; if (isset($arOldSetupVars['LOAD_PURCHASE_PRICE'])) $LOAD_PURCHASE_PRICE = $arOldSetupVars['LOAD_PURCHASE_PRICE']; if (isset($arOldSetupVars['SETUP_PROFILE_NAME'])) $SETUP_PROFILE_NAME = $arOldSetupVars['SETUP_PROFILE_NAME'];
<tr> <td><?php echo GetMessage('YANDEX_PRICE_TYPE'); ?> : </td> <td><br /><select name="PRICE"> <option value=""<?php echo $PRICE == "" || $PRICE == 0 ? ' selected' : ''; ?> ><?php echo GetMessage('YANDEX_PRICE_TYPE_NONE'); ?> </option> <?php $dbRes = CCatalogGroup::GetList(array('SORT' => 'ASC'), array('ACTIVE' => 'Y', 'ID' => $arGroups), 0, 0, array('ID', 'NAME', 'BASE')); while ($arRes = $dbRes->GetNext()) { ?> <option value="<?php echo $arRes['ID']; ?> "<?php echo $PRICE == $arRes['ID'] ? ' selected' : ''; ?> ><?php echo '[' . $arRes['ID'] . '] ' . $arRes['NAME']; ?> </option> <?php } ?>
public function getPriceItems() { $items = array(); if (!empty($this->arParams["PRICE_CODE"])) { if (self::$catalogIncluded === null) { self::$catalogIncluded = Loader::includeModule('catalog'); } if (self::$catalogIncluded) { $rsPrice = CCatalogGroup::GetList(array('SORT' => 'ASC', 'ID' => 'ASC'), array('=NAME' => $this->arParams["PRICE_CODE"]), false, false, array('ID', 'NAME', 'NAME_LANG', 'CAN_ACCESS', 'CAN_BUY')); while ($arPrice = $rsPrice->Fetch()) { if ($arPrice["CAN_ACCESS"] == "Y" || $arPrice["CAN_BUY"] == "Y") { $arPrice["NAME_LANG"] = (string) $arPrice["NAME_LANG"]; if ($arPrice["NAME_LANG"] === '') { $arPrice["NAME_LANG"] = $arPrice["NAME"]; } $minID = $this->SAFE_FILTER_NAME . '_P' . $arPrice['ID'] . '_MIN'; $maxID = $this->SAFE_FILTER_NAME . '_P' . $arPrice['ID'] . '_MAX'; $items[$arPrice["NAME"]] = array("ID" => $arPrice["ID"], "CODE" => $arPrice["NAME"], "NAME" => $arPrice["NAME_LANG"], "PRICE" => true, "VALUES" => array("MIN" => array("CONTROL_ID" => $minID, "CONTROL_NAME" => $minID), "MAX" => array("CONTROL_ID" => $maxID, "CONTROL_NAME" => $maxID))); } } } } return $items; }
} } $arOffers = CIBlockPriceTools::GetOffersIBlock($arCurrentValues["IBLOCK_ID"]); $OFFERS_IBLOCK_ID = is_array($arOffers) ? $arOffers["OFFERS_IBLOCK_ID"] : 0; $arProperty_Offers = array(); if ($OFFERS_IBLOCK_ID) { $rsProp = CIBlockProperty::GetList(array("sort" => "asc", "name" => "asc"), array("IBLOCK_ID" => $OFFERS_IBLOCK_ID, "ACTIVE" => "Y")); while ($arr = $rsProp->Fetch()) { if ($arr["PROPERTY_TYPE"] != "F") { $arProperty_Offers[$arr["CODE"]] = "[" . $arr["CODE"] . "] " . $arr["NAME"]; } } } $arPrice = array(); if (CModule::IncludeModule("catalog")) { $rsPrice = CCatalogGroup::GetList($v1 = "sort", $v2 = "asc"); while ($arr = $rsPrice->Fetch()) { $arPrice[$arr["NAME"]] = "[" . $arr["NAME"] . "] " . $arr["NAME_LANG"]; } } else { $arPrice = $arProperty_N; } $arAscDesc = array("asc" => GetMessage("IBLOCK_SORT_ASC"), "desc" => GetMessage("IBLOCK_SORT_DESC")); $arComponentParameters = array("GROUPS" => array("FILTER_SETTINGS" => array("NAME" => GetMessage("T_IBLOCK_DESC_FILTER_SETTINGS")), "REVIEW_SETTINGS" => array("NAME" => GetMessage("T_IBLOCK_DESC_REVIEW_SETTINGS")), "COMPARE_SETTINGS" => array("NAME" => GetMessage("T_IBLOCK_DESC_COMPARE_SETTINGS")), "PRICES" => array("NAME" => GetMessage("IBLOCK_PRICES")), "TOP_SETTINGS" => array("NAME" => GetMessage("T_IBLOCK_DESC_TOP_SETTINGS")), "SECTIONS_SETTINGS" => array("NAME" => GetMessage("CP_BC_SECTIONS_SETTINGS")), "LIST_SETTINGS" => array("NAME" => GetMessage("T_IBLOCK_DESC_LIST_SETTINGS")), "DETAIL_SETTINGS" => array("NAME" => GetMessage("T_IBLOCK_DESC_DETAIL_SETTINGS")), "LINK" => array("NAME" => GetMessage("IBLOCK_LINK")), "ALSO_BUY_SETTINGS" => array("NAME" => GetMessage("T_IBLOCK_DESC_ALSO_BUY_SETTINGS")), "STORE_SETTINGS" => array("NAME" => GetMessage("T_IBLOCK_DESC_STORE_SETTINGS")), "OFFERS_SETTINGS" => array("NAME" => GetMessage("CP_BC_OFFERS_SETTINGS"))), "PARAMETERS" => array("VARIABLE_ALIASES" => array("SECTION_ID" => array("NAME" => GetMessage("SECTION_ID_DESC")), "ELEMENT_ID" => array("NAME" => GetMessage("ELEMENT_ID_DESC"))), "AJAX_MODE" => array(), "SEF_MODE" => array("sections" => array("NAME" => GetMessage("SECTIONS_TOP_PAGE"), "DEFAULT" => "", "VARIABLES" => array()), "section" => array("NAME" => GetMessage("SECTION_PAGE"), "DEFAULT" => "#SECTION_ID#/", "VARIABLES" => array("SECTION_ID" => "SID")), "element" => array("NAME" => GetMessage("DETAIL_PAGE"), "DEFAULT" => "#SECTION_ID#/#ELEMENT_ID#/", "VARIABLES" => array("ELEMENT_ID" => "EID")), "compare" => array("NAME" => GetMessage("COMPARE_PAGE"), "DEFAULT" => "compare.php?action=#ACTION_CODE#", "VARIABLES" => array("action" => "action"))), "IBLOCK_TYPE" => array("PARENT" => "BASE", "NAME" => GetMessage("IBLOCK_TYPE"), "TYPE" => "LIST", "VALUES" => $arIBlockType, "REFRESH" => "Y"), "IBLOCK_ID" => array("PARENT" => "BASE", "NAME" => GetMessage("IBLOCK_IBLOCK"), "TYPE" => "LIST", "ADDITIONAL_VALUES" => "Y", "VALUES" => $arIBlock, "REFRESH" => "Y"), "USE_FILTER" => array("PARENT" => "FILTER_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_USE_FILTER"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", "REFRESH" => "Y"), "USE_REVIEW" => array("PARENT" => "REVIEW_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_USE_REVIEW"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", "REFRESH" => "Y"), "USE_COMPARE" => array("PARENT" => "COMPARE_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_USE_COMPARE"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", "REFRESH" => "Y"), "SHOW_TOP_ELEMENTS" => array("PARENT" => "TOP_SETTINGS", "NAME" => GetMessage("NC_P_SHOW_TOP_ELEMENTS"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y", "REFRESH" => "Y"), "SECTION_COUNT_ELEMENTS" => array("PARENT" => "SECTIONS_SETTINGS", "NAME" => GetMessage('CP_BC_SECTION_COUNT_ELEMENTS'), "TYPE" => "CHECKBOX", "DEFAULT" => "Y"), "SECTION_TOP_DEPTH" => array("PARENT" => "SECTIONS_SETTINGS", "NAME" => GetMessage('CP_BC_SECTION_TOP_DEPTH'), "TYPE" => "STRING", "DEFAULT" => "2"), "PAGE_ELEMENT_COUNT" => array("PARENT" => "LIST_SETTINGS", "NAME" => GetMessage("IBLOCK_PAGE_ELEMENT_COUNT"), "TYPE" => "STRING", "DEFAULT" => "30"), "LINE_ELEMENT_COUNT" => array("PARENT" => "LIST_SETTINGS", "NAME" => GetMessage("IBLOCK_LINE_ELEMENT_COUNT"), "TYPE" => "STRING", "DEFAULT" => "3"), "ELEMENT_SORT_FIELD" => array("PARENT" => "LIST_SETTINGS", "NAME" => GetMessage("IBLOCK_ELEMENT_SORT_FIELD"), "TYPE" => "LIST", "VALUES" => array("shows" => GetMessage("IBLOCK_SORT_SHOWS"), "sort" => GetMessage("IBLOCK_SORT_SORT"), "timestamp_x" => GetMessage("IBLOCK_SORT_TIMESTAMP"), "name" => GetMessage("IBLOCK_SORT_NAME"), "id" => GetMessage("IBLOCK_SORT_ID"), "active_from" => GetMessage("IBLOCK_SORT_ACTIVE_FROM"), "active_to" => GetMessage("IBLOCK_SORT_ACTIVE_TO")), "ADDITIONAL_VALUES" => "Y", "DEFAULT" => "sort"), "ELEMENT_SORT_ORDER" => array("PARENT" => "LIST_SETTINGS", "NAME" => GetMessage("IBLOCK_ELEMENT_SORT_ORDER"), "TYPE" => "LIST", "VALUES" => $arAscDesc, "DEFAULT" => "asc", "ADDITIONAL_VALUES" => "Y"), "LIST_PROPERTY_CODE" => array("PARENT" => "LIST_SETTINGS", "NAME" => GetMessage("IBLOCK_PROPERTY"), "TYPE" => "LIST", "MULTIPLE" => "Y", "ADDITIONAL_VALUES" => "Y", "VALUES" => $arProperty_LNS, "ADDITIONAL_VALUES" => "Y"), "INCLUDE_SUBSECTIONS" => array("PARENT" => "LIST_SETTINGS", "NAME" => GetMessage("CP_BC_INCLUDE_SUBSECTIONS"), "TYPE" => "LIST", "VALUES" => array("Y" => GetMessage('CP_BC_INCLUDE_SUBSECTIONS_ALL'), "A" => GetMessage('CP_BC_INCLUDE_SUBSECTIONS_ACTIVE'), "N" => GetMessage('CP_BC_INCLUDE_SUBSECTIONS_NO')), "DEFAULT" => "Y"), "LIST_META_KEYWORDS" => array("PARENT" => "LIST_SETTINGS", "NAME" => GetMessage("CP_BC_LIST_META_KEYWORDS"), "TYPE" => "LIST", "MULTIPLE" => "N", "ADDITIONAL_VALUES" => "N", "VALUES" => $arUserFields_S), "LIST_META_DESCRIPTION" => array("PARENT" => "LIST_SETTINGS", "NAME" => GetMessage("CP_BC_LIST_META_DESCRIPTION"), "TYPE" => "LIST", "MULTIPLE" => "N", "ADDITIONAL_VALUES" => "N", "VALUES" => $arUserFields_S), "LIST_BROWSER_TITLE" => array("PARENT" => "LIST_SETTINGS", "NAME" => GetMessage("CP_BC_LIST_BROWSER_TITLE"), "TYPE" => "LIST", "MULTIPLE" => "N", "DEFAULT" => "-", "VALUES" => array_merge(array("-" => " ", "NAME" => GetMessage("IBLOCK_FIELD_NAME")), $arUserFields_S)), "DETAIL_PROPERTY_CODE" => array("PARENT" => "DETAIL_SETTINGS", "NAME" => GetMessage("IBLOCK_PROPERTY"), "TYPE" => "LIST", "MULTIPLE" => "Y", "ADDITIONAL_VALUES" => "Y", "VALUES" => $arProperty_LNS), "DETAIL_META_KEYWORDS" => array("PARENT" => "DETAIL_SETTINGS", "NAME" => GetMessage("CP_BC_DETAIL_META_KEYWORDS"), "TYPE" => "LIST", "MULTIPLE" => "N", "ADDITIONAL_VALUES" => "N", "VALUES" => array_merge(array("-" => " "), $arProperty_LNS)), "DETAIL_META_DESCRIPTION" => array("PARENT" => "DETAIL_SETTINGS", "NAME" => GetMessage("CP_BC_DETAIL_META_DESCRIPTION"), "TYPE" => "LIST", "MULTIPLE" => "N", "ADDITIONAL_VALUES" => "N", "VALUES" => array_merge(array("-" => " "), $arProperty_LNS)), "DETAIL_BROWSER_TITLE" => array("PARENT" => "DETAIL_SETTINGS", "NAME" => GetMessage("CP_BC_DETAIL_BROWSER_TITLE"), "TYPE" => "LIST", "MULTIPLE" => "N", "DEFAULT" => "-", "VALUES" => array_merge(array("-" => " ", "NAME" => GetMessage("IBLOCK_FIELD_NAME")), $arProperty_LNS)), "BASKET_URL" => array("PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("IBLOCK_BASKET_URL"), "TYPE" => "STRING", "DEFAULT" => "/personal/basket.php"), "ACTION_VARIABLE" => array("PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("IBLOCK_ACTION_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "action"), "PRODUCT_ID_VARIABLE" => array("PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("IBLOCK_PRODUCT_ID_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "id"), "SECTION_ID_VARIABLE" => array("PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("IBLOCK_SECTION_ID_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "SECTION_ID"), "PRODUCT_QUANTITY_VARIABLE" => array("PARENT" => "URL_TEMPLATES", "NAME" => GetMessage("CP_BC_PRODUCT_QUANTITY_VARIABLE"), "TYPE" => "STRING", "DEFAULT" => "quantity"), "CACHE_TIME" => array("DEFAULT" => 36000000), "CACHE_FILTER" => array("PARENT" => "CACHE_SETTINGS", "NAME" => GetMessage("IBLOCK_CACHE_FILTER"), "TYPE" => "CHECKBOX", "DEFAULT" => "N"), "CACHE_GROUPS" => array("PARENT" => "CACHE_SETTINGS", "NAME" => GetMessage("CP_BC_CACHE_GROUPS"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y"), "SET_TITLE" => array(), "SET_STATUS_404" => array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage("CP_BC_SET_STATUS_404"), "TYPE" => "CHECKBOX", "DEFAULT" => "N"), "PRICE_CODE" => array("PARENT" => "PRICES", "NAME" => GetMessage("IBLOCK_PRICE_CODE"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arPrice), "USE_PRICE_COUNT" => array("PARENT" => "PRICES", "NAME" => GetMessage("IBLOCK_USE_PRICE_COUNT"), "TYPE" => "CHECKBOX", "DEFAULT" => "N"), "SHOW_PRICE_COUNT" => array("PARENT" => "PRICES", "NAME" => GetMessage("IBLOCK_SHOW_PRICE_COUNT"), "TYPE" => "STRING", "DEFAULT" => "1"), "PRICE_VAT_INCLUDE" => array("PARENT" => "PRICES", "NAME" => GetMessage("IBLOCK_VAT_INCLUDE"), "TYPE" => "CHECKBOX", "DEFAULT" => "Y"), "PRICE_VAT_SHOW_VALUE" => array("PARENT" => "PRICES", "NAME" => GetMessage("IBLOCK_VAT_SHOW_VALUE"), "TYPE" => "CHECKBOX", "DEFAULT" => "N"), "USE_PRODUCT_QUANTITY" => array("PARENT" => "PRICES", "NAME" => GetMessage("CP_BC_USE_PRODUCT_QUANTITY"), "TYPE" => "CHECKBOX", "DEFAULT" => "N"), "LINK_IBLOCK_TYPE" => array("PARENT" => "LINK", "NAME" => GetMessage("IBLOCK_LINK_IBLOCK_TYPE"), "TYPE" => "LIST", "ADDITIONAL_VALUES" => "Y", "VALUES" => $arIBlockType, "REFRESH" => "Y"), "LINK_IBLOCK_ID" => array("PARENT" => "LINK", "NAME" => GetMessage("IBLOCK_LINK_IBLOCK_ID"), "TYPE" => "LIST", "ADDITIONAL_VALUES" => "Y", "VALUES" => $arIBlock_LINK, "REFRESH" => "Y"), "LINK_PROPERTY_SID" => array("PARENT" => "LINK", "NAME" => GetMessage("IBLOCK_LINK_PROPERTY_SID"), "TYPE" => "LIST", "ADDITIONAL_VALUES" => "Y", "VALUES" => $arProperty_LINK), "LINK_ELEMENTS_URL" => array("PARENT" => "LINK", "NAME" => GetMessage("IBLOCK_LINK_ELEMENTS_URL"), "TYPE" => "STRING", "DEFAULT" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#"), "USE_ALSO_BUY" => array("PARENT" => "ALSO_BUY_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_USE_ALSO_BUY"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", "REFRESH" => "Y"), "USE_STORE" => array("PARENT" => "STORE_SETTINGS", "NAME" => GetMessage("T_IBLOCK_DESC_USE_STORE"), "TYPE" => "CHECKBOX", "DEFAULT" => "N", "REFRESH" => "Y"), "USE_ELEMENT_COUNTER" => array("PARENT" => "ADDITIONAL_SETTINGS", "NAME" => GetMessage('CP_BC_USE_ELEMENT_COUNTER'), "TYPE" => "CHECKBOX", "DEFAULT" => "Y"))); CIBlockParameters::AddPagerSettings($arComponentParameters, GetMessage("T_IBLOCK_DESC_PAGER_CATALOG"), true, true); if ($arCurrentValues["USE_COMPARE"] == "Y") { $arComponentParameters["PARAMETERS"]["COMPARE_NAME"] = array("PARENT" => "COMPARE_SETTINGS", "NAME" => GetMessage("IBLOCK_COMPARE_NAME"), "TYPE" => "STRING", "DEFAULT" => "CATALOG_COMPARE_LIST"); $arComponentParameters["PARAMETERS"]["COMPARE_FIELD_CODE"] = CIBlockParameters::GetFieldCode(GetMessage("IBLOCK_FIELD"), "COMPARE_SETTINGS"); $arComponentParameters["PARAMETERS"]["COMPARE_PROPERTY_CODE"] = array("PARENT" => "COMPARE_SETTINGS", "NAME" => GetMessage("IBLOCK_PROPERTY"), "TYPE" => "LIST", "MULTIPLE" => "Y", "VALUES" => $arProperty_LNS, "ADDITIONAL_VALUES" => "Y"); if ($OFFERS_IBLOCK_ID) { $arComponentParameters["PARAMETERS"]["COMPARE_OFFERS_FIELD_CODE"] = CIBlockParameters::GetFieldCode(GetMessage("CP_BC_COMPARE_OFFERS_FIELD_CODE"), "COMPARE_SETTINGS");
$arAvailValueFields_names = array(); foreach ($arCatalogAvailValueFields as &$arOneCatalogAvailValueFields) { if (in_array($arOneCatalogAvailValueFields['value'], $arAvailValueFields)) { $arValueCodes[] = $arOneCatalogAvailValueFields['value'] . '_'; $arAvailValueFields_names[$arOneCatalogAvailValueFields['value']] = array("field" => $arOneCatalogAvailValueFields["field"], "important" => $arOneCatalogAvailValueFields["important"]); } } if (isset($arOneCatalogAvailValueFields)) { unset($arOneCatalogAvailValueFields); } if (!empty($arValueCodes)) { $arValueCodes = array_values(array_unique($arValueCodes)); } if (!empty($arAvailValueFields_names)) { $arAvailValueFieldsList = array_keys($arAvailValueFields_names); $rsPriceTypes = CCatalogGroup::GetList(array("SORT" => "ASC"), array()); while ($arPriceType = $rsPriceTypes->Fetch()) { foreach ($arAvailValueFieldsList as &$strKey) { $mxSelKey = array_search($strKey . '_' . $arPriceType['ID'], $field_code); if (!(false === $mxSelKey || empty($field_needed[$mxSelKey]) || 'Y' != $field_needed[$mxSelKey])) { $arSortFields[$strKey . '_' . $arPriceType['ID']] = array('CODE' => $strKey . '_' . $arPriceType['ID'], 'ID' => $intCount, 'SORT' => !empty($field_num[$mxSelKey]) && 0 < (int) $field_num[$mxSelKey] ? (int) $field_num[$mxSelKey] : ($intCount + 1) * 10); $bNeedPrices = true; $arCatalogGroups[] = intval($arPriceType['ID']); } $intCount++; } if (isset($strKey)) { unset($strKey); } } unset($arAvailValueFieldsList);
public static function GetListEx($arOrder=array("SORT"=>"ASC"), $arFilter=array()) { return false; global $DB, $USER; $arSqlSearch = CIBlockElement::MkFilter($arFilter); $bSections = false; if($arSqlSearch["SECTION"]=="Y") { $bSections = true; unset($arSqlSearch["SECTION"]); } $strSqlSearch = ""; for ($i = 0, $intCount = count($arSqlSearch); $i < $intCount; $i++) $strSqlSearch .= " AND (".$arSqlSearch[$i].") "; $MAX_LOCK = intval(COption::GetOptionString("workflow", "MAX_LOCK_TIME", "60")); $uid = intval($USER->GetID()); $db_groups = CCatalogGroup::GetList(array("SORT" => "ASC")); $strSelectPart = ""; $strFromPart = ""; $i = -1; while ($groups = $db_groups->Fetch()) { $i++; $strSelectPart .= ", P".$i.".PRICE as PRICE".$i.", P".$i.".CURRENCY as CURRENCY".$i.", P".$i.".CATALOG_GROUP_ID as CATALOG_GROUP_ID".$i.", P".$i.".ID as PRICE_ID".$i." "; $strFromPart .= " LEFT JOIN b_catalog_price P".$i." ON (P".$i.".PRODUCT_ID = BE.ID AND P".$i.".CATALOG_GROUP_ID = ".$groups["ID"].") "; } $maxInd = $i; if (!$USER->IsAdmin()) { $strSql = "SELECT DISTINCT BE.*, ". " ".$DB->DateToCharFunction("BE.TIMESTAMP_X")." as TIMESTAMP_X, ". " ".$DB->DateToCharFunction("BE.ACTIVE_FROM", "SHORT")." as ACTIVE_FROM, ". " ".$DB->DateToCharFunction("BE.ACTIVE_TO", "SHORT")." as ACTIVE_TO, ". " ".$DB->DateToCharFunction("BE.WF_DATE_LOCK")." as WF_DATE_LOCK, ". " L.DIR as LANG_DIR, B.DETAIL_PAGE_URL, B.LIST_PAGE_URL, ". " CAP.QUANTITY, CAP.QUANTITY_RESERVED, IF (CAP.QUANTITY_TRACE = 'D', '".$DB->ForSql(COption::GetOptionString('catalog','default_quantity_trace','N'))."', CAP.QUANTITY_TRACE) as QUANTITY_TRACE, CAP.WEIGHT, ". " IF (CAP.CAN_BUY_ZERO = 'D', '".$DB->ForSql(COption::GetOptionString('catalog','default_can_buy_zero','N'))."', CAP.CAN_BUY_ZERO) as CAN_BUY_ZERO, ". " IF (CAP.NEGATIVE_AMOUNT_TRACE = 'D', '".$DB->ForSql(COption::GetOptionString('catalog','allow_negative_amount','N'))."', CAP.NEGATIVE_AMOUNT_TRACE) as NEGATIVE_AMOUNT_TRACE, ". " CAP.VAT_ID, CAP.VAT_INCLUDED, ". " CAP.PRICE_TYPE, CAP.RECUR_SCHEME_TYPE, CAP.RECUR_SCHEME_LENGTH, CAP.TRIAL_PRICE_ID, ". " CAP.WITHOUT_ORDER, CAP.SELECT_BEST_PRICE, CAP.PURCHASING_PRICE, CAP.PURCHASING_CURRENCY, CAP.BARCODE_MULTI, ". " CAP.TMP_ID ". " ".$strSelectPart." ". "FROM b_iblock_element BE, b_lang L, ". ($bSections?"b_iblock_section_element BSE,":""). " b_iblock B ". " LEFT JOIN b_iblock_group IBG ON IBG.IBLOCK_ID = B.ID ". " LEFT JOIN b_catalog_product CAP ON BE.ID = CAP.ID ". " ".$strFromPart." ". "WHERE BE.IBLOCK_ID = B.ID ". " AND B.LID = L.LID ". ($bSections?" AND BSE.IBLOCK_ELEMENT_ID = BE.ID ":""). " AND IBG.GROUP_ID IN (".$USER->GetGroups().") ". " ".CIBlockElement::WF_GetSqlLimit("BE.", $SHOW_NEW)." ". " AND IBG.PERMISSION>='".(strlen($arFilter["MIN_PERMISSION"])==1 ? $arFilter["MIN_PERMISSION"] : "R")."' ". " AND (IBG.PERMISSION='X' OR B.ACTIVE='Y') ". " ".$strSqlSearch." "; } else { $strSql = "SELECT BE.*, ". " ".$DB->DateToCharFunction("BE.TIMESTAMP_X")." as TIMESTAMP_X, ". " ".$DB->DateToCharFunction("BE.ACTIVE_FROM", "SHORT")." as ACTIVE_FROM, ". " ".$DB->DateToCharFunction("BE.ACTIVE_TO", "SHORT")." as ACTIVE_TO, ". " ".$DB->DateToCharFunction("BE.WF_DATE_LOCK")." as WF_DATE_LOCK, ". " L.DIR as LANG_DIR, B.DETAIL_PAGE_URL, B.LIST_PAGE_URL, ". " CAP.QUANTITY, CAP.QUANTITY_RESERVED, IF (CAP.QUANTITY_TRACE = 'D', '".$DB->ForSql(COption::GetOptionString('catalog','default_quantity_trace','N'))."', CAP.QUANTITY_TRACE) as QUANTITY_TRACE, CAP.WEIGHT, ". " IF (CAP.CAN_BUY_ZERO = 'D', '".$DB->ForSql(COption::GetOptionString('catalog','default_can_buy_zero','N'))."', CAP.CAN_BUY_ZERO) as CAN_BUY_ZERO, ". " IF (CAP.NEGATIVE_AMOUNT_TRACE = 'D', '".$DB->ForSql(COption::GetOptionString('catalog','allow_negative_amount','N'))."', CAP.NEGATIVE_AMOUNT_TRACE) as NEGATIVE_AMOUNT_TRACE, ". " CAP.VAT_ID, CAP.VAT_INCLUDED, ". " CAP.PRICE_TYPE, CAP.RECUR_SCHEME_TYPE, CAP.RECUR_SCHEME_LENGTH, CAP.TRIAL_PRICE_ID, ". " CAP.WITHOUT_ORDER, CAP.SELECT_BEST_PRICE, CAP.PURCHASING_PRICE, CAP.PURCHASING_CURRENCY, CAP.BARCODE_MULTI, ". " CAP.TMP_ID ". " ".$strSelectPart." ". "FROM b_iblock B, b_lang L, ". ($bSections?"b_iblock_section_element BSE,":""). " b_iblock_element BE ". " LEFT JOIN b_catalog_product CAP ON BE.ID = CAP.ID ". " ".$strFromPart." ". "WHERE BE.IBLOCK_ID = B.ID ". ($bSections?" AND BSE.IBLOCK_ELEMENT_ID = BE.ID ":""). " ".CIBlockElement::WF_GetSqlLimit("BE.",$SHOW_NEW)." ". " AND B.LID = L.LID ". " ".$strSqlSearch." "; } $arSqlOrder = array(); foreach($arOrder as $by=>$order) { $by = strtoupper($by); $order = strtoupper($order); if ($order!="ASC") $order = "DESC"; if ($by == "ID") $arSqlOrder[] = " BE.ID ".$order." "; elseif ($by == "SECTION") $arSqlOrder[] = " BE.IBLOCK_SECTION_ID ".$order." "; elseif ($by == "NAME") $arSqlOrder[] = " BE.NAME ".$order." "; elseif ($by == "STATUS") $arSqlOrder[] = " BE.WF_STATUS_ID ".$order." "; elseif ($by == "MODIFIED_BY") $arSqlOrder[] = " BE.MODIFIED_BY ".$order." "; elseif ($by == "ACTIVE") $arSqlOrder[] = " BE.ACTIVE ".$order." "; elseif ($by == "ACTIVE_FROM") $arSqlOrder[] = " BE.ACTIVE_FROM ".$order." "; elseif ($by == "ACTIVE_TO") $arSqlOrder[] = " BE.ACTIVE_TO ".$order." "; elseif ($by == "SORT") $arSqlOrder[] = " BE.SORT ".$order." "; elseif (substr($by, 0, 5) == "PRICE" && intval(substr($by, 5))<=$maxInd) { $indx = intval(substr($by, 5)); $arSqlOrder[] = " P".$indx.".PRICE ".$order." "; } elseif (substr($by, 0, 8) == "CURRENCY" && intval(substr($by, 8))<=$maxInd) { $indx = intval(substr($by, 8)); $arSqlOrder[] = " P".$indx.".CURRENCY ".$order." "; } else { $arSqlOrder[] = " BE.ID ".$order." "; $by = "ID"; } } $strSqlOrder = ""; DelDuplicateSort($arSqlOrder); for ($i = 0, $intCount = count($arSqlOrder); $i < $intCount; $i++) { if($i==0) $strSqlOrder = " ORDER BY "; else $strSqlOrder .= ","; $strSqlOrder .= $arSqlOrder[$i]; } $strSql .= $strSqlOrder; $res = $DB->Query($strSql, false, "File: ".__FILE__."<br>Line: ".__LINE__); return $res; }
{ $xOfferListNode = $offerlists[$i]; $IBLOCK_XML_ID = $xOfferListNode->GetAttribute($nameUTF['CatalogID']); $OFFER_LIST_DESC = $xOfferListNode->GetAttribute($nameUTF['Description']); $OFFER_LIST_CURRENCY = $arCurrencies[$xOfferListNode->GetAttribute($nameUTF['Currency'])]; if (strlen($OFFER_LIST_CURRENCY)<=0) $OFFER_LIST_CURRENCY = "USD"; //detect "price type" property $props = $xOfferListNode->select_nodes("/".$nameUTF['PropertyValue']); if (!is_object($props[0])) continue; $PRICE_TYPE = $props[0]->GetAttribute($nameUTF['Value']); $res = CCatalogGroup::GetList(array(), array("NAME"=>$PRICE_TYPE)); if ($arr = $res->Fetch()) $PRICE_ID = $arr["ID"]; else $PRICE_ID = CCatalogGroup::Add( Array( "NAME"=>$PRICE_TYPE, "USER_LANG"=>Array("ru"=>$PRICE_TYPE) ) ); $arProducts = $arCatalogsParams[$IBLOCK_XML_ID]["arProducts"]; $arOffers = array(); $offers = $xOfferListNode->select_nodes("/".$nameUTF['Offer']);