Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/cvetdv.ru/bitrix/wizards/aspro/next/site/services/iblock/ |
Upload File : |
<? if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); if(!CModule::IncludeModule("iblock")) return; if(!defined("WIZARD_SITE_ID")) return; if(!defined("WIZARD_SITE_DIR")) return; if(!defined("WIZARD_SITE_PATH")) return; if(!defined("WIZARD_TEMPLATE_ID")) return; if(!defined("WIZARD_TEMPLATE_ABSOLUTE_PATH")) return; if(!defined("WIZARD_THEME_ID")) return; // iblock user fields $dbSite = CSite::GetByID(WIZARD_SITE_ID); if($arSite = $dbSite -> Fetch()) $lang = $arSite["LANGUAGE_ID"]; if(!strlen($lang)) $lang = "ru"; WizardServices::IncludeServiceLang("errors_updates", $lang); $bitrixTemplateDir = $_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/templates/".WIZARD_TEMPLATE_ID."/"; //$bitrixTemplateDir = $_SERVER["DOCUMENT_ROOT"]."/local/templates/".WIZARD_TEMPLATE_ID."/"; if(isset($_SESSION["NEXT_CATALOG_ID"]) && $_SESSION["NEXT_CATALOG_ID"]) \Bitrix\Main\Config\Option::set("aspro.next", "CATALOG_IBLOCK_ID", $_SESSION["NEXT_CATALOG_ID"], WIZARD_SITE_ID); \Bitrix\Main\Config\Option::set("aspro.next", "MAX_DEPTH_MENU", 4, WIZARD_SITE_ID); \Bitrix\Main\Config\Option::set("aspro.next", "REGIONALITY_FILTER_ITEM", "Y", WIZARD_SITE_ID); $catalogIBlockID = CNextCache::$arIBlocks[WIZARD_SITE_ID]["aspro_next_catalog"]["aspro_next_catalog"][0]; $landingIBlockID = CNextCache::$arIBlocks[WIZARD_SITE_ID]['aspro_next_catalog']['aspro_next_catalog_info'][0]; $servicesIBlockID = CNextCache::$arIBlocks[WIZARD_SITE_ID]['aspro_next_content']['aspro_next_services'][0]; $skuIBlockID = CNextCache::$arIBlocks[WIZARD_SITE_ID]["aspro_next_catalog"]["aspro_next_sku"][0]; $stockIBlockID = CNextCache::$arIBlocks[WIZARD_SITE_ID]['aspro_next_content']['aspro_next_stock'][0]; $dbProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $landingIBlockID, "CODE" => "SECTION_SERVICES")); if(!$dbProperty->SelectedRowsCount()) { $ibp = new CIBlockProperty; $arFields = Array( "NAME" => GetMessage("SECTION_LIST"), "ACTIVE" => "Y", "SORT" => "100", "CODE" => "SECTION_SERVICES", "PROPERTY_TYPE" => "G", "LIST_TYPE" => "L", "MULTIPLE" => "Y", "LINK_IBLOCK_ID" => $servicesIBlockID, "IBLOCK_ID" => $landingIBlockID ); $PropID = $ibp->Add($arFields); } $brandsIBlockID = CNextCache::$arIBlocks[WIZARD_SITE_ID]['aspro_next_content']['aspro_next_brands'][0]; $dbProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $brandsIBlockID, "CODE" => "BNR_TOP")); if(!$dbProperty->SelectedRowsCount()) { $ibp = new CIBlockProperty; $arFields = Array( "NAME" => GetMessage("BNR_TOP"), "ACTIVE" => "Y", "SORT" => "100", "CODE" => "BNR_TOP", "PROPERTY_TYPE" => "L", "LIST_TYPE" => "C", "MULTIPLE" => "N", "VALUES" => array( array( "VALUE" => "Y", "XML_ID" => "YES", ) ), "IBLOCK_ID" => $brandsIBlockID ); $PropID = $ibp->Add($arFields); } $dbProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $brandsIBlockID, "CODE" => "BNR_TOP_IMG")); if(!$dbProperty->SelectedRowsCount()) { $ibp = new CIBlockProperty; $arFields = Array( "NAME" => GetMessage("BNR_TOP_IMG"), "ACTIVE" => "Y", "SORT" => "100", "CODE" => "BNR_TOP_IMG", "PROPERTY_TYPE" => "F", "LIST_TYPE" => "L", "MULTIPLE" => "N", "IBLOCK_ID" => $brandsIBlockID ); $PropID = $ibp->Add($arFields); } $dbProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $brandsIBlockID, "CODE" => "BNR_TOP_BG")); if(!$dbProperty->SelectedRowsCount()) { $ibp = new CIBlockProperty; $arFields = Array( "NAME" => GetMessage("BNR_TOP_BG"), "ACTIVE" => "Y", "SORT" => "100", "CODE" => "BNR_TOP_BG", "PROPERTY_TYPE" => "F", "LIST_TYPE" => "L", "MULTIPLE" => "N", "IBLOCK_ID" => $brandsIBlockID ); $PropID = $ibp->Add($arFields); } $dbProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $brandsIBlockID, "CODE" => "CODE_TEXT")); if(!$dbProperty->SelectedRowsCount()) { $ibp = new CIBlockProperty; $arFields = Array( "NAME" => GetMessage("CODE_TEXT"), "ACTIVE" => "Y", "SORT" => "100", "CODE" => "CODE_TEXT", "PROPERTY_TYPE" => "S", "LIST_TYPE" => "L", "MULTIPLE" => "N", "IBLOCK_ID" => $brandsIBlockID ); $PropID = $ibp->Add($arFields); } $dbProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $brandsIBlockID, "CODE" => "BANNER_TITLE")); if(!$dbProperty->SelectedRowsCount()) { $ibp = new CIBlockProperty; $arFields = Array( "NAME" => GetMessage("BANNER_TITLE"), "ACTIVE" => "Y", "SORT" => "100", "CODE" => "BANNER_TITLE", "PROPERTY_TYPE" => "S", "LIST_TYPE" => "L", "MULTIPLE" => "N", "IBLOCK_ID" => $brandsIBlockID ); $PropID = $ibp->Add($arFields); } $dbProperty = CIBlockProperty::GetList(array(), array("IBLOCK_ID" => $brandsIBlockID, "CODE" => "BANNER_DESCRIPTION")); if(!$dbProperty->SelectedRowsCount()) { $ibp = new CIBlockProperty; $arFields = Array( "NAME" => GetMessage("BANNER_DESCRIPTION"), "ACTIVE" => "Y", "SORT" => "100", "CODE" => "BANNER_DESCRIPTION", "PROPERTY_TYPE" => "S", "USER_TYPE" => "HTML", "IBLOCK_ID" => $brandsIBlockID ); $PropID = $ibp->Add($arFields); } $arUserFieldViewType = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "IBLOCK_".$catalogIBlockID."_SECTION", "FIELD_NAME" => "UF_OFFERS_TYPE"))->Fetch(); if(!$arUserFieldViewType) { $arFields = array( "FIELD_NAME" => "UF_OFFERS_TYPE", "USER_TYPE_ID" => "enumeration", "XML_ID" => "UF_OFFERS_TYPE", "SORT" => 100, "MULTIPLE" => "N", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "Y", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "N", "SETTINGS" => array( "DISPLAY" => "LIST", "LIST_HEIGHT" => 5, ) ); $arLangs = array( "EDIT_FORM_LABEL" => array( "ru" => GetMessage("OFFERS_TYPE"), "en" => "Offers type", ), "LIST_COLUMN_LABEL" => array( "ru" => GetMessage("OFFERS_TYPE"), "en" => "Offers type", ) ); $ob = new CUserTypeEntity(); $FIELD_ID = $ob->Add(array_merge($arFields, array("ENTITY_ID" => "IBLOCK_".$catalogIBlockID."_SECTION"), $arLangs)); if($FIELD_ID) { $obEnum = new CUserFieldEnum; $obEnum->SetEnumValues($FIELD_ID, array( "n0" => array( "VALUE" => 1, "XML_ID" => "TYPE_1", ), "n1" => array( "VALUE" => 2, "XML_ID" => "TYPE_2", ), )); } } //catalog detail type $arUserFieldViewType = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "IBLOCK_".$catalogIBlockID."_SECTION", "FIELD_NAME" => "UF_ELEMENT_DETAIL"))->Fetch(); if(!$arUserFieldViewType) { $arFields = array( "FIELD_NAME" => "UF_ELEMENT_DETAIL", "USER_TYPE_ID" => "enumeration", "XML_ID" => "UF_ELEMENT_DETAIL", "SORT" => 100, "MULTIPLE" => "N", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "Y", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "N", "SETTINGS" => array( "DISPLAY" => "LIST", "LIST_HEIGHT" => 5, ) ); $arLangs = array( "EDIT_FORM_LABEL" => array( "ru" => GetMessage("CATALOG_DETAIL_TYPE"), "en" => "Catalog detail type", ), "LIST_COLUMN_LABEL" => array( "ru" => GetMessage("CATALOG_DETAIL_TYPE"), "en" => "Catalog detail type", ) ); $ob = new CUserTypeEntity(); $FIELD_ID = $ob->Add(array_merge($arFields, array("ENTITY_ID" => "IBLOCK_".$catalogIBlockID."_SECTION"), $arLangs)); if($FIELD_ID) { $obEnum = new CUserFieldEnum; $obEnum->SetEnumValues($FIELD_ID, array( "n0" => array( "VALUE" => GetMessage("CATALOG_DETAIL_TYPE1"), "XML_ID" => "element_1", ), "n1" => array( "VALUE" => GetMessage("CATALOG_DETAIL_TYPE2"), "XML_ID" => "element_2", ), "n2" => array( "VALUE" => GetMessage("CATALOG_DETAIL_TYPE3"), "XML_ID" => "element_3", ), "n3" => array( "VALUE" => GetMessage("CATALOG_DETAIL_TYPE4"), "XML_ID" => "element_4", ), "n4" => array( "VALUE" => GetMessage("CATALOG_DETAIL_TYPE5"), "XML_ID" => "element_5", ), )); } } //table sizes $arUserFieldViewType = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "IBLOCK_".$catalogIBlockID."_SECTION", "FIELD_NAME" => "UF_TABLE_SIZES"))->Fetch(); if(!$arUserFieldViewType) { $arFields = array( "FIELD_NAME" => "UF_TABLE_SIZES", "USER_TYPE_ID" => "enumeration", "XML_ID" => "UF_TABLE_SIZES", "SORT" => 100, "MULTIPLE" => "N", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "Y", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "N", "SETTINGS" => array( "DISPLAY" => "LIST", "LIST_HEIGHT" => 5, ) ); $arLangs = array( "EDIT_FORM_LABEL" => array( "ru" => GetMessage("TABLE_SIZES"), "en" => "Table sizes", ), "LIST_COLUMN_LABEL" => array( "ru" => GetMessage("TABLE_SIZES"), "en" => "Table sizes", ) ); $ob = new CUserTypeEntity(); $FIELD_ID = $ob->Add(array_merge($arFields, array("ENTITY_ID" => "IBLOCK_".$catalogIBlockID."_SECTION"), $arLangs)); if($FIELD_ID) { $obEnum = new CUserFieldEnum; $obEnum->SetEnumValues($FIELD_ID, array( "n0" => array( "VALUE" => GetMessage("TABLE_SIZES1"), "XML_ID" => "CLOTHES", ), "n1" => array( "VALUE" => GetMessage("TABLE_SIZES2"), "XML_ID" => "SHOES", ), )); } } // SmartFilter view $arUserFieldFilterView = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "IBLOCK_".$catalogIBlockID."_SECTION", "FIELD_NAME" => "UF_FILTER_VIEW"))->Fetch(); if(!$arUserFieldFilterView) { $arFields = array( "FIELD_NAME" => "UF_FILTER_VIEW", "USER_TYPE_ID" => "enumeration", "XML_ID" => "UF_FILTER_VIEW", "SORT" => 100, "MULTIPLE" => "N", "MANDATORY" => "N", "SHOW_FILTER" => "N", "SHOW_IN_LIST" => "Y", "EDIT_IN_LIST" => "Y", "IS_SEARCHABLE" => "N", "SETTINGS" => array( "DISPLAY" => "LIST", "LIST_HEIGHT" => 4, ) ); $arLangs = array( "EDIT_FORM_LABEL" => array( "ru" => GetMessage("CATALOG_FILTER_VIEW"), "en" => "SmartFilter view", ), "LIST_COLUMN_LABEL" => array( "ru" => GetMessage("CATALOG_FILTER_VIEW"), "en" => "SmartFilter view", ) ); $ob = new CUserTypeEntity(); $FIELD_ID = $ob->Add(array_merge($arFields, array("ENTITY_ID" => "IBLOCK_".$catalogIBlockID."_SECTION"), $arLangs)); if($FIELD_ID){ $obEnum = new CUserFieldEnum; $obEnum->SetEnumValues($FIELD_ID, array( "n0" => array( "VALUE" => GetMessage("CATALOG_FILTER_VIEW_VERTICAL"), "XML_ID" => "vertical", ), "n1" => array( "VALUE" => GetMessage("CATALOG_FILTER_VIEW_HORIZONTAL"), "XML_ID" => "horizontal", ), "n2" => array( "VALUE" => GetMessage("CATALOG_FILTER_VIEW_COMPACT"), "XML_ID" => "compact", ), )); } } $regionIBlockID = CNextCache::$arIBlocks[WIZARD_SITE_ID]['aspro_next_regionality']['aspro_next_regions'][0]; if($regionIBlockID){ $arUserFieldSectionRegion = CUserTypeEntity::GetList(array(), array("ENTITY_ID" => "IBLOCK_".$catalogIBlockID."_SECTION", "FIELD_NAME" => "UF_REGION"))->Fetch(); if(!$arUserFieldSectionRegion) { $arFields = array( 'FIELD_NAME' => 'UF_REGION', 'USER_TYPE_ID' => 'iblock_element', 'XML_ID' => 'UF_REGION', 'SORT' => 100, 'MULTIPLE' => 'Y', 'MANDATORY' => 'N', 'SHOW_FILTER' => 'N', 'SHOW_IN_LIST' => 'Y', 'EDIT_IN_LIST' => 'Y', 'IS_SEARCHABLE' => 'N', 'SETTINGS' => array( 'DISPLAY' => 'LIST', 'LIST_HEIGHT' => '5', 'IBLOCK_ID' => $regionIBlockID, 'DEFAULT_VALUE' => '', 'ACTIVE_FILTER' => 'Y', ) ); $ob = new CUserTypeEntity(); $FIELD_ID = $ob->Add( array_merge( $arFields, array("ENTITY_ID" => "IBLOCK_".$catalogIBlockID."_SECTION"), array( 'EDIT_FORM_LABEL' => array( 'ru' => GetMessage('REGION_TITLE'), 'en' => 'Region', ), 'LIST_COLUMN_LABEL' => array( 'ru' => GetMessage('REGION_TITLE'), 'en' => 'Region', ) ) ) ); } } if($stockIBlockID){ if($arProperty = CIBlockProperty::GetByID('LINK_GOODS_FILTER', $stockIBlockID)->Fetch()){ $ibp = new CIBlockProperty; $ibp->Update($arProperty['ID'], array( 'USER_TYPE' => 'SAsproCustomFilter', 'USER_TYPE_SETTINGS' => $arUserTypeSettings = array( 'IBLOCK_TYPE_ID' => 'aspro_next_catalog', 'IBLOCK_ID' => $catalogIBlockID, ), )); unset($ibp); $GLOBALS['DB']->Query('UPDATE b_iblock_property SET USER_TYPE_SETTINGS=\''.serialize($arUserTypeSettings).'\' WHERE CODE="LINK_GOODS_FILTER" AND IBLOCK_ID='.$stockIBlockID, false, $err_mess.__LINE__); } } if($servicesIBlockID){ if($arProperty = CIBlockProperty::GetByID('LINK_GOODS_FILTER', $servicesIBlockID)->Fetch()){ $ibp = new CIBlockProperty; $ibp->Update($arProperty['ID'], array( 'USER_TYPE' => 'SAsproCustomFilter', 'USER_TYPE_SETTINGS' => $arUserTypeSettings = array( 'IBLOCK_TYPE_ID' => 'aspro_next_catalog', 'IBLOCK_ID' => $catalogIBlockID, ), )); unset($ibp); $GLOBALS['DB']->Query('UPDATE b_iblock_property SET USER_TYPE_SETTINGS=\''.serialize($arUserTypeSettings).'\' WHERE CODE="LINK_GOODS_FILTER" AND IBLOCK_ID='.$servicesIBlockID, false, $err_mess.__LINE__); } } // set features properties use Bitrix\Iblock; if( class_exists('Bitrix\Iblock\Model\PropertyFeature') && method_exists('Bitrix\Iblock\Model\PropertyFeature', 'getPropertyFeatureList') && method_exists('Bitrix\Iblock\Model\PropertyFeature', 'getIndex') ) { $newFeatures = array( $skuIBlockID => array( 'SIZES' => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', 'IN_BASKET' => 'Y', 'OFFER_TREE' => 'Y', ), 'COLOR_REF' => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', 'IN_BASKET' => 'Y', 'OFFER_TREE' => 'Y', ), ), $catalogIBlockID => array( 'BRAND' => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "CML2_ARTICLE" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2033" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "COLOR_REF2" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_159" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2052" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2027" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2053" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2083" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2049" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2026" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2044" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_162" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2065" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2054" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2017" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2055" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2069" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2062" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "PROP_2061" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "CML2_LINK" => array( 'LIST_PAGE_SHOW' => 'Y', 'DETAIL_PAGE_SHOW' => 'Y', ), "VIDEO" => array( 'DETAIL_PAGE_SHOW' => 'Y', ), "VIDEO_YOUTUBE" => array( 'DETAIL_PAGE_SHOW' => 'Y', ), ), ); foreach ($newFeatures as $iblockId => $featuresProps) { foreach ($featuresProps as $propKey => $propValue) { $arPropsCodes[] = $propKey; } $arPropsFilter = array('IBLOCK_ID' => $iblockId); $resProps = CIBlockProperty::GetList( array(), $arPropsFilter ); while ( $prop = $resProps->Fetch() ) { if( in_array($prop['CODE'], $arPropsCodes) ) { $arProps[] = $prop; } } if($arProps) { foreach ($arProps as $propKey => $propValue) { $arFields = array( 'FEATURES' => array(), ); $propertyFeatures = Iblock\Model\PropertyFeature::getPropertyFeatureList($propValue); foreach($propertyFeatures as $propFeat) { if( isset($featuresProps[ $propValue['CODE'] ][ $propFeat['FEATURE_ID'] ]) ) { $feautureIndex = Iblock\Model\PropertyFeature::getIndex($propFeat); $arFields['FEATURES'][$feautureIndex] = array( 'MODULE_ID' => $propFeat['MODULE_ID'], 'FEATURE_ID' => $propFeat['FEATURE_ID'], 'IS_ENABLED' => $featuresProps[ $propValue['CODE'] ][ $propFeat['FEATURE_ID'] ], ); } } $ibp = new CIBlockProperty; $res = $ibp->Update($propValue['ID'], $arFields, true); } } } } unset($_SESSION['CATALOG_COMPARE_LIST']['NEXT_CATALOG_ID']); unset($_SESSION['ASPRO_BASKET_COUNTERS']); ?>