public static function OnBuildGlobalMenu(&$aGlobalMenu, &$aModuleMenu) { if (defined("BX_CATALOG_UNINSTALLED")) { return; } if (!Loader::includeModule("iblock")) { return; } $aMenu = array("text" => Loc::getMessage("CAT_MENU_ROOT"), "title" => "", "items_id" => "menu_catalog_list", "items" => array()); $arCatalogs = array(); $arCatalogSku = array(); $rsCatalog = CCatalog::GetList(array(), array(), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID')); while ($ar = $rsCatalog->Fetch()) { $ar["PRODUCT_IBLOCK_ID"] = (int) $ar["PRODUCT_IBLOCK_ID"]; $ar["IBLOCK_ID"] = (int) $ar["IBLOCK_ID"]; if (0 < $ar["PRODUCT_IBLOCK_ID"]) { $arCatalogs[$ar["PRODUCT_IBLOCK_ID"]] = 1; $arCatalogSku[$ar["PRODUCT_IBLOCK_ID"]] = $ar["IBLOCK_ID"]; } else { $arCatalogs[$ar["IBLOCK_ID"]] = 1; } } if (empty($arCatalogs)) { return; } $rsIBlocks = CIBlock::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array('ID' => array_keys($arCatalogs), "MIN_PERMISSION" => "S")); while ($arIBlock = $rsIBlocks->Fetch()) { if (CIBlock::GetAdminListMode($arIBlock["ID"]) == 'C') { $url = "cat_product_list.php"; } else { $url = "cat_product_admin.php"; } $arItems = array(array("text" => Loc::getMessage("CAT_MENU_PRODUCT_LIST"), "url" => $url . "?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . urlencode($arIBlock["IBLOCK_TYPE_ID"]) . '&find_section_section=-1', "more_url" => array("cat_product_admin.php?IBLOCK_ID=" . $arIBlock["ID"], "cat_product_list.php?IBLOCK_ID=" . $arIBlock["ID"] . '&find_section_section=-1', "cat_product_edit.php?IBLOCK_ID=" . $arIBlock["ID"]), "title" => "", "page_icon" => "iblock_page_icon_elements", "items_id" => "menu_catalog_goods_" . $arIBlock["ID"], "module_id" => "catalog"), array("text" => htmlspecialcharsex(CIBlock::GetArrayByID($arIBlock["ID"], "SECTIONS_NAME")), "url" => "cat_section_admin.php?lang=" . LANGUAGE_ID . "&type=" . $arIBlock["IBLOCK_TYPE_ID"] . "&IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0", "more_url" => array("cat_section_admin.php?IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0", "cat_section_edit.php?IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0"), "title" => "", "page_icon" => "iblock_page_icon_sections", "items_id" => "menu_catalog_category_" . $arIBlock["ID"], "module_id" => "catalog", "items" => CCatalogAdmin::get_sections_menu($arIBlock["IBLOCK_TYPE_ID"], $arIBlock["ID"], 1, 0))); if (CIBlockRights::UserHasRightTo($arIBlock["ID"], $arIBlock["ID"], "iblock_edit")) { $arItems[] = array("text" => Loc::getMessage("CAT_MENU_PRODUCT_PROPERTIES"), "url" => "iblock_property_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N", "more_url" => array("iblock_property_admin.php?IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N", "iblock_edit_property.php?IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N"), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_attributes_" . $arIBlock["ID"], "module_id" => "catalog"); } if (isset($arCatalogSku[$arIBlock["ID"]])) { $intOffersIBlockID = $arCatalogSku[$arIBlock["ID"]]; if (CIBlockRights::UserHasRightTo($intOffersIBlockID, $intOffersIBlockID, "iblock_edit")) { $arItems[] = array("text" => Loc::getMessage("CAT_MENU_SKU_PROPERTIES"), "url" => "iblock_property_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $intOffersIBlockID . "&admin=N", "more_url" => array("iblock_property_admin.php?IBLOCK_ID=" . $intOffersIBlockID . "&admin=N", "iblock_edit_property.php?IBLOCK_ID=" . $intOffersIBlockID . "&admin=N"), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_attributes_" . $intOffersIBlockID, "module_id" => "catalog"); } } if (CIBlockRights::UserHasRightTo($arIBlock["ID"], $arIBlock["ID"], "iblock_edit")) { $arItems[] = array("text" => Loc::getMessage("CAT_MENU_CATALOG_SETTINGS"), "url" => "cat_catalog_edit.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"], "more_url" => array("cat_catalog_edit.php?IBLOCK_ID=" . $arIBlock["ID"]), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_edit_" . $arIBlock["ID"], "module_id" => "catalog"); } $aMenu["items"][] = array("text" => htmlspecialcharsEx($arIBlock["NAME"]), "title" => "", "page_icon" => "iblock_page_icon_sections", "items_id" => "menu_catalog_" . $arIBlock["ID"], "module_id" => "catalog", "items" => $arItems); } if (!empty($aMenu["items"])) { if (count($aMenu["items"]) == 1) { $aMenu = $aMenu["items"][0]; } $aMenu["parent_menu"] = "global_menu_store"; $aMenu["section"] = "catalog_list"; $aMenu["sort"] = 200; $aMenu["icon"] = "iblock_menu_icon_sections"; $aMenu["page_icon"] = "iblock_page_icon_types"; $aModuleMenu[] = $aMenu; } }
public function GetInfoByLinkProperty($intPropertyID) { $ID = intval($intPropertyID); if (0 >= $intPropertyID) { return false; } $rsProducts = CCatalog::GetList(array(), array('SKU_PROPERTY_ID' => $intPropertyID), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID')); return $rsProducts->Fetch(); }
function OnBuildGlobalMenu(&$aGlobalMenu, &$aModuleMenu) { global $USER; if (!CModule::IncludeModule("iblock")) { return; } //When UnRegisterModuleDependences is called from module uninstall //cached EventHandlers may be called if (defined("BX_CATALOG_UNINSTALLED")) { return; } $aMenu = array("text" => GetMessage("CAT_MENU_ROOT"), "title" => "", "items_id" => "menu_catalog_list", "items" => array()); $arCatalogs = array(); $rsCatalog = CCatalog::GetList(array("sort" => "asc")); while ($ar = $rsCatalog->Fetch()) { if ($ar["PRODUCT_IBLOCK_ID"]) { $arCatalogs[$ar["PRODUCT_IBLOCK_ID"]] = 1; } else { $arCatalogs[$ar["IBLOCK_ID"]] = 1; } } $rsIBlocks = CIBlock::GetList(array("SORT" => "asc", "NAME" => "ASC"), array("MIN_PERMISSION" => "U")); while ($arIBlock = $rsIBlocks->Fetch()) { if (array_key_exists($arIBlock["ID"], $arCatalogs)) { $arItems = array(array("text" => GetMessage("CAT_MENU_PRODUCT_LIST"), "url" => "cat_product_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"] . "&type=" . urlencode($arIBlock["IBLOCK_TYPE_ID"]), "more_url" => array("cat_product_admin.php?IBLOCK_ID=" . $arIBlock["ID"], "cat_product_edit.php?IBLOCK_ID=" . $arIBlock["ID"]), "title" => "", "page_icon" => "iblock_page_icon_elements", "items_id" => "menu_catalog_goods_" . $arIBlock["ID"], "module_id" => "catalog"), array("text" => htmlspecialcharsex(CIBlock::GetArrayByID($arIBlock["ID"], "SECTIONS_NAME")), "url" => "cat_section_admin.php?lang=" . LANGUAGE_ID . "&type=" . $arIBlock["IBLOCK_TYPE_ID"] . "&IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0", "more_url" => array("cat_section_admin.php?IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0", "cat_section_edit.php?IBLOCK_ID=" . $arIBlock["ID"] . "&find_section_section=0"), "title" => "", "page_icon" => "iblock_page_icon_sections", "items_id" => "menu_catalog_category_" . $arIBlock["ID"], "module_id" => "catalog", "items" => CCatalogAdmin::get_sections_menu($arIBlock["IBLOCK_TYPE_ID"], $arIBlock["ID"], 1, 0))); if (CIBlockRights::UserHasRightTo($arIBlock["ID"], $arIBlock["ID"], "iblock_edit")) { $arItems[] = array("text" => GetMessage("CAT_MENU_PRODUCT_PROPERTIES"), "url" => "iblock_property_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N", "more_url" => array("iblock_property_admin.php?IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N", "iblock_edit_property.php?IBLOCK_ID=" . $arIBlock["ID"] . "&admin=N"), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_attributes_" . $arIBlock["ID"], "module_id" => "catalog"); } $arCatalog = false; if (CModule::IncludeModule("catalog")) { $arCatalog = CCatalog::GetSkuInfoByProductID($arIBlock["ID"]); } if (is_array($arCatalog) && CIBlockRights::UserHasRightTo($arCatalog["IBLOCK_ID"], $arCatalog["IBLOCK_ID"], "iblock_edit")) { $arItems[] = array("text" => GetMessage("CAT_MENU_SKU_PROPERTIES"), "url" => "iblock_property_admin.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arCatalog["IBLOCK_ID"] . "&admin=N", "more_url" => array("iblock_property_admin.php?IBLOCK_ID=" . $arCatalog["IBLOCK_ID"] . "&admin=N", "iblock_edit_property.php?IBLOCK_ID=" . $arCatalog["IBLOCK_ID"] . "&admin=N"), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_attributes_" . $arCatalog["IBLOCK_ID"], "module_id" => "catalog"); } if (CIBlockRights::UserHasRightTo($arIBlock["ID"], $arIBlock["ID"], "iblock_edit")) { $arItems[] = array("text" => GetMessage("CAT_MENU_CATALOG_SETTINGS"), "url" => "cat_catalog_edit.php?lang=" . LANGUAGE_ID . "&IBLOCK_ID=" . $arIBlock["ID"], "more_url" => array("cat_catalog_edit.php?IBLOCK_ID=" . $arIBlock["ID"]), "title" => "", "page_icon" => "iblock_page_icon_settings", "items_id" => "menu_catalog_edit_" . $arIBlock["ID"], "module_id" => "catalog"); } $aMenu["items"][] = array("text" => htmlspecialcharsEx($arIBlock["NAME"]), "title" => "", "page_icon" => "iblock_page_icon_sections", "items_id" => "menu_catalog_" . $arIBlock["ID"], "module_id" => "catalog", "items" => $arItems); } } if (!empty($aMenu["items"])) { if (count($aMenu["items"]) == 1) { $aMenu = $aMenu["items"][0]; } $aMenu["parent_menu"] = "global_menu_store"; $aMenu["section"] = "catalog_list"; $aMenu["sort"] = 200; $aMenu["icon"] = "iblock_menu_icon_sections"; $aMenu["page_icon"] = "iblock_page_icon_types"; $aModuleMenu[] = $aMenu; } }
/** * Метод вернет список инфоблоков которые являются торговыми каталогами * * @return array */ function getCatalogList() { $result = array(); $selectedCatalog = getSelectedCatalog(); $dbCatalog = CCatalog::GetList(array(), array(), false, false, array('ID', 'NAME')); while ($catalog = $dbCatalog->GetNext()) { if (in_array($catalog['ID'], $selectedCatalog)) { $catalog['SELECTED'] = true; } $result[] = $catalog; } return $result; }
> </td> </tr> <tr class="heading"> <td colspan="2"><?php echo GetMessage("CATI_FIELDS"); ?> </td> </tr> <tr> <td colspan="2"> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="internal"> <?php $boolCatalog = false; $boolOffers = false; $rsCatalogs = CCatalog::GetList(array(), array('IBLOCK_ID' => $IBLOCK_ID), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID')); if ($arCatalog = $rsCatalogs->Fetch()) { $boolCatalog = true; $boolOffers = (int) $arCatalog['PRODUCT_IBLOCK_ID'] > 0; } $allowedProductFields = array(); $allowedSectionFields = array(); $allowedPriceQuantityFields = CCatalogCSVSettings::getDefaultSettings(CCatalogCSVSettings::FIELDS_PRICE_EXT, true); $allowedPriceFields = array(); $fieldsOption = trim(COption::GetOptionString('catalog', 'allowed_product_fields')); if ($fieldsOption != '') { $allowedProductFields = explode(',', $fieldsOption); } $fieldsOption = trim(COption::GetOptionString('catalog', 'allowed_group_fields')); if ($fieldsOption != '') { $allowedSectionFields = explode(',', $fieldsOption);
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(); } }
if ($ex = $APPLICATION->GetException()) { $strWarning .= $ex->GetString() . "<br>"; $bVarsFromForm = true; } } } if (!$bVarsFromForm) { if ($bBizproc && $_REQUEST['BIZ_PROC_ADD_DEFAULT_TEMPLATES'] == 'Y' && CBPDocument::GetNumberOfWorkflowTemplatesForDocumentType(array("iblock", "CIBlockDocument", "iblock_" . $ID)) <= 0 && $arFields["BIZPROC"] == "Y") { CBPDocument::AddDefaultWorkflowTemplates(array("iblock", "CIBlockDocument", "iblock_" . $ID)); } $DB->Commit(); //Check if index needed CIBlock::CheckForIndexes($ID); if ($bCatalog) { if (isset($boolNeedAgent) && $boolNeedAgent == true) { $intYandexExport = CCatalog::GetList(array(), array('YANDEX_EXPORT' => 'Y'), array()); CAgent::RemoveAgent("CCatalog::PreGenerateXML(\"yandex\");", "catalog"); if (0 < $intYandexExport) { CAgent::AddAgent("CCatalog::PreGenerateXML(\"yandex\");", "catalog", "N", IntVal(COption::GetOptionString("catalog", "yandex_xml_period", "24")) * 60 * 60, "", "Y"); } } } $ob = new CAutoSave(); if (strlen($apply) <= 0) { if (strlen($_REQUEST["return_url"]) > 0) { LocalRedirect($_REQUEST["return_url"]); } else { LocalRedirect("/bitrix/admin/iblock_admin.php?type=" . $type . "&lang=" . LANG . "&admin=" . ($_REQUEST["admin"] == "Y" ? "Y" : "N")); } } LocalRedirect("/bitrix/admin/iblock_edit.php?type=" . $type . "&tabControl_active_tab=" . urlencode($tabControl_active_tab) . "&lang=" . LANG . "&ID=" . $ID . "&admin=" . ($_REQUEST["admin"] == "Y" ? "Y" : "N") . (strlen($_REQUEST["return_url"]) > 0 ? "&return_url=" . urlencode($_REQUEST["return_url"]) : ""));
?> <tr> <td><?php echo GetMessage("SPS_CATALOG"); ?> :</td> <td> <select name="IBLOCK_ID" onchange="BX('LID').value = BX('LID_'+this.value).value"> <?php $strShowOffersIBlock = COption::GetOptionString('catalog', 'product_form_show_offers_iblock'); $catalogID = $arLid = array(); $arCatalogFilter = array(); if ($boolSubscribe) { $arCatalogFilter['SUBSCRIPTION'] = 'Y'; } $dbItem = CCatalog::GetList(array(), $arCatalogFilter, false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID', 'SUBSCRIPTION')); while ($arItems = $dbItem->Fetch()) { $arItems['IBLOCK_ID'] = intval($arItems['IBLOCK_ID']); $arItems['PRODUCT_IBLOCK_ID'] = intval($arItems['PRODUCT_IBLOCK_ID']); if ('N' == $arItems['SUBSCRIPTION'] && 0 < $arItems['PRODUCT_IBLOCK_ID']) { $catalogID[$arItems['PRODUCT_IBLOCK_ID']] = true; if ('Y' == $strShowOffersIBlock) { $catalogID[$arItems['IBLOCK_ID']] = true; } } else { $catalogID[$arItems['IBLOCK_ID']] = true; } } $db_iblocks = CIBlock::GetList(array("ID" => "ASC"), array("ID" => array_keys($catalogID), 'ACTIVE' => 'Y'), false); while ($db_iblocks->ExtractFields("str_iblock_")) { $arLid[$str_iblock_ID] = $str_iblock_LID;
} else { $DB->Commit(); } } } if ($boolFlag && $boolCatalogUpdate) { $strOK .= Loc::getMessage('CAT_IBLOCK_CATALOG_SUCCESSFULLY_UPDATE') . '<br />'; } CAgent::RemoveAgent('CCatalog::PreGenerateXML("yandex");', 'catalog'); if ($bNeedAgent) { CAgent::AddAgent('CCatalog::PreGenerateXML("yandex");', 'catalog', 'N', (int) Option::get('catalog', 'yandex_xml_period') * 3600); } } if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['agent_start']) && !$bReadOnly && check_bitrix_sessid()) { CAgent::RemoveAgent('CCatalog::PreGenerateXML("yandex");', 'catalog'); $intCount = (int) CCatalog::GetList(array(), array('YANDEX_EXPORT' => 'Y'), array()); if ($intCount > 0) { CAgent::AddAgent('CCatalog::PreGenerateXML("yandex");', 'catalog', 'N', (int) Option::get('catalog', 'yandex_xml_period') * 3600); $strOK .= Loc::getMessage('CAT_AGENT_ADD_SUCCESS') . '. '; } else { $strWarning .= Loc::getMessage('CAT_AGENT_ADD_NO_EXPORT') . '. '; } } if (!empty($strWarning)) { CAdminMessage::ShowMessage($strWarning); } if (!empty($strOK)) { CAdminMessage::ShowNote($strOK); } $aTabs = array(array("DIV" => "edit5", "TAB" => Loc::getMessage("CO_TAB_5"), "ICON" => "catalog_settings", "TITLE" => Loc::getMessage("CO_TAB_5_TITLE")), array("DIV" => "edit1", "TAB" => Loc::getMessage("CO_TAB_1"), "ICON" => "catalog_settings", "TITLE" => Loc::getMessage("CO_TAB_1_TITLE")), array("DIV" => "edit2", "TAB" => Loc::getMessage("CO_TAB_2"), "ICON" => "catalog_settings", "TITLE" => Loc::getMessage("CO_TAB_2_TITLE"))); if ($USER->IsAdmin()) {
public static function _GetProductUrl($OF_ELEMENT_ID, $OF_IBLOCK_ID, $server_name = false, $arrType = false) { static $arIBlockCache = array(); static $arElementCache = array(); $product_url = ""; $OF_ELEMENT_ID = intval($OF_ELEMENT_ID); $OF_IBLOCK_ID = intval($OF_IBLOCK_ID); if ($arrType === "E" && $OF_IBLOCK_ID > 0 && $OF_ELEMENT_ID > 0 && CModule::IncludeModule("catalog")) { if (!array_key_exists($OF_IBLOCK_ID, $arIBlockCache)) { $rsProducts = CCatalog::GetList(array(), array('IBLOCK_ID' => $OF_IBLOCK_ID), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID')); $arIBlockCache[$OF_IBLOCK_ID] = $rsProducts->Fetch(); if (is_array($arIBlockCache[$OF_IBLOCK_ID])) { $arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK"] = CIBlock::GetArrayByID($arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK_ID"]); } } if (is_array($arIBlockCache[$OF_IBLOCK_ID])) { if (!array_key_exists($OF_ELEMENT_ID, $arElementCache)) { $OF_PROP_ID = $arIBlockCache[$OF_IBLOCK_ID]["SKU_PROPERTY_ID"]; $rsOffer = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $arIBlockCache[$OF_IBLOCK_ID]["IBLOCK_ID"], "=ID" => $OF_ELEMENT_ID), false, false, array("LANG_DIR", "PROPERTY_" . $OF_PROP_ID . ".ID", "PROPERTY_" . $OF_PROP_ID . ".CODE", "PROPERTY_" . $OF_PROP_ID . ".XML_ID", "PROPERTY_" . $OF_PROP_ID . ".IBLOCK_ID", "PROPERTY_" . $OF_PROP_ID . ".IBLOCK_SECTION_ID")); if ($arOffer = $rsOffer->Fetch()) { $arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_CODE"] = ''; if (intval($arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_ID"]) > 0) { $rsSections = CIBlockSection::GetByID($arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_ID"]); if ($arSection = $rsSections->Fetch()) { $arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_CODE"] = $arSection['CODE']; } } $arElementCache[$OF_ELEMENT_ID] = array("LANG_DIR" => $arOffer["LANG_DIR"], "ID" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_ID"], "ELEMENT_ID" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_ID"], "CODE" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_CODE"], "ELEMENT_CODE" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_CODE"], "EXTERNAL_ID" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_XML_ID"], "IBLOCK_TYPE_ID" => $arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK"]["IBLOCK_TYPE_ID"], "IBLOCK_ID" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_ID"], "IBLOCK_CODE" => $arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK"]["CODE"], "IBLOCK_EXTERNAL_ID" => $arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK"]["XML_ID"], "IBLOCK_SECTION_ID" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_ID"], "SECTION_CODE" => $arOffer["PROPERTY_" . $OF_PROP_ID . "_IBLOCK_SECTION_CODE"]); } } if (is_array($arElementCache[$OF_ELEMENT_ID])) { $product_url = CIBlock::ReplaceDetailUrl($arIBlockCache[$OF_IBLOCK_ID]["PRODUCT_IBLOCK"]["DETAIL_PAGE_URL"], $arElementCache[$OF_ELEMENT_ID], $server_name, $arrType); } } } return $product_url; }
public static function UnLinkSKUIBlock($ID) { global $APPLICATION; $arMsg = array(); $boolResult = true; $ID = (int) $ID; if (0 >= $ID) { $arMsg[] = array('id' => 'PRODUCT_IBLOCK_ID', 'text' => Loc::getMessage('BT_MOD_CATALOG_ERR_PRODUCT_ID_INVALID')); $boolResult = false; } if ($boolResult) { $rsCatalog = CCatalog::GetList(array(), array('PRODUCT_IBLOCK_ID' => $ID), false, false, array('IBLOCK_ID')); if ($arCatalog = $rsCatalog->Fetch()) { $arCatalog['IBLOCK_ID'] = (int) $arCatalog['IBLOCK_ID']; $arFields = array('PRODUCT_IBLOCK_ID' => 0, 'SKU_PROPERTY_ID' => 0); if (!CCatalog::Update($arCatalog['IBLOCK_ID'], $arFields)) { return false; } } } if (!$boolResult) { $obError = new CAdminException($arMsg); $APPLICATION->ResetException(); $APPLICATION->ThrowException($obError); } else { CCatalogSKU::ClearCache(); } return $boolResult; }
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) { die; } $module_id = "catalog"; if ($USER->CanDoOperation('catalog_read')) { if ($ex = $APPLICATION->GetException()) { require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php"; $strError = $ex->GetString(); ShowError($strError); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; die; } IncludeModuleLangFile(__FILE__); if (CModule::IncludeModule("catalog")) { $arIBlock = array(); $rsCatalog = CCatalog::GetList(array("sort" => "asc"), array('PRODUCT_IBLOCK_ID' => 0), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID')); while ($arr = $rsCatalog->Fetch()) { $arIBlock[$arr["IBLOCK_ID"]] = "[" . $arr["IBLOCK_ID"] . "] " . CIBlock::GetArrayByID($arr["IBLOCK_ID"], "NAME"); } $arUGroupsEx = array(); $dbUGroups = CGroup::GetList($by = "c_sort", $order = "asc"); while ($arUGroups = $dbUGroups->Fetch()) { $arUGroupsEx[$arUGroups["ID"]] = $arUGroups["NAME"]; } $arAllOptions = array(array("1CE_IBLOCK_ID", GetMessage("CAT_1CE_IBLOCK_ID"), "", array("list", $arIBlock)), array("1CE_ELEMENTS_PER_STEP", GetMessage("CAT_1CE_ELEMENTS_PER_STEP"), 1, array("text", 5)), array("1CE_INTERVAL", GetMessage("CAT_1CE_INTERVAL"), "30", array("text", 20)), array("1CE_GROUP_PERMISSIONS", GetMessage("CAT_1CE_GROUP_PERMISSIONS"), "-", array("mlist", 5, $arUGroupsEx)), array("1CE_USE_ZIP", GetMessage("CAT_1CE_USE_ZIP"), "Y", array("checkbox"))); if ($_SERVER['REQUEST_METHOD'] == "POST" && strlen($Update) > 0 && $USER->CanDoOperation('edit_php') && check_bitrix_sessid()) { for ($i = 0, $intCount = count($arAllOptions); $i < $intCount; $i++) { $name = $arAllOptions[$i][0]; $val = $_REQUEST[$name]; if ($arAllOptions[$i][3][0] == "checkbox" && $val != "Y") { $val = "N";
/** * * * * * * @param $intPropertyI $D ID свойства инфоблока. </ht * * * * @return mixed <p>Возвращает информацию о том, является ли свойство инфоблока * свойством привязки торговых предложений к товарам:</p> <ul> <li> * <b>false</b> - не является;</li> <li>Если является, то возвращается массив * следующего вида: <b>IBLOCK_ID</b> (ID инфоблока торговых предложений), * <b>PRODUCT_IBLOCK_ID</b> (ID инфоблока товаров), <b>SKU_PROPERTY_ID</b> (ID свойства * привязки торговых предложений к товарам).</li> </ul> <p>Начиная с * версии модуля <b>12.5.6</b>, возвращаемое значение метода кешируется в * течение хита.</p> <br><br> * * @static * @link http://dev.1c-bitrix.ru/api_help/catalog/classes/catalogsku/getinfobylinkproperty.php * @author Bitrix */ public static function GetInfoByLinkProperty($intPropertyID) { $intPropertyID = (int) $intPropertyID; if ($intPropertyID <= 0) { return false; } if (!isset(self::$arPropertyCache[$intPropertyID])) { self::$arPropertyCache[$intPropertyID] = false; $rsProducts = CCatalog::GetList(array(), array('SKU_PROPERTY_ID' => $intPropertyID), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID')); $arResult = $rsProducts->Fetch(); if (!empty($arResult)) { $arResult['IBLOCK_ID'] = (int) $arResult['IBLOCK_ID']; $arResult['PRODUCT_IBLOCK_ID'] = (int) $arResult['PRODUCT_IBLOCK_ID']; $arResult['SKU_PROPERTY_ID'] = (int) $arResult['SKU_PROPERTY_ID']; self::$arPropertyCache[$intPropertyID] = $arResult; } } else { $arResult = self::$arPropertyCache[$intPropertyID]; } return $arResult; }
//*****************************************// $arSelect = array("ID", "LID", "IBLOCK_ID", "IBLOCK_SECTION_ID", "ACTIVE", "NAME", "PREVIEW_PICTURE", "PREVIEW_TEXT", "PREVIEW_TEXT_TYPE", "DETAIL_PICTURE", "LANG_DIR", "DETAIL_PAGE_URL"); $strTmpCat = ""; $strTmpOff = ""; $arSiteServers = array(); $BASE_CURRENCY = CCurrency::GetBaseCurrency(); if ($arCurrency = CCurrency::GetByID('RUR')) $RUR = 'RUR'; else $RUR = 'RUB'; $db_catalog_list = CCatalog::GetList(array(), array("YANDEX_EXPORT" => "Y", "PRODUCT_IBLOCK_ID" => 0), false, false, array('IBLOCK_ID')); while ($arCatalog_list = $db_catalog_list->Fetch()) { $arCatalog_list['IBLOCK_ID'] = intval($arCatalog_list['IBLOCK_ID']); $arIBlock = CIBlock::GetArrayByID($arCatalog_list['IBLOCK_ID']); if (empty($arIBlock) || !is_array($arIBlock)) continue; if ('Y' != $arIBlock['ACTIVE']) continue; $boolRights = false; if ('E' != $arIBlock['RIGHTS_MODE']) { $arRights = CIBlock::GetGroupPermissions($arCatalog_list['IBLOCK_ID']); if (!empty($arRights) && isset($arRights[2]) && 'R' <= $arRights[2]) $boolRights = true; }
/** * @param array $arParams * @return array|false */ public static function GetProductData($arParams) { if (!isset($arParams['QUANTITY']) || (float)$arParams['QUANTITY'] <= 0) $arParams['QUANTITY'] = 0; $arParams['RENEWAL'] = (isset($arParams['RENEWAL']) && $arParams['RENEWAL'] == 'Y' ? 'Y' : 'N'); $arParams['CHECK_QUANTITY'] = (isset($arParams['CHECK_QUANTITY']) && $arParams["CHECK_QUANTITY"] == 'N' ? 'N' : 'Y'); $arParams['CHECK_PRICE'] = (isset($arParams['CHECK_PRICE']) && $arParams['CHECK_PRICE'] == 'N' ? 'N' : 'Y'); $arParams['CHECK_COUPONS'] = (isset($arParams['CHECK_COUPONS']) && $arParams['CHECK_COUPONS'] == 'N' ? 'N' : 'Y'); $arParams['CHECK_DISCOUNT'] = (isset($arParams['CHECK_DISCOUNT']) && $arParams['CHECK_DISCOUNT'] == 'N' ? 'N' : 'Y'); $arParams['BASKET_ID'] = (string)(isset($arParams['BASKET_ID']) ? $arParams['BASKET_ID'] : '0'); $arParams['USER_ID'] = (isset($arParams['USER_ID']) ? (int)$arParams['USER_ID'] : 0); if ($arParams['USER_ID'] < 0) $arParams['USER_ID'] = 0; $arParams['SITE_ID'] = (isset($arParams['SITE_ID']) ? $arParams['SITE_ID'] : false); $strSiteID = $arParams['SITE_ID']; if (isset($arParams['CURRENCY'])) $arParams['CURRENCY'] = CCurrency::checkCurrencyID($arParams['CURRENCY']); if ($arParams['CURRENCY'] === false) $arParams['CURRENCY'] = CSaleLang::GetLangCurrency($strSiteID ? $strSiteID : SITE_ID); $productID = (int)$arParams['PRODUCT_ID']; $quantity = (float)$arParams['QUANTITY']; $renewal = $arParams['RENEWAL']; $intUserID = (int)$arParams['USER_ID']; global $USER, $APPLICATION; $arResult = array(); static $arUserCache = array(); if (0 < $intUserID) { if (!isset($arUserCache[$intUserID])) { $by = 'ID'; $order = 'DESC'; $rsUsers = CUser::GetList($by, $order, array("ID_EQUAL_EXACT"=>$intUserID),array('FIELDS' => array('ID'))); if ($arUser = $rsUsers->Fetch()) { $arUser['ID'] = intval($arUser['ID']); $arUserCache[$arUser['ID']] = CUser::GetUserGroup($arUser['ID']); } else { $intUserID = 0; return $arResult; } } $dbIBlockElement = CIBlockElement::GetList( array(), array( "ID" => $productID, "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "CHECK_PERMISSIONS" => "N", ), false, false, array('ID', 'IBLOCK_ID', 'NAME', 'DETAIL_PAGE_URL') ); if(!($arProduct = $dbIBlockElement->GetNext())) return $arResult; if ('E' == CIBlock::GetArrayByID($arProduct['IBLOCK_ID'], "RIGHTS_MODE")) { $arUserRights = CIBlockElementRights::GetUserOperations($productID, $intUserID); if (empty($arUserRights)) { return $arResult; } elseif (!is_array($arUserRights) || !array_key_exists('element_read', $arUserRights)) { return $arResult; } } else { if ('R' > CIBlock::GetPermission($arProduct['IBLOCK_ID'], $intUserID)) { return $arResult; } } } else { $dbIBlockElement = CIBlockElement::GetList( array(), array( "ID" => $productID, "ACTIVE" => "Y", "ACTIVE_DATE" => "Y", "CHECK_PERMISSIONS" => "Y", "MIN_PERMISSION" => "R", ), false, false, array('ID', 'IBLOCK_ID', 'NAME', 'DETAIL_PAGE_URL') ); if(!($arProduct = $dbIBlockElement->GetNext())) return $arResult; } $rsCatalogs = CCatalog::GetList( array(), array('IBLOCK_ID' => $arProduct["IBLOCK_ID"]), false, false, array( 'IBLOCK_ID', 'SUBSCRIPTION' ) ); if (!($arCatalog = $rsCatalogs->Fetch())) { return $arResult; } if ('Y' == $arCatalog["SUBSCRIPTION"]) { $quantity = 1; } $dblQuantity = 0; $boolQuantity = false; $rsProducts = CCatalogProduct::GetList( array(), array('ID' => $productID), false, false, array( 'ID', 'CAN_BUY_ZERO', 'QUANTITY_TRACE', 'QUANTITY', 'WEIGHT', 'WIDTH', 'HEIGHT', 'LENGTH', 'BARCODE_MULTI', 'TYPE' ) ); if ($arCatalogProduct = $rsProducts->Fetch()) { $dblQuantity = doubleval($arCatalogProduct["QUANTITY"]); $boolQuantity = ('Y' != $arCatalogProduct["CAN_BUY_ZERO"] && 'Y' == $arCatalogProduct["QUANTITY_TRACE"]); if ($arParams["CHECK_QUANTITY"] == "Y" && $boolQuantity && 0 >= $dblQuantity) { $APPLICATION->ThrowException(Loc::getMessage("CATALOG_NO_QUANTITY_PRODUCT", array("#NAME#" => htmlspecialcharsbx($arProduct["~NAME"]))), "CATALOG_NO_QUANTITY_PRODUCT"); return $arResult; } } else { $APPLICATION->ThrowException(Loc::getMessage("CATALOG_ERR_NO_PRODUCT"), "CATALOG_NO_QUANTITY_PRODUCT"); return $arResult; } if ($arParams["CHECK_PRICE"] == "Y") { $strBasketProductID = $productID.'_'.$arParams['BASKET_ID']; $arCoupons = array(); if (0 < $intUserID) { if ('Y' == $arParams['CHECK_COUPONS']) $arCoupons = CCatalogDiscountCoupon::GetCouponsByManage($intUserID); CCatalogDiscountSave::SetDiscountUserID($intUserID); } else { if ('Y' == $arParams['CHECK_COUPONS']) $arCoupons = CCatalogDiscountCoupon::GetCoupons(); } $boolChangeCoupons = false; $arNewCoupons = array(); if (!empty($arCoupons) && is_array($arCoupons) && !empty(self::$arOneTimeCoupons)) { foreach ($arCoupons as $key => $coupon) { if (isset(self::$arOneTimeCoupons[$coupon])) { if (self::$arOneTimeCoupons[$coupon] == $strBasketProductID) { $boolChangeCoupons = true; $arNewCoupons[] = $coupon; } else { unset($arCoupons[$key]); } } } } if ($boolChangeCoupons) $arCoupons = $arNewCoupons; $userGroups = ($intUserID > 0 ? $arUserCache[$intUserID] : $USER->GetUserGroupArray()); $currentVatMode = CCatalogProduct::getPriceVatIncludeMode(); $currentUseDiscount = CCatalogProduct::getUseDiscount(); CCatalogProduct::setUseDiscount($arParams['CHECK_DISCOUNT'] == 'Y'); CCatalogProduct::setPriceVatIncludeMode(true); CCatalogProduct::setUsedCurrency($arParams['CURRENCY']); $arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $userGroups, $renewal, array(), (0 < $intUserID ? $strSiteID : false), $arCoupons); if (empty($arPrice)) { if ($nearestQuantity = CCatalogProduct::GetNearestQuantityPrice($productID, $quantity, $userGroups)) { $quantity = $nearestQuantity; $arPrice = CCatalogProduct::GetOptimalPrice($productID, $quantity, $userGroups, $renewal, array(), (0 < $intUserID ? $strSiteID : false), $arCoupons); } } CCatalogProduct::clearUsedCurrency(); CCatalogProduct::setPriceVatIncludeMode($currentVatMode); CCatalogProduct::setUseDiscount($currentUseDiscount); unset($userGroups, $currentUseDiscount, $currentVatMode); if (0 < $intUserID) { CCatalogDiscountSave::ClearDiscountUserID(); } if (empty($arPrice)) { return $arResult; } $arDiscountList = array(); if (!empty($arPrice["DISCOUNT_LIST"])) { foreach ($arPrice["DISCOUNT_LIST"] as &$arOneDiscount) { $arOneList = array( 'ID' => $arOneDiscount['ID'], 'NAME' => $arOneDiscount['NAME'], 'COUPON' => '', 'COUPON_TYPE' => '', 'MODULE_ID' => (isset($oneDiscount['MODULE_ID']) ? $oneDiscount['MODULE_ID'] : 'catalog'), 'TYPE' => $arOneDiscount['TYPE'], 'VALUE' => $arOneDiscount['VALUE'], 'VALUE_TYPE' => $arOneDiscount['VALUE_TYPE'], 'CURRENCY' => $arOneDiscount['CURRENCY'], 'HANDLERS' => (isset($arOneDiscount['HANDLERS']) ? $arOneDiscount['HANDLERS'] : array()) ); if ($arOneDiscount['COUPON']) { $arOneList['COUPON'] = $arOneDiscount['COUPON']; $arOneList['COUPON_TYPE'] = $arOneDiscount['COUPON_ONE_TIME']; if ($arOneDiscount['COUPON_ONE_TIME'] == CCatalogDiscountCoupon::TYPE_ONE_TIME) { self::$arOneTimeCoupons[$arOneDiscount['COUPON']] = $strBasketProductID; } } $arDiscountList[] = $arOneList; } unset($arOneList, $arOneDiscount); } if (empty($arPrice["PRICE"]["CATALOG_GROUP_NAME"])) { if (!empty($arPrice["PRICE"]["CATALOG_GROUP_ID"])) { $rsCatGroups = CCatalogGroup::GetListEx(array(),array('ID' => $arPrice["PRICE"]["CATALOG_GROUP_ID"]),false,false,array('ID','NAME','NAME_LANG')); if ($arCatGroup = $rsCatGroups->Fetch()) { $arPrice["PRICE"]["CATALOG_GROUP_NAME"] = (!empty($arCatGroup['NAME_LANG']) ? $arCatGroup['NAME_LANG'] : $arCatGroup['NAME']); } } } } else { $rsVAT = CCatalogProduct::GetVATInfo($productID); if ($arVAT = $rsVAT->Fetch()) { $vatRate = doubleval($arVAT['RATE'] * 0.01); } else { $vatRate = 0.0; } } $arResult = array( "NAME" => $arProduct["~NAME"], "CAN_BUY" => "Y", "DETAIL_PAGE_URL" => $arProduct['~DETAIL_PAGE_URL'], "BARCODE_MULTI" => $arCatalogProduct["BARCODE_MULTI"], "WEIGHT" => floatval($arCatalogProduct['WEIGHT']), "DIMENSIONS" => serialize(array( "WIDTH" => $arCatalogProduct["WIDTH"], "HEIGHT" => $arCatalogProduct["HEIGHT"], "LENGTH" => $arCatalogProduct["LENGTH"] )), "TYPE" => ($arCatalogProduct["TYPE"] == CCatalogProduct::TYPE_SET) ? CCatalogProductSet::TYPE_SET : NULL ); if ($arParams["CHECK_QUANTITY"] == "Y") $arResult["QUANTITY"] = ($boolQuantity && $dblQuantity < $quantity) ? $dblQuantity : $quantity; else $arResult["QUANTITY"] = $arParams["QUANTITY"]; if ($arParams["CHECK_QUANTITY"] == "Y" && $boolQuantity && $dblQuantity < $quantity) $APPLICATION->ThrowException(Loc::getMessage("CATALOG_QUANTITY_NOT_ENOGH", array("#NAME#" => htmlspecialcharsbx($arProduct["~NAME"]), "#CATALOG_QUANTITY#" => $arCatalogProduct["QUANTITY"], "#QUANTITY#" => $quantity)), "CATALOG_QUANTITY_NOT_ENOGH"); if ($arParams["CHECK_PRICE"] == "Y") { $arResult = array_merge($arResult, array( "PRODUCT_PRICE_ID" => $arPrice["PRICE"]["ID"], 'BASE_PRICE' => $arPrice['RESULT_PRICE']['BASE_PRICE'], "PRICE" => $arPrice['RESULT_PRICE']['DISCOUNT_PRICE'], "CURRENCY" => $arPrice['RESULT_PRICE']['CURRENCY'], "DISCOUNT_PRICE" => $arPrice['RESULT_PRICE']['DISCOUNT'], "NOTES" => $arPrice["PRICE"]["CATALOG_GROUP_NAME"], "VAT_RATE" => $arPrice["PRICE"]["VAT_RATE"], "DISCOUNT_VALUE" => ($arPrice['RESULT_PRICE']['PERCENT'] > 0 ? $arPrice['RESULT_PRICE']['PERCENT'].'%' : 0), "DISCOUNT_NAME" => '', "DISCOUNT_COUPON" => '', "DISCOUNT_LIST" => array() )); if (!empty($arDiscountList)) { $arResult['DISCOUNT_LIST'] = $arDiscountList; $arResult["DISCOUNT_NAME"] = "[".$arPrice["DISCOUNT"]["ID"]."] ".$arPrice["DISCOUNT"]["NAME"]; if (!empty($arPrice["DISCOUNT"]["COUPON"])) { $arResult["DISCOUNT_COUPON"] = $arPrice["DISCOUNT"]["COUPON"]; } } } else { $arResult["VAT_RATE"] = $vatRate; } return $arResult; }
public static function OnAdminListDisplayHandler(&$list) { $strCurPage = $GLOBALS['APPLICATION']->GetCurPage(); $bElemPage = $strCurPage == '/bitrix/admin/iblock_element_admin.php' || $strCurPage == '/bitrix/admin/cat_product_admin.php'; $bSectPage = $strCurPage == '/bitrix/admin/iblock_section_admin.php' || $strCurPage == '/bitrix/admin/cat_section_admin.php'; $bMixPage = $strCurPage == '/bitrix/admin/iblock_list_admin.php'; $bRightPage = $bElemPage || $bSectPage || $bMixPage; if ($bRightPage && !empty($list->arActions)) { CJSCore::Init(array('asd_iblock')); $strSomeScripts = '<script type="text/javascript">sListTable = \'' . $list->table_id . '\';</script>'; $list->arActions['asd_checkbox_manager'] = array('type' => 'html', 'value' => $strSomeScripts); } if ($bMixPage || $strCurPage == '/bitrix/admin/iblock_element_admin.php' || $strCurPage == '/bitrix/admin/iblock_section_admin.php') { $list->context->additional_items[] = array('TEXT' => GetMessage('ASD_IBLOCK_SETT_SECT_MODE'), 'TITLE' => GetMessage('ASD_IBLOCK_SETT_SECT_MODE_TITLE'), 'GLOBAL_ICON' => 'adm-menu-setting', 'ONCLICK' => "location.href='" . htmlspecialcharsbx($GLOBALS['APPLICATION']->GetCurPageParam('action=asd_reverse&' . bitrix_sessid_get(), array('action'))) . "'"); } if ($bRightPage && CModule::IncludeModule('iblock')) { if (strlen(CASDiblock::$error)) { $message = new CAdminMessage(array('TYPE' => 'ERROR', 'MESSAGE' => CASDiblock::$error)); echo $message->Show(); } $lAdmin = new CAdminList($list->table_id, $list->sort); $IBLOCK_ID = intval($_REQUEST['IBLOCK_ID']); $find_section = intval($_REQUEST['find_section_section']); if ($find_section < 0) { $find_section = 0; } $boolSectionCopy = CASDIblockRights::IsSectionSectionCreate($IBLOCK_ID, $find_section); $boolElementCopy = CASDIblockRights::IsSectionElementCreate($IBLOCK_ID, $find_section); $copyMessageId = 'ASD_ACTION_POPUP_COPY'; $copyContextMessageId = 'ASD_ACTION_COPY'; $moveContextMessageId = 'ASD_ACTION_MOVE'; if (CModule::IncludeModule('catalog')) { $productIBlock = CCatalog::GetList(array(), array('PRODUCT_IBLOCK_ID' => $IBLOCK_ID), false, false, array('IBLOCK_ID'))->Fetch(); if (!empty($productIBlock)) { $copyMessageId = 'ASD_ACTION_POPUP_COPY_WITHOUT_SKU'; $copyContextMessageId = 'ASD_ACTION_COPY_WITHOUT_SKU'; $moveContextMessageId = 'ASD_ACTION_MOVE_WITHOUT_SKU'; } unset($productIBlock); } if ($bElemPage) { if ($boolElementCopy) { foreach ($list->aRows as $id => $v) { $arnewActions = array(); foreach ($v->aActions as $i => $act) { $arnewActions[] = $act; if ($act['ICON'] == 'copy') { $arnewActions[] = array('ICON' => 'copy', 'TEXT' => GetMessage($copyMessageId), 'ACTION' => $lAdmin->ActionDoGroup($v->id, 'asd_copy_in_list', '&type=' . urlencode($_REQUEST['type']) . '&lang=' . LANGUAGE_ID . '&IBLOCK_ID=' . $IBLOCK_ID . '&find_section_section=' . $find_section)); } } $v->aActions = $arnewActions; } } } elseif ($bSectPage) { if ($boolSectionCopy) { foreach ($list->aRows as $id => $v) { $arnewActions = array(); foreach ($v->aActions as $i => $act) { $arnewActions[] = $act; if ($act['ICON'] == 'edit') { $arnewActions[] = array('ICON' => 'copy', 'TEXT' => GetMessage('ASD_ACTION_POPUP_COPY'), 'ACTION' => $lAdmin->ActionDoGroup($v->id, 'asd_copy_in_list', '&type=' . urlencode($_REQUEST['type']) . '&lang=' . LANGUAGE_ID . '&IBLOCK_ID=' . $IBLOCK_ID . '&find_section_section=' . $find_section)); } } $v->aActions = $arnewActions; } } } else { foreach ($list->aRows as $id => $v) { $strPrefix = substr($v->id, 0, 1); if ($strPrefix == 'E') { if ($boolElementCopy) { $arnewActions = array(); foreach ($v->aActions as $i => $act) { $arnewActions[] = $act; if ($act['ICON'] == 'copy') { $arnewActions[] = array('ICON' => 'copy', 'TEXT' => GetMessage($copyMessageId), 'ACTION' => $lAdmin->ActionDoGroup($v->id, 'asd_copy_in_list', '&type=' . urlencode($_REQUEST['type']) . '&IBLOCK_ID=' . $IBLOCK_ID . '&find_section_section=' . $find_section)); } } $v->aActions = $arnewActions; } } elseif ($strPrefix == 'S') { if ($boolSectionCopy) { $arnewActions = array(); foreach ($v->aActions as $i => $act) { $arnewActions[] = $act; if ($act['ICON'] == 'edit') { $arnewActions[] = array('ICON' => 'copy', 'TEXT' => GetMessage('ASD_ACTION_POPUP_COPY'), 'ACTION' => $lAdmin->ActionDoGroup($v->id, 'asd_copy_in_list', '&type=' . urlencode($_REQUEST['type']) . '&lang=' . LANGUAGE_ID . '&IBLOCK_ID=' . $IBLOCK_ID . '&find_section_section=' . $find_section)); } } $v->aActions = $arnewActions; } } } } $arIBtypes = array(); $rsIBtype = CIBlockType::GetList(); while ($arIBtype = $rsIBtype->Fetch()) { if ($arIBTypeLang = CIBlockType::GetByIDLang($arIBtype['ID'], LANGUAGE_ID)) { $arIBtypes[$arIBTypeLang['IBLOCK_TYPE_ID']] = $arIBTypeLang['NAME']; } } $arIBblocks = array(); $rsIB = CIBlock::GetList(); while ($arIB = $rsIB->GetNext(true, false)) { if (!isset($arIBblocks[$arIB['IBLOCK_TYPE_ID']])) { $arIBblocks[$arIB['IBLOCK_TYPE_ID']] = array('NAME' => $arIBtypes[$arIB['IBLOCK_TYPE_ID']], 'ITEMS' => array()); } $arIBblocks[$arIB['IBLOCK_TYPE_ID']]['ITEMS'][] = array('ID' => $arIB['ID'], 'NAME' => $arIB['NAME']); } $boolAccess = false; $strIBlocksCp = '<div id="asd_ib_dest_cont" style="display:none; "><select class="typeselect" name="asd_ib_dest" id="asd_ib_dest">'; foreach ($arIBblocks as &$arType) { $strIBlocksCpGr = ''; foreach ($arType['ITEMS'] as &$arIB) { if (CASDIblockRights::IsIBlockDisplay($arIB['ID'])) { $boolAccess = true; $strIBlocksCpGr .= '<option value="' . $arIB['ID'] . '">' . $arIB['NAME'] . '</option>'; } } if (isset($arIB)) { unset($arIB); } if ($strIBlocksCpGr != '') { $strIBlocksCp .= '<optgroup label="' . $arType['NAME'] . '">'; $strIBlocksCp .= $strIBlocksCpGr; $strIBlocksCp .= '</optgroup>'; } } if (isset($arType)) { unset($arType); } $strIBlocksCp .= '</select></div>'; $strSectionSelect = '<div id="asd_ib_dest_sect" class="asd-sect-cont" style="display:none;" title="' . htmlspecialcharsbx(GetMessage('ASD_SELECT_SECTION_DESCR')) . '">' . htmlspecialcharsex(GetMessage('ASD_SELECT_SECTION')) . ' <input class="asd-sect-input" type="text" id="asd_sect_id" value="" name="asd_sect_dest" size="4" title="">' . '<span id="sp_asd_sect_id" class="asd-sect-descr"></span>' . '<input type="button" onclick="ASDSelIBShow(\'' . LANGUAGE_ID . '\');" value="' . htmlspecialcharsbx(GetMessage('ASD_SELECT_BUTTON')) . '" title="' . htmlspecialcharsbx(GetMessage('ASD_SELECT_BUTTON_DESCR')) . '"></div>'; if (CASDIblockRights::IsSectionElementEdit($IBLOCK_ID, $find_section) && ($bElemPage || $bMixPage)) { $list->arActions['asd_remove'] = GetMessage('ASD_ACTION_REMOVE'); } if ($boolAccess) { $list->arActions['asd_copy'] = GetMessage($copyContextMessageId); if ($bElemPage || $bMixPage) { $list->arActions['asd_move'] = GetMessage($moveContextMessageId); } $list->arActions['asd_copy_move'] = array('type' => 'html', 'value' => $strIBlocksCp); $list->arActions['asd_copy_move_sect'] = array('type' => 'html', 'value' => $strSectionSelect); $list->arActionsParams['select_onchange'] .= "ASDSelIBChange(this.value);"; } } }
public static function GetControls($strControlID = false) { $arControlList = array(); $arIBlockList = array(); $rsIBlocks = CCatalog::GetList(array(), array(), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID')); while ($arIBlock = $rsIBlocks->Fetch()) { $arIBlock['IBLOCK_ID'] = (int)$arIBlock['IBLOCK_ID']; $arIBlock['PRODUCT_IBLOCK_ID'] = (int)$arIBlock['PRODUCT_IBLOCK_ID']; if ($arIBlock['IBLOCK_ID'] > 0) $arIBlockList[$arIBlock['IBLOCK_ID']] = true; if ($arIBlock['PRODUCT_IBLOCK_ID'] > 0) $arIBlockList[$arIBlock['PRODUCT_IBLOCK_ID']] = true; } unset($arIBlock, $rsIBlocks); if (!empty($arIBlockList)) { $arIBlockList = array_keys($arIBlockList); sort($arIBlockList); foreach ($arIBlockList as &$intIBlockID) { $strName = CIBlock::GetArrayByID($intIBlockID, 'NAME'); if (false !== $strName) { $boolSep = true; $rsProps = CIBlockProperty::GetList(array('SORT' => 'ASC', 'NAME' => 'ASC'), array('IBLOCK_ID' => $intIBlockID)); while ($arProp = $rsProps->Fetch()) { if ('CML2_LINK' == $arProp['XML_ID'] || 'F' == $arProp['PROPERTY_TYPE']) continue; if ('L' == $arProp['PROPERTY_TYPE']) { $arProp['VALUES'] = array(); $rsPropEnums = CIBlockPropertyEnum::GetList(array('DEF' => 'DESC', 'SORT' => 'ASC'), array('PROPERTY_ID' => $arProp['ID'])); while ($arPropEnum = $rsPropEnums->Fetch()) { $arProp['VALUES'][] = $arPropEnum; } if (empty($arProp['VALUES'])) continue; } $strFieldType = ''; $arLogic = array(); $arValue = array(); $arPhpValue = ''; $boolUserType = false; if (isset($arProp['USER_TYPE']) && !empty($arProp['USER_TYPE'])) { switch ($arProp['USER_TYPE']) { case 'DateTime': $strFieldType = 'datetime'; $arLogic = static::GetLogic(array(BT_COND_LOGIC_EQ, BT_COND_LOGIC_NOT_EQ, BT_COND_LOGIC_GR, BT_COND_LOGIC_LS, BT_COND_LOGIC_EGR, BT_COND_LOGIC_ELS)); $arValue = array( 'type' => 'datetime', 'format' => 'datetime' ); $boolUserType = true; break; default: $boolUserType = false; break; } } if (!$boolUserType) { switch ($arProp['PROPERTY_TYPE']) { case 'N': $strFieldType = 'double'; $arLogic = static::GetLogic(array(BT_COND_LOGIC_EQ, BT_COND_LOGIC_NOT_EQ, BT_COND_LOGIC_GR, BT_COND_LOGIC_LS, BT_COND_LOGIC_EGR, BT_COND_LOGIC_ELS)); $arValue = array('type' => 'input'); break; case 'S': $strFieldType = 'text'; $arLogic = static::GetLogic(array(BT_COND_LOGIC_EQ, BT_COND_LOGIC_NOT_EQ, BT_COND_LOGIC_CONT, BT_COND_LOGIC_NOT_CONT)); $arValue = array('type' => 'input'); break; case 'L': $strFieldType = 'int'; $arLogic = static::GetLogic(array(BT_COND_LOGIC_EQ, BT_COND_LOGIC_NOT_EQ)); $arValue = array( 'type' => 'select', 'values' => array() ); foreach ($arProp['VALUES'] as &$arOnePropValue) { $arValue['values'][$arOnePropValue['ID']] = $arOnePropValue['VALUE']; } if (isset($arOnePropValue)) unset($arOnePropValue); break; $arPhpValue = array('VALIDATE' => 'list'); case 'E': $strFieldType = 'int'; $arLogic = static::GetLogic(array(BT_COND_LOGIC_EQ, BT_COND_LOGIC_NOT_EQ)); $arValue = array( 'type' => 'popup', 'popup_url' => '/bitrix/admin/iblock_element_search.php', 'popup_params' => array( 'lang' => LANGUAGE_ID, 'IBLOCK_ID' => $arProp['LINK_IBLOCK_ID'], 'discount' => 'Y' ), 'param_id' => 'n' ); $arPhpValue = array('VALIDATE' => 'element'); break; case 'G': $strFieldType = 'int'; $arLogic = static::GetLogic(array(BT_COND_LOGIC_EQ, BT_COND_LOGIC_NOT_EQ)); $arValue = array( 'type' => 'popup', 'popup_url' => '/bitrix/admin/cat_section_search.php', 'popup_params' => array( 'lang' => LANGUAGE_ID, 'IBLOCK_ID' => $arProp['LINK_IBLOCK_ID'], 'discount' => 'Y' ), 'param_id' => 'n' ); $arPhpValue = array('VALIDATE' => 'section'); break; } } $arControlList["CondIBProp:".$intIBlockID.':'.$arProp['ID']] = array( "ID" => "CondIBProp:".$intIBlockID.':'.$arProp['ID'], "IBLOCK_ID" => $intIBlockID, "FIELD" => "PROPERTY_".$arProp['ID']."_VALUE", "FIELD_TYPE" => $strFieldType, 'MULTIPLE' => 'Y', 'GROUP' => 'N', 'SEP' => ($boolSep ? 'Y' : 'N'), 'SEP_LABEL' => ($boolSep ? str_replace(array('#ID#', '#NAME#'), array($intIBlockID, $strName), Loc::getMessage('BT_MOD_CATALOG_COND_CMP_CATALOG_PROP_LABEL')) : ''), 'LABEL' => $arProp['NAME'], 'PREFIX' => str_replace(array('#NAME#', '#IBLOCK_ID#', '#IBLOCK_NAME#'), array($arProp['NAME'], $intIBlockID, $strName), Loc::getMessage('BT_MOD_CATALOG_COND_CMP_CATALOG_ONE_PROP_PREFIX')), 'LOGIC' => $arLogic, 'JS_VALUE' => $arValue, 'PHP_VALUE' => $arPhpValue ); $boolSep = false; } } } if (isset($intIBlockID)) unset($intIBlockID); unset($arIBlockList); } if ($strControlID === false) { return $arControlList; } elseif (isset($arControlList[$strControlID])) { return $arControlList[$strControlID]; } else { return false; } }
return str_replace(", #", "", $str); } } $arColumns = array("NAME" => GetMessage("SBB_BNAME"), "DISCOUNT_FORMATED" => GetMessage("SBB_BDISCOUNT"), "WEIGHT_FORMATED" => GetMessage("SBB_BWEIGHT"), "TYPE" => GetMessage("SBB_BTYPE"), "PRICE_FORMATED" => GetMessage("SBB_BPRICE"), "QUANTITY_FORMATED" => GetMessage("SBB_BQUANTITY")); if (CModule::IncludeModule("catalog")) { // get iblock props from all catalog iblocks including sku iblocks $arIblockIDs = array(); $arIblockNames = array(); $catalogFilter = array(); if (array_key_exists('src_site', $_REQUEST)) { $siteID = $_REQUEST['src_site']; if ($siteID !== '' && preg_match('/^[a-z0-9_]{2}$/i', $siteID) === 1) { $catalogFilter = array('LID' => $siteID); } } $dbCatalog = CCatalog::GetList(array(), $catalogFilter); while ($arCatalog = $dbCatalog->GetNext()) { $arIblockIDs[] = $arCatalog["IBLOCK_ID"]; $arIblockNames[$arCatalog["IBLOCK_ID"]] = $arCatalog["NAME"]; } // iblock props $arProps = array(); $arPropNameCodeCount = array(); foreach ($arIblockIDs as $iblockID) { $dbProps = CIBlockProperty::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array("IBLOCK_ID" => $iblockID, "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "N")); while ($arProp = $dbProps->GetNext()) { $arProps[] = $arProp; if (isset($arProp["NAME"])) { $arPropNameCodeCount[$arProp["NAME"]][$arProp["CODE"]]++; } }
?> <tr> <td width="40%"><?php echo GetMessage('CET_SELECT_IBLOCK_EXT'); ?> </td> <td width="60%"><?php $arIBlockIDs = array(); $rsCatalogs = CCatalog::GetList(array(), array('!PRODUCT_IBLOCK_ID' => 0), false, false, array('PRODUCT_IBLOCK_ID')); while ($arCatalog = $rsCatalogs->Fetch()) { $arCatalog['PRODUCT_IBLOCK_ID'] = (int) $arCatalog['PRODUCT_IBLOCK_ID']; if ($arCatalog['PRODUCT_IBLOCK_ID'] > 0) { $arIBlockIDs[$arCatalog['PRODUCT_IBLOCK_ID']] = true; } } $rsCatalogs = CCatalog::GetList(array(), array('PRODUCT_IBLOCK_ID' => 0), false, false, array('IBLOCK_ID')); while ($arCatalog = $rsCatalogs->Fetch()) { $arCatalog['IBLOCK_ID'] = (int) $arCatalog['IBLOCK_ID']; if ($arCatalog['IBLOCK_ID'] > 0) { $arIBlockIDs[$arCatalog['IBLOCK_ID']] = true; } } if (empty($arIBlockIDs)) { $arIBlockIDs[-1] = true; } echo GetIBlockDropDownListEx($IBLOCK_ID, 'IBLOCK_TYPE_ID', 'IBLOCK_ID', array('ID' => array_keys($arIBlockIDs), 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'Y', 'MIN_PERMISSION' => 'W'), "ClearSelected(); BX('id_ifr').src='/bitrix/tools/catalog_export/yandex_util.php?IBLOCK_ID=0&'+'" . bitrix_sessid_get() . "';", "ClearSelected(); BX('id_ifr').src='/bitrix/tools/catalog_export/yandex_util.php?IBLOCK_ID='+this[this.selectedIndex].value+'&'+'" . bitrix_sessid_get() . "';", 'class="adm-detail-iblock-types"', 'class="adm-detail-iblock-list"'); ?> <script type="text/javascript"> var TreeSelected = []; <?php $intCountSelected = 0;
<td colspan="2"><? if (!isset($YANDEX_EXPORT) || !is_array($YANDEX_EXPORT)) { $YANDEX_EXPORT = array(); } $arYandexKeys = array(); if (!empty($YANDEX_EXPORT)) $arYandexKeys = array_fill_keys($YANDEX_EXPORT, true); $boolAll = false; $intCountChecked = 0; $intCountAvailIBlock = 0; $arIBlockIDs = array(); $rsCatalogs = CCatalog::GetList( array(), array(), false, false, array('IBLOCK_ID') ); while ($arCatalog = $rsCatalogs->Fetch()) { $arIBlockIDs[] = intval($arCatalog['IBLOCK_ID']); } if (empty($arIBlockIDs)) $arIBlockIDs[] = -1; $arIBlockList = array(); $db_res = CIBlock::GetList( array("IBLOCK_TYPE"=>"ASC", "NAME"=>"ASC"), array('ID' => $arIBlockIDs, 'ACTIVE' => 'Y', 'CHECK_PERMISSIONS' => 'Y', 'MIN_PERMISSION' => 'W') ); while ($res = $db_res->Fetch())
function Init($fp, $IBLOCK_ID, $next_step, $bExtended = false, $work_dir = false, $file_dir = false, $bCheckPermissions = true, $PRODUCT_IBLOCK_ID = false) { $this->fp = $fp; $this->IBLOCK_ID = intval($IBLOCK_ID); $this->bExtended = $bExtended; $this->work_dir = $work_dir; $this->file_dir = $file_dir; $this->next_step = $next_step; $this->only_price = false; $this->download_files = true; $this->PRODUCT_IBLOCK_ID = intval($PRODUCT_IBLOCK_ID); $arFilter = array("ID" => $this->IBLOCK_ID, "MIN_PERMISSION" => "W"); if (!$bCheckPermissions) { $arFilter["CHECK_PERMISSIONS"] = "N"; } $rsIBlock = CIBlock::GetList(array(), $arFilter); if (($this->arIBlock = $rsIBlock->Fetch()) && $this->arIBlock["ID"] == $this->IBLOCK_ID) { $this->next_step["catalog"] = CModule::IncludeModule('catalog'); if ($this->next_step["catalog"]) { $rs = CCatalog::GetList(array(), array("IBLOCK_ID" => $this->arIBlock["ID"])); if ($rs->Fetch()) { $this->next_step["catalog"] = true; $this->prices = array(); $rsPrice = CCatalogGroup::GetList(array(), array()); while ($arPrice = $rsPrice->Fetch()) { $this->prices[$arPrice["ID"]] = $arPrice["NAME"]; } } else { $this->next_step["catalog"] = false; } } return true; } else { return false; } }
public function GetDiscountForProduct($arProduct, $arParams = false) { global $DB; $arResult = array(); $arResultID = array(); if (is_array($arProduct) && !empty($arProduct)) { if (!is_array($arParams)) { $arParams = array(); } if (!isset($arProduct['ID'])) { $arProduct['ID'] = 0; } $arProduct['ID'] = intval($arProduct['ID']); if (!isset($arProduct['IBLOCK_ID'])) { $arProduct['IBLOCK_ID'] = 0; } $arProduct['IBLOCK_ID'] = intval($arProduct['IBLOCK_ID']); if (0 >= $arProduct['IBLOCK_ID']) { return $arResult; } $arFieldsParams = array(); if (isset($arParams['TIME_ZONE'])) { $arFieldsParams['TIME_ZONE'] = $arParams['TIME_ZONE']; } if (isset($arParams['PRODUCT'])) { $arFieldsParams['PRODUCT'] = $arParams['PRODUCT']; } $boolGenerate = false; $arSelect = array("ID", "SITE_ID", "SORT", "NAME", "VALUE_TYPE", "VALUE", "CURRENCY", 'UNPACK'); if (isset($arParams['DISCOUNT_FIELDS']) && is_array($arParams['DISCOUNT_FIELDS']) && !empty($arParams['DISCOUNT_FIELDS'])) { $arSelect = $arParams['DISCOUNT_FIELDS']; } if (!in_array('UNPACK', $arSelect)) { $arSelect[] = 'UNPACK'; } $strDate = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL"))); if (isset($arParams['CURRENT_DATE'])) { $strDate = $arParams['CURRENT_DATE']; } $strRenewal = 'N'; if (isset($arParams['RENEWAL'])) { $strRenewal = $arParams['RENEWAL']; } else { $rsCatalogs = CCatalog::GetList(array(), array('ID' => $arProduct['IBLOCK_ID']), false, false, array('ID', 'SUBSCRIPTION')); if ($arCatalog = $rsCatalogs->Fetch()) { $strRenewal = $arCatalog['SUBSCRIPTION']; } } if ('Y' != $strRenewal) { $strRenewal = 'N'; } $arSiteList = array(); if (isset($arParams['SITE_ID'])) { if (!is_array($arParams['SITE_ID'])) { $arParams['SITE_ID'] = array($arParams['SITE_ID']); } if (!empty($arParams['SITE_ID'])) { $arSiteList = $arParams['SITE_ID']; } } if (empty($arSiteList)) { $rsIBlockSites = CIBlock::GetSite($arProduct['IBLOCK_ID']); while ($arIBlockSite = $rsIBlockSites->Fetch()) { $arSiteList[] = $arIBlockSite['SITE_ID']; } } $arFilter = array("SITE_ID" => $arSiteList, "TYPE" => DISCOUNT_TYPE_STANDART, "ACTIVE" => "Y", "RENEWAL" => $strRenewal, "+<=ACTIVE_FROM" => $strDate, "+>=ACTIVE_TO" => $strDate, 'COUPON' => ''); $rsPriceDiscounts = CCatalogDiscount::GetList(array(), $arFilter, false, false, $arSelect); while ($arPriceDiscount = $rsPriceDiscounts->Fetch()) { if ($arPriceDiscount['COUPON_ACTIVE'] != 'N') { if (!$boolGenerate) { if (!self::__GenerateFields($arProduct, $arFieldsParams)) { return $arResult; } $boolGenerate = true; } if (CCatalogDiscount::__Unpack($arProduct, $arPriceDiscount['UNPACK'])) { unset($arPriceDiscount['UNPACK']); $arResult[] = $arPriceDiscount; $arResultID[] = $arPriceDiscount['ID']; } } } if (isset($arParams['SKU']) && 'Y' == $arParams['SKU']) { if (isset($arParams['SKU_PARAMS']) && is_array($arParams['SKU_PARAMS']) && !empty($arParams['SKU_PARAMS'])) { $arSKU = $arParams['SKU_PARAMS']; } else { $arSKU = CCatalogSKU::GetInfoByOfferIBlock($arProduct['IBLOCK_ID']); } if (is_array($arSKU)) { $arParent = array(); $arParent['ID'] = 0; $arParent['IBLOCK_ID'] = $arSKU['PRODUCT_IBLOCK_ID']; if (isset($arProduct['PROPERTY_' . $arSKU['SKU_PROPERTY_ID'] . '_VALUE']) && is_array($arProduct['PROPERTY_' . $arSKU['SKU_PROPERTY_ID'] . '_VALUE'])) { $intParentID = intval(current($arProduct['PROPERTY_' . $arSKU['SKU_PROPERTY_ID'] . '_VALUE'])); if (0 < $intParentID) { $arParent['ID'] = $intParentID; } } $arParentParams = array(); if (isset($arParams['TIME_ZONE'])) { $arParentParams['TIME_ZONE'] = $arParams['TIME_ZONE']; } if (isset($arParams['DISCOUNT_FIELDS'])) { $arParentParams['DISCOUNT_FIELDS'] = $arParams['DISCOUNT_FIELDS']; } $arParentParams['RENEWAL'] = $strRenewal; $arParentParams['SITE_ID'] = $arSiteList; $arParentParams['CURRENT_DATE'] = $strDate; $arDiscountParent = self::GetDiscountForProduct($arParent, $arParentParams); if (!empty($arDiscountParent)) { if (empty($arResult)) { $arResult = $arDiscountParent; } else { foreach ($arDiscountParent as &$arOneParentDiscount) { if (in_array($arOneParentDiscount['ID'], $arResultID)) { continue; } $arResult[] = $arOneParentDiscount; $arResultID[] = $arOneParentDiscount['ID']; } if (isset($arOneParentDiscount)) { unset($arOneParentDiscount); } } } } } } return $arResult; }
die; } $module_id = "catalog"; if ($USER->CanDoOperation('catalog_read')) { include_once $GLOBALS["DOCUMENT_ROOT"] . "/bitrix/modules/catalog/include.php"; if ($ex = $APPLICATION->GetException()) { require $DOCUMENT_ROOT . "/bitrix/modules/main/include/prolog_admin_after.php"; $strError = $ex->GetString(); ShowError($strError); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php"; die; } IncludeModuleLangFile(__FILE__); if (CModule::IncludeModule("iblock") && CModule::IncludeModule("catalog")) { $arIBlock = array(); $rsCatalog = CCatalog::GetList(array("sort" => "asc")); while ($arr = $rsCatalog->Fetch()) { if (!$arr["PRODUCT_IBLOCK_ID"]) { $arIBlock[$arr["IBLOCK_ID"]] = "[" . $arr["IBLOCK_ID"] . "] " . CIBlock::GetArrayByID($arr["IBLOCK_ID"], "NAME"); } } $arUGroupsEx = array(); $dbUGroups = CGroup::GetList($by = "c_sort", $order = "asc"); while ($arUGroups = $dbUGroups->Fetch()) { $arUGroupsEx[$arUGroups["ID"]] = $arUGroups["NAME"]; } $arAllOptions = array(array("1CE_IBLOCK_ID", GetMessage("CAT_1CE_IBLOCK_ID"), "", array("list", $arIBlock)), array("1CE_ELEMENTS_PER_STEP", GetMessage("CAT_1CE_ELEMENTS_PER_STEP"), 1, array("text", 5)), array("1CE_INTERVAL", GetMessage("CAT_1CE_INTERVAL"), "30", array("text", 20)), array("1CE_GROUP_PERMISSIONS", GetMessage("CAT_1CE_GROUP_PERMISSIONS"), "-", array("mlist", 5, $arUGroupsEx)), array("1CE_USE_ZIP", GetMessage("CAT_1CE_USE_ZIP"), "Y", array("checkbox"))); if ($REQUEST_METHOD == "POST" && strlen($Update) > 0 && $USER->CanDoOperation('edit_php')) { for ($i = 0; $i < count($arAllOptions); $i++) { $name = $arAllOptions[$i][0]; $val = $_REQUEST[$name];
public static function getIblocksIds() { if (!\Bitrix\Main\Loader::includeModule('catalog')) { throw new SystemException('Module catalog is not installed'); } $arIBlockIDs = array(); $rsCatalogs = \CCatalog::GetList(array(), array('!PRODUCT_IBLOCK_ID' => 0), false, false, array('PRODUCT_IBLOCK_ID')); while ($arCatalog = $rsCatalogs->Fetch()) { $arCatalog['PRODUCT_IBLOCK_ID'] = intval($arCatalog['PRODUCT_IBLOCK_ID']); if (0 < $arCatalog['PRODUCT_IBLOCK_ID']) { $arIBlockIDs[$arCatalog['PRODUCT_IBLOCK_ID']] = true; } } $rsCatalogs = \CCatalog::GetList(array(), array('PRODUCT_IBLOCK_ID' => 0), false, false, array('IBLOCK_ID')); while ($arCatalog = $rsCatalogs->Fetch()) { $arCatalog['IBLOCK_ID'] = intval($arCatalog['IBLOCK_ID']); if (0 < $arCatalog['IBLOCK_ID']) { $arIBlockIDs[$arCatalog['IBLOCK_ID']] = true; } } if (empty($arIBlockIDs)) { $arIBlockIDs[-1] = true; } return $arIBlockIDs; }
protected function getIblockList() { if ($this->iblockList === null) { $this->iblockList = array(); $ids = array(); $filter = array(); if ($this->getSubscription()) { $filter['SUBSCRIPTION'] = 'Y'; } $showOffersIBlock = \Bitrix\Main\Config\Option::get('catalog', 'product_form_show_offers_iblock'); $dbItem = \CCatalog::GetList(array(), $filter, false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SUBSCRIPTION')); while ($arItems = $dbItem->Fetch()) { $arItems['IBLOCK_ID'] = (int) $arItems['IBLOCK_ID']; $arItems['PRODUCT_IBLOCK_ID'] = (int) $arItems['PRODUCT_IBLOCK_ID']; if ('N' == $arItems['SUBSCRIPTION'] && 0 < $arItems['PRODUCT_IBLOCK_ID']) { $ids[] = $arItems['PRODUCT_IBLOCK_ID']; if ('Y' == $showOffersIBlock) { $ids[] = $arItems['IBLOCK_ID']; } } else { $ids[] = $arItems['IBLOCK_ID']; } } $ids = array_unique($ids); if ($ids) { $filter = array("ID" => $ids, 'ACTIVE' => 'Y'); if ($this->checkPermissions) { $filter['MIN_PERMISSION'] = 'R'; } if ($this->getLid()) { $filter["LID"] = $this->getLid(); } $res = \CIBlock::GetList(array("ID" => "ASC"), $filter, false); while ($row = $res->Fetch()) { $this->iblockList[$row['ID']] = $row; } if (sizeof($ids) > 1) { $siteTable = new \Bitrix\Iblock\IblockSiteTable(); $siteResult = $siteTable->getList(array('select' => array('IBLOCK_ID', 'SITE.NAME'), 'filter' => array('IBLOCK_ID' => $ids))); while ($row = $siteResult->fetch()) { if (isset($this->iblockList[$row['IBLOCK_ID']])) { $this->iblockList[$row['IBLOCK_ID']]['SITE_NAME'] = $row['IBLOCK_IBLOCK_SITE_SITE_NAME']; } } } } } return $this->iblockList; }
function getAdditionalColumns() { static $arIblockIDs = false; static $arProps = false; $res = array(); if (CModule::IncludeModule("catalog")) { // get iblock props from all catalog iblocks including sku iblocks if (false === $arIblockIDs) { $arIblockNames = array(); $dbCatalog = CCatalog::GetList( array(), array(), false, false, array('IBLOCK_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID', 'NAME') ); while ($arCatalog = $dbCatalog->Fetch()) { $arIblockIDs[] = $arCatalog["IBLOCK_ID"]; $arIblockNames[$arCatalog["IBLOCK_ID"]] = $arCatalog["NAME"]; } } // iblock props if (false === $arProps) { $arProps = array(); foreach ($arIblockIDs as $iblockID) { $dbProps = CIBlockProperty::GetList( array("SORT"=>"ASC", "NAME"=>"ASC"), array( "IBLOCK_ID" => $iblockID, "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "N", ) ); while ($arProp = $dbProps->GetNext()) $arProps[] = $arProp; } } // create properties array where properties with the same codes are considered the same $arProp2Iblock = array(); if (!empty($arProps)) { foreach ($arProps as $id => $arProperty) { $arProp2Iblock["PROPERTY_".$arProperty["CODE"]][] = $arProperty["IBLOCK_ID"]; if (getNameCount($arProperty["NAME"], $arProperty["CODE"], $arProps) > 1) $name = $arProperty["NAME"]." [".$arProperty["CODE"]."] "; else $name = $arProperty["NAME"]; if (array_key_exists("PROPERTY_".$arProperty["CODE"], $res)) $res["PROPERTY_".$arProperty["CODE"]] = $name." (".getIblockNames($arProp2Iblock["PROPERTY_".$arProperty["CODE"]], $arIblockNames).")"; else $res["PROPERTY_".$arProperty["CODE"]] = $name; } } } return $res; }
'IS_CONTENT' => 'N', 'YANDEX_EXPORT' => 'N', 'VAT_ID' => 0, 'PRODUCT_IBLOCK_ID' => 0, 'SKU_PROPERTY_ID' => 0, 'OFFERS_IBLOCK_ID' => 0, 'IS_OFFERS' => 'N', 'OFFERS_PROPERTY_ID' => 0 ); $arIBlockFullInfo[$arIBlock['ID']] = $arIBlockItem; } $rsCatalogs = CCatalog::GetList( array(), array(), false, false, array('IBLOCK_ID', 'SUBSCRIPTION', 'YANDEX_EXPORT', 'VAT_ID', 'PRODUCT_IBLOCK_ID', 'SKU_PROPERTY_ID') ); while ($arOneCatalog = $rsCatalogs->Fetch()) { $arOneCatalog['IBLOCK_ID'] = (int)$arOneCatalog['IBLOCK_ID']; $arOneCatalog['VAT_ID'] = (int)$arOneCatalog['VAT_ID']; $arOneCatalog['PRODUCT_IBLOCK_ID'] = (int)$arOneCatalog['PRODUCT_IBLOCK_ID']; $arOneCatalog['SKU_PROPERTY_ID'] = (int)$arOneCatalog['SKU_PROPERTY_ID']; if (!CBXFeatures::IsFeatureEnabled('SaleRecurring') && 'Y' == $arOneCatalog['SUBSCRIPTION']) { $arRecurring[] = '['.$arIBlockItem['ID'].'] '.$arIBlockItem['NAME']; $arRecurringKey[$arIBlockItem['ID']] = true; }
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) { die; } if (CModule::IncludeModule("catalog")) { $arSKU = false; $boolSKU = false; // get iblock props from all catalog iblocks including sku iblocks $arSkuIblockIDs = array(); $dbCatalog = CCatalog::GetList(array(), array()); while ($arCatalog = $dbCatalog->GetNext()) { $arSKU = CCatalogSKU::GetInfoByProductIBlock($arCatalog['IBLOCK_ID']); if (!empty($arSKU) && is_array($arSKU)) { $arSkuIblockIDs[] = $arSKU["IBLOCK_ID"]; $arSkuData[$arSKU["IBLOCK_ID"]] = $arSKU; $boolSKU = true; } } // iblock props $arProps = array(); foreach ($arSkuIblockIDs as $iblockID) { $dbProps = CIBlockProperty::GetList(array("SORT" => "ASC", "NAME" => "ASC"), array("IBLOCK_ID" => $iblockID, "ACTIVE" => "Y", "CHECK_PERMISSIONS" => "N")); while ($arProp = $dbProps->GetNext()) { if ($arProp['ID'] == $arSkuData[$arSKU["IBLOCK_ID"]]["SKU_PROPERTY_ID"]) { continue; } if ($arProp['XML_ID'] == 'CML2_LINK') { continue; } $strPropName = '[' . $arProp['ID'] . '] ' . ('' != $arProp['CODE'] ? '[' . $arProp['CODE'] . ']' : '') . ' ' . $arProp['NAME'];
if ($IBLOCK_OFFERS_ID) { $iblockCodeOffers = "clothes_offers_" . WIZARD_SITE_ID; //IBlock fields $iblock = new CIBlock(); $arFields = array("ACTIVE" => "Y", "FIELDS" => array('IBLOCK_SECTION' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'ACTIVE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'Y'), 'ACTIVE_FROM' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'ACTIVE_TO' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SORT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'NAME' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => ''), 'PREVIEW_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, 'DELETE_WITH_DETAIL' => 'N', 'UPDATE_WITH_DETAIL' => 'N')), 'PREVIEW_TEXT_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'PREVIEW_TEXT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'DETAIL_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95)), 'DETAIL_TEXT_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'DETAIL_TEXT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'XML_ID' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'CODE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('UNIQUE' => 'Y', 'TRANSLITERATION' => 'Y', 'TRANS_LEN' => 100, 'TRANS_CASE' => 'L', 'TRANS_SPACE' => '_', 'TRANS_OTHER' => '_', 'TRANS_EAT' => 'Y', 'USE_GOOGLE' => 'Y')), 'TAGS' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_NAME' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, 'DELETE_WITH_DETAIL' => 'N', 'UPDATE_WITH_DETAIL' => 'N')), 'SECTION_DESCRIPTION_TYPE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => 'text'), 'SECTION_DESCRIPTION' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_DETAIL_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95)), 'SECTION_XML_ID' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_CODE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('UNIQUE' => 'Y', 'TRANSLITERATION' => 'Y', 'TRANS_LEN' => 100, 'TRANS_CASE' => 'L', 'TRANS_SPACE' => '_', 'TRANS_OTHER' => '_', 'TRANS_EAT' => 'Y', 'USE_GOOGLE' => 'Y'))), "CODE" => "clothes_offers", "XML_ID" => $iblockCodeOffers); $iblock->Update($IBLOCK_OFFERS_ID, $arFields); } if ($IBLOCK_CATALOG_ID) { $iblockCode = "clothes_" . WIZARD_SITE_ID; //IBlock fields $iblock = new CIBlock(); $arFields = array("ACTIVE" => "Y", "FIELDS" => array('IBLOCK_SECTION' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => ''), 'ACTIVE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'Y'), 'ACTIVE_FROM' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'ACTIVE_TO' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SORT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'NAME' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => ''), 'PREVIEW_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, 'DELETE_WITH_DETAIL' => 'N', 'UPDATE_WITH_DETAIL' => 'N')), 'PREVIEW_TEXT_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'PREVIEW_TEXT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'DETAIL_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95)), 'DETAIL_TEXT_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'DETAIL_TEXT' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'XML_ID' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'CODE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => array('UNIQUE' => 'Y', 'TRANSLITERATION' => 'Y', 'TRANS_LEN' => 100, 'TRANS_CASE' => 'L', 'TRANS_SPACE' => '_', 'TRANS_OTHER' => '_', 'TRANS_EAT' => 'Y', 'USE_GOOGLE' => 'Y')), 'TAGS' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_NAME' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => ''), 'SECTION_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('FROM_DETAIL' => 'N', 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, 'DELETE_WITH_DETAIL' => 'N', 'UPDATE_WITH_DETAIL' => 'N')), 'SECTION_DESCRIPTION_TYPE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text'), 'SECTION_DESCRIPTION' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_DETAIL_PICTURE' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array('SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95)), 'SECTION_XML_ID' => array('IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => ''), 'SECTION_CODE' => array('IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => array('UNIQUE' => 'Y', 'TRANSLITERATION' => 'Y', 'TRANS_LEN' => 100, 'TRANS_CASE' => 'L', 'TRANS_SPACE' => '_', 'TRANS_OTHER' => '_', 'TRANS_EAT' => 'Y', 'USE_GOOGLE' => 'Y'))), "CODE" => "clothes", "XML_ID" => $iblockCode); $iblock->Update($IBLOCK_CATALOG_ID, $arFields); if ($IBLOCK_OFFERS_ID) { $ID_SKU = CCatalog::LinkSKUIBlock($IBLOCK_CATALOG_ID, $IBLOCK_OFFERS_ID); $rsCatalogs = CCatalog::GetList(array(), array('IBLOCK_ID' => $IBLOCK_OFFERS_ID), false, false, array('IBLOCK_ID')); if ($arCatalog = $rsCatalogs->Fetch()) { CCatalog::Update($IBLOCK_OFFERS_ID, array('PRODUCT_IBLOCK_ID' => $IBLOCK_CATALOG_ID, 'SKU_PROPERTY_ID' => $ID_SKU)); } else { CCatalog::Add(array('IBLOCK_ID' => $IBLOCK_OFFERS_ID, 'PRODUCT_IBLOCK_ID' => $IBLOCK_CATALOG_ID, 'SKU_PROPERTY_ID' => $ID_SKU)); } //create facet index $index = \Bitrix\Iblock\PropertyIndex\Manager::createIndexer($IBLOCK_CATALOG_ID); $index->startIndex(); $index->continueIndex(0); $index->endIndex(); $index = \Bitrix\Iblock\PropertyIndex\Manager::createIndexer($IBLOCK_OFFERS_ID); $index->startIndex(); $index->continueIndex(0); $index->endIndex(); \Bitrix\Iblock\PropertyIndex\Manager::checkAdminNotification();
} } $oFilter = new CAdminFilter($sTableID . "_filter", $arFindFields); $oFilter->SetDefaultRows("find_iblock_id", "find_name"); $oFilter->Begin(); ?> <tr> <td><?php echo GetMessage("SPS_CATALOG"); ?> :</td> <td> <select name="IBLOCK_ID"> <?php $catalogID = array(); $dbItem = CCatalog::GetList(); while ($arItems = $dbItem->Fetch()) { $catalogID[] = $arItems["IBLOCK_ID"]; } $db_iblocks = CIBlock::GetList(array("ID" => "ASC"), array("ID" => $catalogID)); while ($db_iblocks->ExtractFields("str_iblock_")) { ?> <option value="<?php echo $str_iblock_ID; ?> "<?php if ($iblockID == $str_iblock_ID) { echo " selected"; } ?> ><?php