Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $_SERVER['DOCUMENT_ROOT']='/home/bitrix/www';
- define('NO_KEEP_STATISTIC', true);
- define('NOT_CHECK_PERMISSIONS', true);
- // подгружаем пролог
- require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
- // отключаем таймаут
- set_time_limit(0);
- // ограничения по памяти
- ini_set('memory_limit', '2048M');
- // выполняем все действия от админа битрикса
- global $USER;
- $USER->Authorize(1);
- CModule::IncludeModule('iblock');
- $start = microtime(true);
- // начало скрипта
- /***
- Сайты: citilink, xcom,
- Разделы: monobloki,
- Бренды: HP,
- ***/
- $params = [
- 'SITE' => 'citilink',
- 'SECTION' => 'monobloki',
- ];
- if (isset($params['SITE'])) {
- include_once($_SERVER['DOCUMENT_ROOT'].'/update_catalog/parsing/templates/'.$params['SITE'].'/'.$params['SECTION'].'/template.php');
- }
- // Считываем инфоблок в массив
- $arSelect = [
- 'IBLOCK_NAME',
- 'ID',
- 'NAME',
- 'IBLOCK_SECTION_ID',
- 'PROPERTY_CML2_ARTICLE',
- ];
- // Выборка элементов указанных инфоблоков
- $rsElement1 = CIBlockElement::GetList([], ['IBLOCK_ID' => 17, '>CATALOG_QUANTITY' => '10', 'SECTION_CODE' => $params['SECTION']], false, false, $arSelect);
- while ($arElement1 = $rsElement1->Fetch()) {
- $elems[$arElement1["IBLOCK_NAME"]][] = $arElement1;
- }
- $rsElement2 = CIBlockElement::GetList([], ['IBLOCK_ID' => 12, 'ACTIVE' => 'Y'], false, false, $arSelect);
- while ($arElement2 = $rsElement2->Fetch()) {
- $elems[$arElement2["IBLOCK_NAME"]][] = $arElement2;
- }
- $arrBrands = $elems["Бренды"];
- $arrMarket = $elems["Каталог товаров"];
- foreach ($arrBrands as $i => $brand) {
- $b_id[$brand["NAME"]] = $brand["ID"];
- }
- $edit = 0;
- $nosearch = 0;
- // Изменение товара
- foreach ($arrMarket as $item) {
- $el = new CIBlockElement;
- $articul = preg_replace('/#ACB_?|-NC\d+/m', '', $item['PROPERTY_CML2_ARTICLE_VALUE']);
- $params_item = getParamsItem($articul);
- $arrAdv = $params_item['ADV'];
- if ($params_item['SEARCH_FLAG'] == 1) {
- if (isset($b_id[$arrAdv['BRAND']])) {
- $arrProps = $params_item['PROPS'];
- foreach ($arrAdv['MORE_PHOTOS'] as $key => $path) {
- $file = CFile::MakeFileArray($path);
- $arFiles['n'.$key] = $file;
- }
- $arrProps['BRAND'] = $b_id[$arrAdv['BRAND']];
- $arrProps['MORE_PHOTO'] = $arFiles;
- $el->SetPropertyValuesEx($item['ID'], 17, $arrProps);
- $el->Update($item['ID'], [
- 'PREVIEW_PICTURE' => CFile::MakeFileArray($arrAdv['IMAGES']['PREVIEW_PICTURE']),
- 'DETAIL_PICTURE' => CFile::MakeFileArray($arrAdv['IMAGES']['DETAIL_PICTURE']),
- ]);
- $edit++;
- }
- } else {
- $params['SITE'] = 'xcom';
- $nosearch++;
- }
- }
- echo 'Товаров изменено: '.$edit."\n";
- echo 'Не найдено: '.$nosearch."\n";
- // конец скрипта
- $finish = microtime(true);
- $delta = $finish - $start;
- echo round($delta, 2)." сек. \n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement