Создал класс, который создает csv файл и вписывает в него разделы из инфоблока каталога. Если запускать его просто так на какой-нибудь странице, то всё отрабатывает нормально и файл создается, но если код поместить в init.php, и повесить на агента , то всё по идее отрабатывает, тк выводил в лог файл, но файл не создается .
Вот сам класс:
Вот сам класс:
| Код |
|---|
class SectionExportAgent{
public static function SectionExport(){
if(CModule::IncludeModule('iblock') and CModule::IncludeModule('fileman')){
$fp = fopen('sections_export.csv', 'w');
fwrite($fp, "ID_GROUP;IC_GROUP0;IC_GROUP1;IC_GROUP2". "\r\n");
$arFilter = Array('IBLOCK_ID'=>17, 'ACTIVE'=>'Y', 'DEPTH_LEVEL'=>1);
$db_list = CIBlockSection::GetList(Array(), $arFilter, true);
while($ar_result = $db_list->GetNext())
{
$str=$ar_result['ID'].";".$ar_result['NAME'].";";
fwrite($fp, $str. "\r\n");
$rsParentSection = CIBlockSection::GetByID($ar_result['ID']);
if ($arParentSection = $rsParentSection->GetNext())
{
$arFilter2 = array('IBLOCK_ID' => $arParentSection['IBLOCK_ID'],'>LEFT_MARGIN' => $arParentSection['LEFT_MARGIN'],'<RIGHT_MARGIN' => $arParentSection['RIGHT_MARGIN'],'DEPTH_LEVEL' => 2); // выберет потомков без учета активности
$rsSect = CIBlockSection::GetList(array('left_margin' => 'asc'),$arFilter2);
while ($arSect = $rsSect->GetNext())
{
$str=$arSect['ID'].";".$ar_result['NAME'].";".$arSect['NAME'].";";
fwrite($fp, $str. "\r\n");
$rsParentSection2 = CIBlockSection::GetByID($arSect['ID']);
if ($arParentSection2 = $rsParentSection2->GetNext())
{
$arFilter3 = array('IBLOCK_ID' => $arParentSection2['IBLOCK_ID'],'>LEFT_MARGIN' => $arParentSection2['LEFT_MARGIN'],'<RIGHT_MARGIN' => $arParentSection2['RIGHT_MARGIN'],'DEPTH_LEVEL' => 3); // выберет потомков без учета активности
$rsSect2 = CIBlockSection::GetList(array('left_margin' => 'asc'),$arFilter3);
while ($arSect2 = $rsSect2->GetNext())
{
$str=$arSect2['ID'].";".$ar_result['NAME'].";".$arSect['NAME'].";".$arSect2['NAME'].";";
fwrite($fp, $str. "\r\n");
}
}
}
}
}
fclose($fp);
return 'SectionExportAgent::SectionExport();';
} else{
return 'SectionExportAgent::SectionExport();';
}
}
} |