public static function getSelectedPriceTypeId() { if (is_null(self::$selectedPriceTypeId)) { $priceTypeId = intval(COption::GetOptionInt('crm', 'selected_catalog_group_id', 0)); if ($priceTypeId < 1) { $arBaseCatalogGroup = CCatalogGroup::GetBaseGroup(); $priceTypeId = intval($arBaseCatalogGroup['ID']); } self::$selectedPriceTypeId = $priceTypeId; } return self::$selectedPriceTypeId; }
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; }
private static function getCatalogPrices() { if (!isset(self::$catalogPriceCache)) { self::$catalogPriceCache = array(); if (self::$catalogIncluded === null) { self::$catalogIncluded = Loader::includeModule('catalog'); } if (self::$catalogIncluded) { $rsPrice = CCatalogGroup::GetListEx(array("SORT" => "ASC"), array(), false, false, array("ID", "NAME")); while ($price = $rsPrice->Fetch()) { self::$catalogPriceCache[] = $price; } } } return self::$catalogPriceCache; }
/** * @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); } }
public static function GetCatalogPrices($IBLOCK_ID, $arPriceCode) { global $USER; $arCatalogPrices = array(); if (self::$catalogIncluded === null) { self::$catalogIncluded = Loader::includeModule('catalog'); } if (self::$catalogIncluded) { $arCatalogGroupCodesFilter = array(); foreach ($arPriceCode as $value) { $t_value = trim($value); if ('' != $t_value) { $arCatalogGroupCodesFilter[$value] = true; } } $arCatalogGroupsFilter = array(); $arCatalogGroups = CCatalogGroup::GetListArray(); foreach ($arCatalogGroups as $key => $value) { if (isset($arCatalogGroupCodesFilter[$value['NAME']])) { $arCatalogGroupsFilter[] = $key; $arCatalogPrices[$value["NAME"]] = array("ID" => (int) $value["ID"], "TITLE" => htmlspecialcharsbx($value["NAME_LANG"]), "SELECT" => "CATALOG_GROUP_" . $value["ID"]); } } $arPriceGroups = CCatalogGroup::GetGroupsPerms($USER->GetUserGroupArray(), $arCatalogGroupsFilter); foreach ($arCatalogPrices as $name => $value) { $arCatalogPrices[$name]["CAN_VIEW"] = in_array($value["ID"], $arPriceGroups["view"]); $arCatalogPrices[$name]["CAN_BUY"] = in_array($value["ID"], $arPriceGroups["buy"]); } } else { $arPriceGroups = array("view" => array()); $rsProperties = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $IBLOCK_ID, "CHECK_PERMISSIONS" => "N", "PROPERTY_TYPE" => "N", "MULTIPLE" => "N")); while ($arProperty = $rsProperties->Fetch()) { if (in_array($arProperty["CODE"], $arPriceCode)) { $arPriceGroups["view"][] = htmlspecialcharsbx("PROPERTY_" . $arProperty["CODE"]); $arCatalogPrices[$arProperty["CODE"]] = array("ID" => (int) $arProperty["ID"], "TITLE" => htmlspecialcharsbx($arProperty["NAME"]), "SELECT" => "PROPERTY_" . $arProperty["ID"], "CAN_VIEW" => true, "CAN_BUY" => false); } } } return $arCatalogPrices; }
function GetCatalogPrices($IBLOCK_ID, $arPriceCode) { global $USER; $arCatalogPrices = array(); if (CModule::IncludeModule("catalog")) { $bFromCatalog = true; $arCatalogGroupCodesFilter = array(); foreach ($arPriceCode as $key => $value) { $t_value = trim($value); if (strlen($t_value) > 0) { $arCatalogGroupCodesFilter[$value] = true; } } $arCatalogGroupsFilter = array(); $arCatalogGroups = CCatalogGroup::GetListArray(); foreach ($arCatalogGroups as $key => $value) { if (array_key_exists($value["NAME"], $arCatalogGroupCodesFilter)) { $arCatalogGroupsFilter[] = $key; $arCatalogPrices[$value["NAME"]] = array("ID" => htmlspecialcharsbx($value["ID"]), "TITLE" => htmlspecialcharsbx($value["NAME_LANG"]), "SELECT" => "CATALOG_GROUP_" . $value["ID"]); } } $arPriceGroups = CCatalogGroup::GetGroupsPerms($USER->GetUserGroupArray(), $arCatalogGroupsFilter); foreach ($arCatalogPrices as $name => $value) { $arCatalogPrices[$name]["CAN_VIEW"] = in_array($value["ID"], $arPriceGroups["view"]); $arCatalogPrices[$name]["CAN_BUY"] = in_array($value["ID"], $arPriceGroups["buy"]); } } else { $bFromCatalog = false; $arPriceGroups = array("view" => array()); $rsProperties = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $IBLOCK_ID, "CHECK_PERMISSIONS" => "N", "PROPERTY_TYPE" => "N")); while ($arProperty = $rsProperties->Fetch()) { if ($arProperty["MULTIPLE"] == "N" && in_array($arProperty["CODE"], $arPriceCode)) { $arPriceGroups["view"][] = htmlspecialcharsbx("PROPERTY_" . $arProperty["CODE"]); $arCatalogPrices[$arProperty["CODE"]] = array("ID" => htmlspecialcharsbx($arProperty["ID"]), "TITLE" => htmlspecialcharsbx($arProperty["NAME"]), "SELECT" => "PROPERTY_" . $arProperty["ID"], "CAN_VIEW" => true, "CAN_BUY" => false); } } } return $arCatalogPrices; }
function ReCountFromBase(&$arFields, &$boolBase) { $arBaseGroup = CCatalogGroup::GetBaseGroup(); if (!empty($arBaseGroup)) { if ($arFields['CATALOG_GROUP_ID'] == $arBaseGroup['ID']) { $boolBase = true; } else { if (!empty($arFields['EXTRA_ID']) && intval($arFields['EXTRA_ID']) > 0) { $arExtra = CExtra::GetByID($arFields['EXTRA_ID']); if (!empty($arExtra)) { $arFilter = array('PRODUCT_ID' => $arFields['PRODUCT_ID'],'CATALOG_GROUP_ID' => $arBaseGroup['ID']); if (isset($arFields['QUANTITY_FROM'])) $arFilter['QUANTITY_FROM'] = $arFields['QUANTITY_FROM']; if (isset($arFields['QUANTITY_TO'])) $arFilter['QUANTITY_TO'] = $arFields['QUANTITY_TO']; $rsBasePrices = CPrice::GetListEx( array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC"), $arFilter, false, array('nTopCount' => 1), array('PRICE','CURRENCY') ); if ($arBasePrice = $rsBasePrices->Fetch()) { $arFields['CURRENCY'] = $arBasePrice['CURRENCY']; $arFields['PRICE'] = RoundEx($arBasePrice["PRICE"] * (1 + DoubleVal($arExtra["PERCENTAGE"])/100), CATALOG_VALUE_PRECISION); } else { $arFields['EXTRA_ID'] = 0; } } else { $arFields['EXTRA_ID'] = 0; } } } } }
<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 } ?>
if ($strUseStoreControl == "Y") { $arHeader[] = array( "id" => "CATALOG_BAR_CODE", "content" => GetMessage("IBLIST_A_CATALOG_BAR_CODE"), "title" => "", "align" => "right", "default" => false, ); } $arCatGroup = array(); $dbCatalogGroups = CCatalogGroup::GetListEx( 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"]), "align" => "right", "sort" => "CATALOG_PRICE_".$arCatalogGroup["ID"], ); $arCatGroup[$arCatalogGroup["ID"]] = $arCatalogGroup; } $arCatExtra = array(); $db_extras = CExtra::GetList(array("NAME" =>"ASC"));
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
protected function getPrices() { if ($this->arPrices === null) { $this->arPrices = array(); $rsPrice = \CCatalogGroup::GetListEx(array("SORT" => "ASC"), array(), false, false, array("ID", "NAME", "NAME_LANG", "BASE")); while ($price = $rsPrice->Fetch()) { $this->arPrices[] = $price; } } return $this->arPrices; }
public static function init() { IncludeModuleLangFile(__FILE__); if (!self::$fInit) { self::$fInit = true; self::$siteCookieId = md5('SALE_REPORT_SITE_ID'); // Initializing list of sites. $result = Bitrix\Main\SiteTable::getList(array('select' => array('LID', 'DEF', 'NAME'))); $i = 0; while ($row = $result->fetch()) { self::$sitelist[$row['LID']] = $row['NAME']; if (++$i === 1) { self::$defaultSiteId = $row['LID']; } else { if ($row['DEF'] === 'Y') { self::$defaultSiteId = $row['LID']; } } self::$weightOptions[$row['LID']] = array('unit' => COption::GetOptionString('sale', 'weight_unit', null, $row['LID']), 'koef' => COption::GetOptionInt('sale', 'weight_koef', null, $row['LID'])); } unset($i, $row, $result); // hack, add virtual ID field into StatusLang entity for filtering $statusEntity = Entity\Base::getInstance('\\Bitrix\\Sale\\Internals\\StatusLang'); if ($statusEntity instanceof \Bitrix\Main\Entity\Base) { $statusEntity->addField(array('data_type' => 'string', 'expression' => array('%s', 'STATUS_ID')), 'ID'); } unset($statusEntity); // hack, add virtual REPS_ORDER field into Shipment entity for filtering system records $shipmentEntity = Entity\Base::getInstance('\\Bitrix\\Sale\\Internals\\Shipment'); if ($shipmentEntity instanceof \Bitrix\Main\Entity\Base) { $shipmentEntity->addField(array('data_type' => 'Order', 'reference' => array('=ref.ID' => 'this.ORDER_ID', '!=this.SYSTEM' => array('?', 'Y'))), 'REPS_ORDER'); } unset($shipmentEntity); // Initializing list of statuses of orders. $result = Bitrix\Sale\Internals\StatusLangTable::getList(array('select' => array('STATUS_ID', 'NAME'), 'filter' => array('=LID' => LANGUAGE_ID))); while ($row = $result->fetch()) { self::$statuslist[$row['STATUS_ID']] = $row['NAME']; } unset($row, $result); self::$genders = array('M' => GetMessage('USER_MALE'), 'F' => GetMessage('USER_FEMALE')); // Initializing list of person types. $result = Bitrix\Sale\Internals\PersonTypeTable::getList(array('select' => array('ID', 'LID', 'NAME'))); while ($row = $result->fetch()) { self::$personTypes[$row['ID']] = array('LID' => $row['LID'], 'NAME' => $row['NAME']); } unset($row, $result); // Initializing list of pay systems of orders. $result = Bitrix\Sale\PaySystemTable::getList(array('select' => array('ID', 'LID', 'NAME'))); while ($row = $result->fetch()) { self::$paySystemList[$row['ID']] = array('value' => $row['NAME'], 'site_id' => $row['LID']); } unset($row, $result); // Initializing list of services and methods of delivery. $result = \Bitrix\Sale\Delivery\Services\Table::getList(array('select' => array('ID', 'NAME'))); while ($row = $result->fetch()) { self::$deliveryList[$row['ID']] = array('value' => $row['NAME'], 'site_id' => ''); } unset($row, $result); // Obtaining table of correspondences of iblocks to sites. $result = Bitrix\Iblock\IblockSiteTable::getList(); while ($row = $result->fetch()) { self::$iblockSite[$row['SITE_ID']][] = $row['IBLOCK_ID']; } unset($row, $result); // Obtaining the list of iblocks which are directories and filling // a property $catalogSections with sections of these units. $ent = new CCatalog(); $result = $ent->GetList(); while ($ibRow = $result->Fetch()) { // Obtaining list of sections of the catalog. self::$catalogs[] = $ibRow; $path = array(); $curLevel = $prevLevel = 0; $sections = CIBlockSection::GetTreeList(array('=IBLOCK_ID' => $ibRow['IBLOCK_ID'])); $row = null; while ($row = $sections->GetNext()) { // Formation of an array of identifiers of current and parent sections. $curLevel = $row['DEPTH_LEVEL']; for ($i = 0; $i <= $prevLevel - $curLevel; $i++) { array_pop($path); } array_push($path, $row['ID']); $prevLevel = $curLevel; self::$catalogSections[$row['ID']] = array('name' => ltrim(str_repeat(' . ', $curLevel) . $row['NAME']), 'path' => $path, 'catalog' => array('ID' => $ibRow['ID'], 'NAME' => $ibRow['NAME'])); } } unset($ent, $ibRow, $row, $sections, $result); // Initialization of the list of warehouses. $result = Bitrix\Catalog\StoreTable::getList(array('select' => array('ID', 'TITLE'))); while ($row = $result->fetch()) { self::$productStores[$row['ID']] = $row['TITLE']; } unset($row, $result); // Getting currencies $obj = new CCurrency(); $by = ''; $order = ''; $result = $obj->GetList($by, $order, LANGUAGE_ID); while ($row = $result->Fetch()) { self::$currencies[$row['CURRENCY']] = array('name' => $row['FULL_NAME']); } unset($row, $result, $obj, $by, $order); // Getting types of prices $obj = new CCatalogGroup(); $result = $obj->GetListEx(array('SORT'), array(), false, false, array('ID', 'NAME', 'BASE', 'NAME_LANG')); while ($row = $result->Fetch()) { self::$priceTypes[$row['ID']] = array('name' => empty($row['NAME_LANG']) ? $row['NAME'] : $row['NAME_LANG'], 'base' => $row['BASE'] === 'Y' ? true : false); } unset($row, $result, $obj); // Getting option, which means, it is necessary to display a fractional quantity of goods of no. self::$fDecimalQuant = COption::GetOptionString('sale', 'QUANTITY_FACTORIAL') == 'Y'; self::initOwners(); } }
$arSections[] = IntVal($value); } } } if (!$bAllSections && empty($arSections)) { $strExportErrorMessage .= "Section list is not set.\n"; } } if (strlen($strExportErrorMessage) <= 0) { $arFilter = array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE_DATE" => "Y", "ACTIVE" => "Y", 'CHECK_PERMISSIONS' => 'N'); if (!$bAllSections) { $arFilter["INCLUDE_SUBSECTIONS"] = "Y"; $arFilter["SECTION_ID"] = $arSections; } $arSelect = array("ID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "NAME", "PREVIEW_PICTURE", "PREVIEW_TEXT", "PREVIEW_TEXT_TYPE", "DETAIL_PICTURE", "LANG_DIR", "DETAIL_PAGE_URL", "EXTERNAL_ID"); $db_res = CCatalogGroup::GetGroupsList(array("GROUP_ID" => 2)); $arPTypes = array(); while ($ar_res = $db_res->Fetch()) { if (!in_array($ar_res["CATALOG_GROUP_ID"], $arPTypes)) { $arPTypes[] = $ar_res["CATALOG_GROUP_ID"]; $arSelect[] = "CATALOG_GROUP_" . $ar_res["CATALOG_GROUP_ID"]; } } $arSectionPaths = array(); } if (strlen($SETUP_FILE_NAME) <= 0) { $strExportErrorMessage .= GetMessage("CATI_NO_SAVE_FILE") . "<br>"; } elseif (preg_match(BX_CATALOG_FILENAME_REG, $SETUP_FILE_NAME)) { $strExportErrorMessage .= GetMessage("CES_ERROR_BAD_EXPORT_FILENAME") . "<br>"; } if (strlen($strExportErrorMessage) <= 0) {
<?php IncludeModuleLangFile(__FILE__); $profileTypes['avito_commercereal'] = array("CODE" => 'avito_commercereal', "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_NAME"), "DESCRIPTION" => GetMessage("ACRIT_EXPORTPRO_PODDERJIVAETSA_ANDEK"), "REG" => "http://market.yandex.ru/", "HELP" => "http://help.yandex.ru/partnermarket/export/feed.xml", "FIELDS" => array(array("CODE" => "Id", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_ID"), "VALUE" => "ID", "REQUIRED" => 'Y', "TYPE" => 'field'), array("CODE" => "Category", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_CATEGORY"), "REQUIRED" => 'Y', "TYPE" => 'const', "CONTVALUE_TRUE" => GetMessage('ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_CATEGORY_VALUE')), array("CODE" => "DateBegin", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_DATEBEGIN")), array("CODE" => "DateEnd", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_DATEEND")), array("CODE" => "OperationType", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_OPERATIONTYPE"), "REQUIRED" => 'Y'), array("CODE" => "BuildingClass", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_BUILDINGCLASS")), array("CODE" => "BusinessForSale", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_BUSINESSFORSALE")), array("CODE" => "Region", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_REGION")), array("CODE" => "City", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_CITY"), "REQUIRED" => 'Y'), array("CODE" => "Locality", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_LOCALITY")), array("CODE" => "Street", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_STREET")), array("CODE" => "ObjectType", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_OBJECTTYPE"), "REQUIRED" => 'Y'), array("CODE" => "Square", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_SQUARE"), "REQUIRED" => 'Y'), array("CODE" => "Subway", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_SUBWAY")), array("CODE" => "Description", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_DESCRIPTION")), array("CODE" => "Price", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_PRICE"), "TYPE" => "const", "CONTVALUE_TRUE" => "0"), array("CODE" => "ContactPhone", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_CONTACTPHONE")), array("CODE" => "AdStatus", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_ADSTATUS")), array("CODE" => "Image", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_IMAGE"))), "FORMAT" => '<?xml version="1.0"?> <Ads target="Avito.ru" formatVersion="1"> #ITEMS# </Ads>', "DATEFORMAT" => "Y-m-d"); $bCatalog = false; if (CModule::IncludeModule("catalog")) { $arBasePrice = CCatalogGroup::GetBaseGroup(); $basePriceCode = "CATALOG-PRICE_" . $arBasePrice["ID"]; $basePriceCodeWithDiscount = "CATALOG-PRICE_" . $arBasePrice["ID"] . "_WD"; $bCatalog = true; $profileTypes['avito_commercereal']["FIELDS"][15] = array("CODE" => "Price", "NAME" => GetMessage("ACRIT_EXPORTPRO_AVITO_COMMERCEREAL_FIELD_PRICE"), "TYPE" => "field", "VALUE" => $basePriceCode); } $profileTypes['avito_commercereal']['PORTAL_REQUIREMENTS'] = GetMessage('ACRIT_EXPORTPRO_TYPE_AVITO_COMMERCEREAL_PORTAL_REQUIREMENTS'); $profileTypes['avito_commercereal']['EXAMPLE'] = GetMessage('ACRIT_EXPORTPRO_TYPE_AVITO_COMMERCEREAL_EXAMPLE'); $profileTypes['avito_commercereal']['CURRENCIES'] = ""; $profileTypes['avito_commercereal']['SECTIONS'] = ""; $profileTypes['avito_commercereal']['ITEMS_FORMAT'] = "\n<Ad>\n <Id>#Id#</Id>\n <Category>#Category#</Category>\n <DateBegin>#DateBegin#</DateBegin>\n <DateEnd>#DateEnd#</DateEnd>\n <OperationType>#OperationType#</OperationType>\n <BuildingClass>#BuildingClass#</BuildingClass>\n <BusinessForSale>#BusinessForSale#</BusinessForSale>\n <Region>#Region#</Region>\n <City>#City#</City>\n <Locality>#Locality#</Locality>\n <Street>#Street#</Street>\n <Square>#Square#</Square>\n <ObjectType>#ObjectType#</ObjectType>\n <Subway>#Subway#</Subway>\n <Description>#Description#</Description>\n <Price>#Price#</Price>\n <ContactPhone>#ContactPhone#</ContactPhone>\n <AdStatus>#AdStatus#</AdStatus>\n <Images>\n <Image url=\"#SITE_URL##Image#\"></Image>\n </Images>\n</Ad>\n"; $profileTypes['avito_commercereal']['LOCATION'] = array('avito' => array('name' => GetMessage("ACRIT_EXPORTPRO_AVITO"), 'sub' => array()));
'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'),
$boolSep = true; $priceQuantityFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE_EXT, true); foreach ($allowedPriceQuantityFields as &$fieldName) { if (isset($priceQuantityFields[$fieldName])) { $arAvailFields[$intCount] = $priceQuantityFields[$fieldName]; $arAvailFields[$intCount]['sort'] = ($intCount + 1) * 10; if ($boolSep) { $arAvailFields[$intCount]['SEP'] = GetMessage('CAT_ADM_CSV_EXP_SEP_PRICES'); $boolSep = false; } $intCount++; } } unset($fieldName, $priceQuantityFields); $priceFields = CCatalogCSVSettings::getSettingsFields(CCatalogCSVSettings::FIELDS_PRICE, true); $rsPriceTypes = CCatalogGroup::GetListEx(array('SORT' => 'ASC', 'ID' => 'ASC'), array(), false, false, array('ID', 'NAME', 'NAME_LANG')); while ($priceType = $rsPriceTypes->Fetch()) { $priceType['NAME_LANG'] = (string) $priceType['NAME_LANG']; foreach ($allowedPriceFields as &$fieldName) { if (isset($priceFields[$fieldName])) { $priceName = $priceType['NAME_LANG'] !== '' ? str_replace(array('#TYPE#', '#NAME#'), array($priceType['NAME'], $priceType['NAME_LANG']), GetMessage('EST_PRICE_TYPE2')) : str_replace("#TYPE#", $priceType['NAME'], GetMessage('EST_PRICE_TYPE')); $arAvailFields[$intCount] = $priceFields[$fieldName]; $arAvailFields[$intCount]['value'] .= '_' . $priceType['ID']; $arAvailFields[$intCount]['name'] = $priceName . ': ' . $arAvailFields[$intCount]['name']; $arAvailFields[$intCount]['sort'] = ($intCount + 1) * 10; if ($boolSep) { $arAvailFields[$intCount]['SEP'] = GetMessage('CAT_ADM_CSV_EXP_SEP_PRICES'); $boolSep = false; } $intCount++; }
} } $arSort = CIBlockParameters::GetElementSortFields( array('SHOWS', 'SORT', 'TIMESTAMP_X', 'NAME', 'ID', 'ACTIVE_FROM', 'ACTIVE_TO'), array('KEY_LOWERCASE' => 'Y') ); $arPrice = array(); if ($boolCatalog) { $arSort = array_merge($arSort, CCatalogIBlockParameters::GetCatalogSortFields()); $rsPrice=CCatalogGroup::GetListEx( array("SORT" => "ASC"), array(), false, false, array('ID', 'NAME', 'NAME_LANG') ); 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"), );
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"); } } }
public static function GetInheritedPropertyTemplateElementMenuItems($iblock_id, $action_function, $menuID, $inputID = "") { $result = array(); $result["this"] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_ELEMENT"), "MENU" => array( array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_ELEMENT_NAME"), "ONCLICK" => "$action_function('{=this.Name}', '$menuID', '$inputID')", ), array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_ELEMENT_LOWER_NAME"), "ONCLICK" => "$action_function('{=lower this.Name}', '$menuID', '$inputID')", ), array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_ELEMENT_CODE"), "ONCLICK" => "$action_function('{=this.Code}', '$menuID', '$inputID')", ), array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_ELEMENT_PREVIEW_TEXT"), "ONCLICK" => "$action_function('{=this.PreviewText}', '$menuID', '$inputID')", ), array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_ELEMENT_DETAIL_TEXT"), "ONCLICK" => "$action_function('{=this.DetailText}', '$menuID', '$inputID')", ), ), ); if ($iblock_id > 0) { $result["properties"] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_PROPERTIES"), "MENU" => array( ), ); $rsProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $iblock_id)); while($property = $rsProperty->fetch()) { if ($property["PROPERTY_TYPE"] != "F") { $result["properties"]["MENU"][] = array( "TEXT" => $property["NAME"], "ONCLICK" => "$action_function('{=this.property.".($property["CODE"]!=""? $property["CODE"]: $property["ID"])."}', '$menuID', '$inputID')", ); } } } $result["parent"] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_PARENT"), "MENU" => array( array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_PARENT_NAME"), "ONCLICK" => "$action_function('{=parent.Name}', '$menuID', '$inputID')", ), array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_PARENT_CODE"), "ONCLICK" => "$action_function('{=parent.Code}', '$menuID', '$inputID')", ), array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_PARENT_TEXT"), "ONCLICK" => "$action_function('{=parent.PreviewText}', '$menuID', '$inputID')", ), ), ); $result["iblock"] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_IBLOCK"), "MENU" => array( array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_IBLOCK_NAME"), "ONCLICK" => "$action_function('{=iblock.Name}', '$menuID', '$inputID')", ), array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_IBLOCK_CODE"), "ONCLICK" => "$action_function('{=iblock.Code}', '$menuID', '$inputID')", ), array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_IBLOCK_TEXT"), "ONCLICK" => "$action_function('{=iblock.PreviewText}', '$menuID', '$inputID')", ), ), ); if (\Freetrix\Main\Loader::includeModule('catalog')) { $arCatalog = \CCatalogSKU::GetInfoByProductIBlock($iblock_id); if (is_array($arCatalog)) { $result["sku_properties"] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_SKU_PROPERTIES"), "MENU" => array( ), ); $rsProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $arCatalog["IBLOCK_ID"])); while($property = $rsProperty->fetch()) { if ($property["PROPERTY_TYPE"] != "F") { $result["sku_properties"]["MENU"][] = array( "TEXT" => $property["NAME"], "ONCLICK" => "$action_function('{=concat {=distinct this.catalog.sku.property.".($property["CODE"]!=""? $property["CODE"]: $property["ID"])." \", \"}}', '$menuID', '$inputID')", ); } } $result["sku_price"] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_SKU_PRICE"), "MENU" => array(), ); $rsPrice = CCatalogGroup::GetListEx(array("SORT"=>"ASC"), array(), false, false, array("ID", "NAME")); while ($price = $rsPrice->Fetch()) { if (preg_match("/^[a-zA-Z0-9]+\$/", $price["NAME"])) { $result["sku_price"]["MENU"][] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_MIN_PRICE")." ".$price["NAME"], "ONCLICK" => "$action_function('{=min this.catalog.sku.price.".$price["NAME"]."}', '$menuID', '$inputID')", ); $result["sku_price"]["MENU"][] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_MAX_PRICE")." ".$price["NAME"], "ONCLICK" => "$action_function('{=max this.catalog.sku.price.".$price["NAME"]."}', '$menuID', '$inputID')", ); } else { $result["sku_price"]["MENU"][] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_MIN_PRICE")." ".$price["NAME"], "ONCLICK" => "$action_function('{=min this.catalog.sku.price.".$price["ID"]."}', '$menuID', '$inputID')", ); $result["sku_price"]["MENU"][] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_MAX_PRICE")." ".$price["NAME"], "ONCLICK" => "$action_function('{=max this.catalog.sku.price.".$price["ID"]."}', '$menuID', '$inputID')", ); } } } $result["catalog"] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_CATALOG"), "MENU" => array( array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_CATALOG_WEIGHT"), "ONCLICK" => "$action_function('{=this.catalog.weight}', '$menuID', '$inputID')", ), array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_CATALOG_MEASURE"), "ONCLICK" => "$action_function('{=this.catalog.measure}', '$menuID', '$inputID')", ), ), ); $result["price"] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_PRICE"), "MENU" => array(), ); $rsPrice = CCatalogGroup::GetListEx(array("SORT"=>"ASC"), array(), false, false, array("ID", "NAME")); while ($price = $rsPrice->Fetch()) { if (preg_match("/^[a-zA-Z0-9]+\$/", $price["NAME"])) $result["price"]["MENU"][] = array( "TEXT" => $price["NAME"], "ONCLICK" => "$action_function('{=this.catalog.price.".$price["NAME"]."}', '$menuID', '$inputID')", ); else $result["price"]["MENU"][] = array( "TEXT" => $price["NAME"], "ONCLICK" => "$action_function('{=this.catalog.price.".$price["ID"]."}', '$menuID', '$inputID')", ); } $result["store"] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_STORE"), "MENU" => array(), ); $rsStore = CCatalogStore::GetList(); while ($store = $rsStore->Fetch()) { $result["store"]["MENU"][] = array( "TEXT" => $store["TITLE"], "ONCLICK" => "$action_function('{=catalog.store.".$store["ID"].".name}', '$menuID', '$inputID')", ); } } $result["misc"] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_MISC"), "MENU" => array(), ); $result["misc"]["MENU"][] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_SECTIONS_PATH"), "ONCLICK" => "$action_function('{=concat this.sections.name \" / \"}', '$menuID', '$inputID')", ); if (\Freetrix\Main\Loader::includeModule('catalog')) { $result["misc"]["MENU"][] = array( "TEXT" => GetMessage("IB_COMPLIB_POPUP_STORE_LIST"), "ONCLICK" => "$action_function('{=concat catalog.store \", \"}', '$menuID', '$inputID')", ); } $r = array(); foreach($result as $category) { if (!empty($category) && !empty($category["MENU"])) { $r[] = $category; } } return $r; }
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 {
function cmlEndElement($parser, $name) { global $DB; global $currentCatalog, $currentProduct, $currentProperty, $currentOffersList, $currentOffer; global $arIBlockCache; global $APPLICATION, $nameUTF, $tmpid; switch ($name) { case $nameUTF["Catalog"]: $currentCatalog = false; break; case $nameUTF["Product"]: $currentProduct = false; break; case $nameUTF["Property"]: $currentProperty = false; break; case $nameUTF["OffersList"]: if (!array_key_exists("PRICE_TYPE", $currentOffersList) || strlen($currentOffersList["PRICE_TYPE"]) <= 0) { $strSql = "SELECT NAME FROM b_catalog_group WHERE BASE = 'Y'"; $dbRes = $DB->Query($strSql); if ($arRes = $dbRes->Fetch()) { $priceType = $arRes["NAME"]; $currentOffersList["PRICE_TYPE"] = $priceType; $strSql = "INSERT INTO b_catalog_cml_oflist_prop (OFFER_LIST_XML_ID, PROPERTY_VALUE) " . "VALUES (" . $currentOffersList["ID"] . ", '" . $DB->ForSql($priceType, 255) . "')"; $DB->Query($strSql); } } else { $strSql = "SELECT count(*) as CNT FROM b_catalog_group WHERE NAME = '" . $DB->ForSql($currentOffersList["PRICE_TYPE"]) . "'"; $dbRes = $DB->Query($strSql); if ($arRes = $dbRes->Fetch()) { if (IntVal($arRes["CNT"]) <= 0) { CCatalogGroup::Add(array("NAME" => $currentOffersList["PRICE_TYPE"], "USER_LANG" => array("ru" => $currentOffersList["PRICE_TYPE"]))); } } } $currentOffersList = false; break; case $nameUTF["Offer"]: $currentOffer = false; break; } }
"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"], );
$viewedIterator = \Bitrix\Catalog\CatalogViewedProductTable::getList(array( 'order' => array("DATE_VISIT" => "DESC"), 'filter' => array('FUSER_ID' => $arFuserItems["ID"], "SITE_ID" =>$arOrder["LID"] ), 'select' => array("ID", "FUSER_ID", "DATE_VISIT", "PRODUCT_ID", "LID" => "SITE_ID", "NAME" => "ELEMENT.NAME", "PREVIEW_PICTURE" => "ELEMENT.PREVIEW_PICTURE", "DETAIL_PICTURE" => "ELEMENT.DETAIL_PICTURE" ) )); while($viewed = $viewedIterator->fetch()) { $viewed['MODULE'] = 'catalog'; $arViewed[$viewedCount] = $viewed; $arViewedIds[] = $viewed['PRODUCT_ID']; $mapViewed[$viewed['PRODUCT_ID']] = $viewedCount; $viewedCount++; } unset($viewedCount); $baseGroup = CCatalogGroup::getBaseGroup(); if (!empty($arViewedIds)) { $priceIterator = CPrice::getList( array(), array("PRODUCT_ID" => $arViewedIds, 'CATALOG_GROUP_ID' => $baseGroup['ID']), false, false, array("PRODUCT_ID", "PRICE", "CURRENCY")); while($productPrice = $priceIterator->fetch() ) { if (isset($mapViewed[$productPrice['PRODUCT_ID']])) { $key = $mapViewed[$productPrice['PRODUCT_ID']]; $arViewed[$key]["PRICE"] = $productPrice["PRICE"]; $arViewed[$key]["CURRENCY"] = $productPrice["CURRENCY"]; } } }
} } $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");
$dbResultList = new CAdminResult($dbResultList, $sTableID); $dbResultList->NavStart(); $lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("sale_prod_search_nav"))); $balanceTitle = $storeFromId > 0 ? GetMessage("SOPS_BALANCE") : GetMessage("SOPS_BALANCE2"); $arHeaders = array(array("id" => "ID", "content" => "ID", "sort" => "id", "default" => true), array("id" => "ACTIVE", "content" => GetMessage("SOPS_ACTIVE"), "sort" => "ACTIVE", "default" => true), array("id" => "DETAIL_PICTURE", "default" => true, "content" => GetMessage("SPS_FIELD_DETAIL_PICTURE"), "align" => "center"), array("id" => "NAME", "content" => GetMessage("SPS_NAME"), "sort" => "name", "default" => true), array("id" => "QUANTITY", "content" => GetMessage("SOPS_QUANTITY"), "default" => true), array("id" => "BALANCE", "content" => $balanceTitle, "sort" => "", "default" => true, "align" => "right")); $arHeaders[] = array("id" => "CODE", "content" => GetMessage("SPS_FIELD_CODE"), "sort" => "code"); $arHeaders[] = array("id" => "EXTERNAL_ID", "content" => GetMessage("SPS_FIELD_XML_ID"), "sort" => "external_id"); $arHeaders[] = array("id" => "SHOW_COUNTER", "content" => GetMessage("SPS_FIELD_SHOW_COUNTER"), "sort" => "show_counter", "align" => "right"); $arHeaders[] = array("id" => "SHOW_COUNTER_START", "content" => GetMessage("SPS_FIELD_SHOW_COUNTER_START"), "sort" => "show_counter_start", "align" => "right"); $arHeaders[] = array("id" => "PREVIEW_PICTURE", "content" => GetMessage("SPS_FIELD_PREVIEW_PICTURE"), "align" => "right"); $arHeaders[] = array("id" => "PREVIEW_TEXT", "content" => GetMessage("SPS_FIELD_PREVIEW_TEXT")); $arHeaders[] = array("id" => "DETAIL_TEXT", "content" => GetMessage("SPS_FIELD_DETAIL_TEXT")); foreach ($arProps as $prop) { $arHeaders[] = array("id" => "PROPERTY_" . $prop['ID'], "content" => $prop['NAME'], "align" => $prop["PROPERTY_TYPE"] == 'N' ? "right" : "left", "sort" => $prop["MULTIPLE"] != 'Y' ? "PROPERTY_" . $prop['ID'] : ""); } $rsPrice = CCatalogGroup::GetListEx(array("SORT" => "ASC"), array(), false, false, array("ID", "NAME", "NAME_LANG", "BASE")); while ($price = $rsPrice->Fetch()) { $arPrices[] = $price; $arHeaders[] = array("id" => "PRICE" . $price["ID"], "content" => htmlspecialcharsex(!empty($price["NAME_LANG"]) ? $price["NAME_LANG"] : $price["NAME"]), "default" => $price["BASE"] == 'Y' ? true : false); } $arHeaders[] = array("id" => "ACT", "content" => GetMessage("SPS_FIELD_ACTION"), "default" => true); $lAdmin->AddHeaders($arHeaders); $arSelectedFields = $lAdmin->GetVisibleHeaderColumns(); if (!in_array('ACT', $arSelectedFields)) { $arSelectedFields[] = 'ACT'; } $arSelectedProps = array(); foreach ($arProps as $prop) { if ($key = array_search("PROPERTY_" . $prop['ID'], $arSelectedFields)) { $arSelectedProps[] = $prop; $arSelect[$prop['ID']] = array();
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; }
function Delete($ID) { global $DB, $CACHE_MANAGER, $stackCacheManager, $APPLICATION; $ID = (int) $ID; if ($ID <= 0) { return false; } if ($res = CCatalogGroup::GetByID($ID)) { if ($res["BASE"] != "Y") { foreach (GetModuleEvents("catalog", "OnBeforeGroupDelete", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array($ID)) === false) { return false; } } foreach (GetModuleEvents("catalog", "OnGroupDelete", true) as $arEvent) { ExecuteModuleEventEx($arEvent, array($ID)); } if (!defined("CATALOG_SKIP_CACHE") || !CATALOG_SKIP_CACHE) { $CACHE_MANAGER->CleanDir("catalog_group"); $CACHE_MANAGER->Clean("catalog_group_perms"); } $stackCacheManager->Clear("catalog_GetQueryBuildArrays"); $stackCacheManager->Clear("catalog_discount"); $DB->Query("DELETE FROM b_catalog_price WHERE CATALOG_GROUP_ID = " . $ID); $DB->Query("DELETE FROM b_catalog_group2group WHERE CATALOG_GROUP_ID = " . $ID); $DB->Query("DELETE FROM b_catalog_group_lang WHERE CATALOG_GROUP_ID = " . $ID); return $DB->Query("DELETE FROM b_catalog_group WHERE ID = " . $ID, true); } else { $APPLICATION->ThrowException(GetMessage('BT_MOD_CAT_GROUP_ERR_CANNOT_DELETE_BASE_TYPE'), 'BASE'); } } return false; }