PageRenderTime 49ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/bitrix/wizards/bitrix/eshop/site/services/iblock/catalog3.php

https://gitlab.com/Rad1calDreamer/honey
PHP | 221 lines | 184 code | 16 blank | 21 comment | 23 complexity | d29423e3db1614968f92c637fc1b08ed MD5 | raw file
  1. <?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
  2. die();
  3. if(!CModule::IncludeModule("iblock") || !CModule::IncludeModule("catalog"))
  4. return;
  5. if(COption::GetOptionString("eshop", "wizard_installed", "N", WIZARD_SITE_ID) == "Y" && !WIZARD_INSTALL_DEMO_DATA)
  6. return;
  7. //update iblocks, demo discount and precet
  8. $shopLocalization = $wizard->GetVar("shopLocalization");
  9. if ($_SESSION["WIZARD_CATALOG_IBLOCK_ID"])
  10. {
  11. $IBLOCK_CATALOG_ID = $_SESSION["WIZARD_CATALOG_IBLOCK_ID"];
  12. unset($_SESSION["WIZARD_CATALOG_IBLOCK_ID"]);
  13. }
  14. if ($_SESSION["WIZARD_OFFERS_IBLOCK_ID"])
  15. {
  16. $IBLOCK_OFFERS_ID = $_SESSION["WIZARD_OFFERS_IBLOCK_ID"];
  17. unset($_SESSION["WIZARD_OFFERS_IBLOCK_ID"]);
  18. }
  19. //reference update
  20. /*$rsIBlock = CIBlock::GetList(array(), array("XML_ID" => "clothes_colors", "TYPE" => "references"));
  21. if ($arIBlock = $rsIBlock->Fetch())
  22. {
  23. if (WIZARD_INSTALL_DEMO_DATA)
  24. {
  25. $ib = new CIBlock;
  26. $ib->Update($arIBlock["ID"], array("XML_ID" => "clothes_colors_".WIZARD_SITE_ID));
  27. }
  28. }*/
  29. if ($IBLOCK_OFFERS_ID)
  30. {
  31. $iblockCodeOffers = "clothes_offers_".WIZARD_SITE_ID;
  32. //IBlock fields
  33. $iblock = new CIBlock;
  34. $arFields = Array(
  35. "ACTIVE" => "Y",
  36. "FIELDS" => array (
  37. 'IBLOCK_SECTION' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ),
  38. 'ACTIVE' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'Y', ), 'ACTIVE_FROM' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ),
  39. 'ACTIVE_TO' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'SORT' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ),
  40. 'NAME' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => '', ),
  41. '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', ), ),
  42. 'PREVIEW_TEXT_TYPE' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text', ), 'PREVIEW_TEXT' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ),
  43. 'DETAIL_PICTURE' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => array ( 'SCALE' => 'N', 'WIDTH' => '', 'HEIGHT' => '', 'IGNORE_ERRORS' => 'N', 'METHOD' => 'resample', 'COMPRESSION' => 95, ), ),
  44. 'DETAIL_TEXT_TYPE' => array ( 'IS_REQUIRED' => 'Y', 'DEFAULT_VALUE' => 'text', ),
  45. 'DETAIL_TEXT' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ),
  46. 'XML_ID' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ),
  47. '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', ), ),
  48. 'TAGS' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ), 'SECTION_NAME' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ),
  49. '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', ), ),
  50. 'SECTION_DESCRIPTION_TYPE' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => 'text', ),
  51. '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, ), ),
  52. 'SECTION_XML_ID' => array ( 'IS_REQUIRED' => 'N', 'DEFAULT_VALUE' => '', ),
  53. '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', ), ), ),
  54. "CODE" => "clothes_offers",
  55. "XML_ID" => $iblockCodeOffers
  56. );
  57. $iblock->Update($IBLOCK_OFFERS_ID, $arFields);
  58. }
  59. if ($IBLOCK_CATALOG_ID)
  60. {
  61. $iblockCode = "clothes_".WIZARD_SITE_ID;
  62. //IBlock fields
  63. $iblock = new CIBlock;
  64. $arFields = Array(
  65. "ACTIVE" => "Y",
  66. "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', ), ), ),
  67. "CODE" => "clothes",
  68. "XML_ID" => $iblockCode
  69. );
  70. $iblock->Update($IBLOCK_CATALOG_ID, $arFields);
  71. if ($IBLOCK_OFFERS_ID)
  72. {
  73. $ID_SKU = CCatalog::LinkSKUIBlock($IBLOCK_CATALOG_ID, $IBLOCK_OFFERS_ID);
  74. $rsCatalogs = CCatalog::GetList(
  75. array(),
  76. array('IBLOCK_ID' => $IBLOCK_OFFERS_ID),
  77. false,
  78. false,
  79. array('IBLOCK_ID')
  80. );
  81. if ($arCatalog = $rsCatalogs->Fetch())
  82. {
  83. CCatalog::Update($IBLOCK_OFFERS_ID,array('PRODUCT_IBLOCK_ID' => $IBLOCK_CATALOG_ID,'SKU_PROPERTY_ID' => $ID_SKU));
  84. }
  85. else
  86. {
  87. CCatalog::Add(array('IBLOCK_ID' => $IBLOCK_OFFERS_ID, 'PRODUCT_IBLOCK_ID' => $IBLOCK_CATALOG_ID, 'SKU_PROPERTY_ID' => $ID_SKU));
  88. }
  89. }
  90. //user fields for sections
  91. $arLanguages = Array();
  92. $rsLanguage = CLanguage::GetList($by, $order, array());
  93. while($arLanguage = $rsLanguage->Fetch())
  94. $arLanguages[] = $arLanguage["LID"];
  95. $arUserFields = array("UF_BROWSER_TITLE", "UF_KEYWORDS", "UF_META_DESCRIPTION");
  96. foreach ($arUserFields as $userField)
  97. {
  98. $arLabelNames = Array();
  99. foreach($arLanguages as $languageID)
  100. {
  101. WizardServices::IncludeServiceLang("property_names.php", $languageID);
  102. $arLabelNames[$languageID] = GetMessage($userField);
  103. }
  104. $arProperty["EDIT_FORM_LABEL"] = $arLabelNames;
  105. $arProperty["LIST_COLUMN_LABEL"] = $arLabelNames;
  106. $arProperty["LIST_FILTER_LABEL"] = $arLabelNames;
  107. $dbRes = CUserTypeEntity::GetList(Array(), Array("ENTITY_ID" => 'IBLOCK_'.$IBLOCK_CATALOG_ID.'_SECTION', "FIELD_NAME" => $userField));
  108. if ($arRes = $dbRes->Fetch())
  109. {
  110. $userType = new CUserTypeEntity();
  111. $userType->Update($arRes["ID"], $arProperty);
  112. }
  113. //if($ex = $APPLICATION->GetException())
  114. //$strError = $ex->GetString();
  115. }
  116. //demo discount
  117. $dbDiscount = CCatalogDiscount::GetList(array(), Array("SITE_ID" => WIZARD_SITE_ID));
  118. if(!($dbDiscount->Fetch()))
  119. {
  120. if (CModule::IncludeModule("iblock"))
  121. {
  122. $dbSect = CIBlockSection::GetList(Array(), Array("IBLOCK_TYPE" => "catalog", "IBLOCK_ID"=>$IBLOCK_CATALOG_ID, "CODE" => "underwear", "IBLOCK_SITE_ID" => WIZARD_SITE_ID));
  123. if ($arSect = $dbSect->Fetch())
  124. $sofasSectId = $arSect["ID"];
  125. }
  126. $dbSite = CSite::GetByID(WIZARD_SITE_ID);
  127. if($arSite = $dbSite -> Fetch())
  128. $lang = $arSite["LANGUAGE_ID"];
  129. $defCurrency = "EUR";
  130. if($lang == "ru")
  131. $defCurrency = "RUB";
  132. elseif($lang == "en")
  133. $defCurrency = "USD";
  134. $arF = Array (
  135. "SITE_ID" => WIZARD_SITE_ID,
  136. "ACTIVE" => "Y",
  137. //"ACTIVE_FROM" => ConvertTimeStamp(mktime(0,0,0,12,15,2011), "FULL"),
  138. //"ACTIVE_TO" => ConvertTimeStamp(mktime(0,0,0,03,15,2012), "FULL"),
  139. "RENEWAL" => "N",
  140. "NAME" => GetMessage("WIZ_DISCOUNT"),
  141. "SORT" => 100,
  142. "MAX_DISCOUNT" => 0,
  143. "VALUE_TYPE" => "P",
  144. "VALUE" => 10,
  145. "CURRENCY" => $defCurrency,
  146. "CONDITIONS" => Array (
  147. "CLASS_ID" => "CondGroup",
  148. "DATA" => Array("All" => "OR", "True" => "True"),
  149. "CHILDREN" => Array(Array("CLASS_ID" => "CondIBSection", "DATA" => Array("logic" => "Equal", "value" => $sofasSectId)))
  150. )
  151. );
  152. CCatalogDiscount::Add($arF);
  153. }
  154. //precet
  155. $dbProperty = CIBlockProperty::GetList(Array(), Array("IBLOCK_ID"=>$IBLOCK_CATALOG_ID, "CODE"=>"SALELEADER"));
  156. $arFields = array();
  157. while($arProperty = $dbProperty->GetNext())
  158. {
  159. $arFields["find_el_property_".$arProperty["ID"]] = "";
  160. }
  161. $dbProperty = CIBlockProperty::GetList(Array(), Array("IBLOCK_ID"=>$IBLOCK_CATALOG_ID, "CODE"=>"NEWPRODUCT"));
  162. while($arProperty = $dbProperty->GetNext())
  163. {
  164. $arFields["find_el_property_".$arProperty["ID"]] = "";
  165. }
  166. $dbProperty = CIBlockProperty::GetList(Array(), Array("IBLOCK_ID"=>$IBLOCK_CATALOG_ID, "CODE"=>"SPECIALOFFER"));
  167. while($arProperty = $dbProperty->GetNext())
  168. {
  169. $arFields["find_el_property_".$arProperty["ID"]] = "";
  170. }
  171. require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/interface/admin_lib.php");
  172. CAdminFilter::AddPresetToBase( array(
  173. "NAME" => GetMessage("WIZ_PRECET"),
  174. "FILTER_ID" => "tbl_product_admin_".md5($iblockType.".".$IBLOCK_CATALOG_ID)."_filter",
  175. "LANGUAGE_ID" => $lang,
  176. "FIELDS" => $arFields
  177. )
  178. );
  179. CUserOptions::SetOption("filter", "tbl_product_admin_".md5($iblockType.".".$IBLOCK_CATALOG_ID)."_filter", array("rows" => "find_el_name, find_el_active, find_el_timestamp_from, find_el_timestamp_to"), true);
  180. CAdminFilter::SetDefaultRowsOption("tbl_product_admin_".md5($iblockType.".".$IBLOCK_CATALOG_ID)."_filter", array("miss-0","IBEL_A_F_PARENT"));
  181. //delete 1c props
  182. $arPropsToDelete = array("CML2_TAXES", "CML2_BASE_UNIT", "CML2_TRAITS", "CML2_ATTRIBUTES", "CML2_ARTICLE", "CML2_BAR_CODE", "CML2_FILES", "CML2_MANUFACTURER", "CML2_PICTURES");
  183. foreach ($arPropsToDelete as $code)
  184. {
  185. $dbProperty = CIBlockProperty::GetList(Array(), Array("IBLOCK_ID"=>$IBLOCK_CATALOG_ID, "XML_ID"=>$code));
  186. if($arProperty = $dbProperty->GetNext())
  187. {
  188. CIBlockProperty::Delete($arProperty["ID"]);
  189. }
  190. if ($IBLOCK_OFFERS_ID)
  191. {
  192. $dbProperty = CIBlockProperty::GetList(Array(), Array("IBLOCK_ID"=>$IBLOCK_OFFERS_ID, "XML_ID"=>$code));
  193. if($arProperty = $dbProperty->GetNext())
  194. {
  195. CIBlockProperty::Delete($arProperty["ID"]);
  196. }
  197. }
  198. }
  199. CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH."/catalog/index.php", array("CATALOG_IBLOCK_ID" => $IBLOCK_CATALOG_ID));
  200. CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH."/sect_inc.php", array("CATALOG_IBLOCK_ID" => $IBLOCK_CATALOG_ID));
  201. CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH."/_index.php", array("CATALOG_IBLOCK_ID" => $IBLOCK_CATALOG_ID, "OFFERS_IBLOCK_ID" => $IBLOCK_OFFERS_ID));
  202. CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH."/catalog/sect_sidebar.php.php", array("CATALOG_IBLOCK_ID" => $IBLOCK_CATALOG_ID));
  203. CWizardUtil::ReplaceMacros(WIZARD_SITE_PATH."/include/viewed_product.php", array("CATALOG_IBLOCK_ID" => $IBLOCK_CATALOG_ID, "OFFERS_IBLOCK_ID" => $IBLOCK_OFFERS_ID));
  204. }
  205. ?>