Advertisement
SpeakeazyYT

Untitled

Jul 6th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.02 KB | None | 0 0
  1. <?php
  2. $_SERVER['DOCUMENT_ROOT']='/home/bitrix/www';
  3.  
  4. define('NO_KEEP_STATISTIC', true);
  5. define('NOT_CHECK_PERMISSIONS', true);
  6.  
  7. // подгружаем пролог
  8. require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
  9.  
  10. // отключаем таймаут
  11. set_time_limit(0);
  12.  
  13. // ограничения по памяти
  14. ini_set('memory_limit', '2048M');
  15.  
  16. // выполняем все действия от админа битрикса
  17. global $USER;
  18. $USER->Authorize(1);
  19. CModule::IncludeModule('iblock');
  20.  
  21. $start = microtime(true);
  22. // начало скрипта
  23.  
  24. /***
  25. Сайты: citilink, xcom,
  26. Разделы: monobloki,
  27. Бренды: HP,
  28. ***/
  29.  
  30. $params = [
  31.     'SITE' => 'citilink',
  32.     'SECTION' => 'monobloki',
  33. ];
  34.  
  35. if (isset($params['SITE'])) {
  36.     include_once($_SERVER['DOCUMENT_ROOT'].'/update_catalog/parsing/templates/'.$params['SITE'].'/'.$params['SECTION'].'/template.php');
  37. }
  38.  
  39. // Считываем инфоблок в массив
  40. $arSelect = [
  41.     'IBLOCK_NAME',
  42.     'ID',
  43.     'NAME',
  44.     'IBLOCK_SECTION_ID',
  45.     'PROPERTY_CML2_ARTICLE',
  46. ];
  47.  
  48. // Выборка элементов указанных инфоблоков
  49. $rsElement1 = CIBlockElement::GetList([], ['IBLOCK_ID' => 17, '>CATALOG_QUANTITY' => '10', 'SECTION_CODE' => $params['SECTION']], false, false, $arSelect);
  50. while ($arElement1 = $rsElement1->Fetch()) {
  51.     $elems[$arElement1["IBLOCK_NAME"]][] = $arElement1;
  52. }
  53.  
  54. $rsElement2 = CIBlockElement::GetList([], ['IBLOCK_ID' => 12, 'ACTIVE' => 'Y'], false, false, $arSelect);
  55. while ($arElement2 = $rsElement2->Fetch()) {
  56.     $elems[$arElement2["IBLOCK_NAME"]][] = $arElement2;
  57. }
  58.  
  59. $arrBrands = $elems["Бренды"];
  60. $arrMarket = $elems["Каталог товаров"];
  61.  
  62. foreach ($arrBrands as $i => $brand) {
  63.     $b_id[$brand["NAME"]] = $brand["ID"];
  64. }
  65.  
  66. $edit = 0;
  67. $nosearch = 0;
  68. // Изменение товара
  69. foreach ($arrMarket as $item) {
  70.     $el = new CIBlockElement;
  71.    
  72.     $articul = preg_replace('/#ACB_?|-NC\d+/m', '', $item['PROPERTY_CML2_ARTICLE_VALUE']);
  73.    
  74.     $params_item = getParamsItem($articul);
  75.    
  76.     $arrAdv = $params_item['ADV'];
  77.    
  78.     if ($params_item['SEARCH_FLAG'] == 1) {
  79.         if (isset($b_id[$arrAdv['BRAND']])) {
  80.             $arrProps = $params_item['PROPS'];
  81.            
  82.             foreach ($arrAdv['MORE_PHOTOS'] as $key => $path) {
  83.                 $file = CFile::MakeFileArray($path);
  84.                 $arFiles['n'.$key] = $file;
  85.             }
  86.            
  87.             $arrProps['BRAND'] = $b_id[$arrAdv['BRAND']];
  88.             $arrProps['MORE_PHOTO'] = $arFiles;
  89.            
  90.             $el->SetPropertyValuesEx($item['ID'], 17, $arrProps);
  91.             $el->Update($item['ID'], [
  92.                 'PREVIEW_PICTURE' => CFile::MakeFileArray($arrAdv['IMAGES']['PREVIEW_PICTURE']),
  93.                 'DETAIL_PICTURE' => CFile::MakeFileArray($arrAdv['IMAGES']['DETAIL_PICTURE']),
  94.             ]);
  95.            
  96.             $edit++;
  97.         }
  98.     } else {
  99.         $params['SITE'] = 'xcom';
  100.         $nosearch++;
  101.     }
  102. }
  103.  
  104. echo 'Товаров изменено: '.$edit."\n";
  105. echo 'Не найдено: '.$nosearch."\n";
  106.  
  107. // конец скрипта
  108. $finish = microtime(true);
  109. $delta = $finish - $start;
  110. echo round($delta, 2)." сек. \n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement