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);
- $iblock_ids = array(2,1,3); // id инфоблоков для считывания
- $arSelect = array(
- "IBLOCK_NAME",
- "ID",
- "NAME",
- "IBLOCK_SECTION_ID",
- "PROPERTY_22", // Код производителя товара ELKO (manufacturerCode)
- "PROPERTY_3", // Артикул Treolan (articul)
- "PROPERTY_31", // Номер партии OCS (PartNumber)
- );
- // Выборка элементов указанных инфоблоков
- $rsElement = CIBlockElement::GetList(array(), array("IBLOCK_ID" => $iblock_ids, "SECTION_ACTIVE" => "Y", "SECTION_GLOBAL_ACTIVE" => "Y"), false, false, $arSelect);
- while($arElement = $rsElement->Fetch())
- {
- $elems[$arElement["IBLOCK_NAME"]][] = $arElement;
- }
- // Массивы с элементами инфоблоков
- $elkoArr = $elems["ELKO"];
- $treolanArr = $elems["Treolan"];
- $ocsArr = $elems["OCS"];
- function getSectionsList($filter) {
- // Выборка разделов указанных инфоблоков
- $dbSection = CIBlockSection::GetList(array(), $filter, false);
- while( $arSection = $dbSection-> GetNext() ){
- $sections[] = $arSection;
- }
- return $sections;
- }
- // Функция
- function search($array, $key, $value)
- {
- $results = array();
- if (is_array($array))
- {
- if (isset($array[$key]) && $array[$key] == $value)
- $results[] = $array;
- foreach ($array as $subarray)
- $results = array_merge($results, search($subarray, $key, $value));
- }
- return $results;
- }
- function getInfoSectionByID($id) {
- $res = CIBlockSection::GetByID($id);
- if($arRes = $res->Fetch())
- {
- return $arRes;
- }
- }
- function createTreeSections($iblock_id, $el_id, $sec_id) {
- $sec_element = CIBlockElement::GetElementGroups($el_id, true)->Fetch();
- $resSection = CIBlockSection::GetNavChain(false, $sec_element['ID'], [
- 'NAME','ID','CODE','IBLOCK_SECTION_ID'
- ]);
- while ($arSection = $resSection->GetNext()) {
- $array_sections[] = $arSection;
- }
- foreach($array_sections as $section) {
- $sectionObject = new CIBlockSection;
- $sectionId = $sectionObject->Add([
- 'IBLOCK_ID' => $iblock_id,
- 'IBLOCK_SECTION_ID' => '',
- "NAME" => $section['NAME'],
- "CODE" => $section['CODE'].'_non',
- ]);
- if($sectionId > 0){
- $sectionObject->Update($sectionId, [
- 'IBLOCK_ID' => $iblock_id,
- 'IBLOCK_SECTION_ID' => '',
- "NAME" => $section['NAME'],
- "CODE" => $section['CODE'].'_non',
- ]);
- };
- }
- }
- print_r(createTreeSections(1, 1174964, 14615));
- /*foreach ($elkoArr as $k => $elkoItem) {
- if (empty(search($ocsArr, 'PROPERTY_31_VALUE', $elkoItem['PROPERTY_22_VALUE']))) {
- $countElko++;
- }
- }
- foreach ($treolanArr as $treolanItem) {
- if (empty(search($ocsArr, 'PROPERTY_31_VALUE', $treolanItem['PROPERTY_3_VALUE']))) {
- $countTreolan++;
- }
- }*/
- echo $countElko."\n";
- echo $countTreolan."\n";
- $finish = microtime(true);
- $delta = $finish - $start;
- echo round($delta, 2)." сек. \n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement