Exemplo n.º 1
0
 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;
     }
 }
Exemplo n.º 2
0
 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();
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 5
0
>
		</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);
Exemplo n.º 6
0
 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();
     }
 }
Exemplo n.º 7
0
         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;
Exemplo n.º 9
0
             } 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()) {
Exemplo n.º 10
0
 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;
 }
Exemplo n.º 11
0
 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;
 }
Exemplo n.º 12
0
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";
Exemplo n.º 13
0
 /**
  * 
  *
  *
  *
  *
  * @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;
 }
Exemplo n.º 14
0
//*****************************************//

$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;
	}
Exemplo n.º 15
0
	/**
	 * @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;
	}
Exemplo n.º 16
0
 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')) . '&nbsp;<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);";
         }
     }
 }
Exemplo n.º 17
0
	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;
		}
	}
Exemplo n.º 18
0
        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"]]++;
            }
        }
Exemplo n.º 19
0
    ?>
<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;
Exemplo n.º 20
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())
Exemplo n.º 21
0
 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;
     }
 }
Exemplo n.º 22
0
 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;
 }
Exemplo n.º 23
0
    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];
Exemplo n.º 24
0
 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;
 }
Exemplo n.º 25
0
 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;
 }
Exemplo n.º 26
0
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;
}
Exemplo n.º 27
0
			'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;
		}
Exemplo n.º 28
0
<?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'];
Exemplo n.º 29
0
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();
Exemplo n.º 30
0
    }
}
$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