public function ImportFromID($id = 0) { global $USER; if (!is_object($USER)) $USER = new CUser; $channel = CIChannelsRssRep::GetRssChannelById($id); if (!$channel) return; $arUrl = parse_url($channel['URL']); if (!array_key_exists('port', $arUrl)) $arUrl['port'] = 80; if (!array_key_exists('path', $arUrl)) $arUrl['path'] = ''; if (!array_key_exists('query', $arUrl)) $arUrl['query'] = ''; CModule::IncludeModule('iblock'); $rChannel = CIBlockRSS::GetNewsEx( $arUrl['host'], $arUrl['port'], $arUrl['path'], $arUrl['query'] ); $arChannel = CIBlockRSS::FormatArray($rChannel); $mapper = CIChannels::getRssMapperByID($channel['MAPPER']); $ins = new $mapper['class']; foreach ($arChannel['item'] as $item) { $arFields = $ins->{$mapper['method']}($item, $channel); if (empty ($arFields)) continue; $arFields['ACTIVE'] = 'Y'; $arFields['IBLOCK_TYPE_ID'] = $channel['IBLOCK_TYPE_ID']; $arFields['IBLOCK_ID'] = $channel['IBLOCK_ID']; if ($channel['IBLOCK_SECTION_ID'] != '0') { $arFields['IBLOCK_SECTION_ID'] = $channel['IBLOCK_SECTION_ID']; } $iblockElement = new CIBlockElement(); $iNewElementID = $iblockElement->Add($arFields); } return sprintf('%s(%d);', __METHOD__, $id); }
<? require_once($_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/main/include/prolog_admin_before.php'); require_once($_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/main/include/prolog_admin_after.php'); $APPLICATION->SetTitle(GetMessage('Каналы импорта')); CModule::IncludeModule('bx_ichannels'); $arImporters = CIChannels::getImporters(); $sTableID = 'ichannels_importers_list_table'; $oSort = new CAdminSorting($sTableID, "name", "desc"); $lAdmin = new CAdminList($sTableID, $oSort); $lAdmin->AddHeaders(array( array( 'id' => 'name', 'content' => 'Источник импорта', // 'sort' => 'name', 'default' => true, ), array( 'id' => 'module', 'content' => 'Модуль', 'default' => true, ), array( 'id' => 'class', 'content' => 'Класс', 'default' => true,
<td colspan="2" align="center">Настройки импорта</td> </tr> <tr> <td><label for="FREQUENCY">Частота (в секундах)</label></td> <td><input type="text" name="FREQUENCY" id="FREQUENCY" class="intval" value="<?php echo $default['FREQUENCY']; ?> " /></td> </tr> <tr> <td><label for="select-mapper">Обработчик полей</label></td> <td> <select id="select-mapper" name="select-mapper" class="selectval"> <? foreach (CIChannels::getRssMappers() as $mapper): ?> <option value="<?php echo $mapper['id']; ?> "><?php echo $mapper['name']; ?> </option> <? endforeach; ?> </select> <? if (!$new): ?> <script type="text/javascript"> $('#select-mapper') .val("<?php echo $default['MAPPER'];