Речь о компоненте catalog.section.
Вот что в итоге должно быть:
Итак, в result_modifier.php добавляем следующий код, формирующий основное содержимое XLS в формате HTML:
Сам файл формируется функцией setXLS, которую прописываю в init.php:
В целом всё просто - для каждой страницы со списком товаров создается свой XLS файл и обновляется вместе с кешем шаблона компонента - именно тогда и исполняется result_modifier.php.
Почему я использовал псевдо XLS - это просто, быстро, не нужны доп. библиотеки и файл открывается как обычный XLS.
Вот что в итоге должно быть:
Итак, в result_modifier.php добавляем следующий код, формирующий основное содержимое XLS в формате HTML:
$fileContent = ''; foreach($arResult["ITEMS"] as $key => $arElement) { $fileContent .= '<tr>'; $fileContent .= '<td>'.$arElement["NAME"].'</td>'; foreach($arElement["DISPLAY_PROPERTIES"] as $pid=>$arProperty) { $fileContent .= '<td>'.$arProperty["DISPLAY_VALUE"].'</td>'; } $fileContent .= '</tr>'; } $fileXLSpath = setXLS( $APPLICATION->GetCurDir()."price-".$arResult["CODE"].".xls", $fileContent ); if($fileXLSpath) { $arResult["XLS"] = $fileXLSpath; } |
Сам файл формируется функцией setXLS, которую прописываю в init.php:
function setXLS($fileName, $content) { $fileStart = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1251"> <title></title> <meta name="generator" content=""> <style type="text/css"><!-- body,div,table,thead,tbody,tfoot,tr,th,td,p { font-family:"Calibri"; font-size:x-small } --> </style> </head> <body text="#000000"> <table cellspacing="0" border="0">'; $fileEnd = '</table></body></html>'; if($content) { file_put_contents( $_SERVER['DOCUMENT_ROOT'].$fileName, $fileStart.$content.$fileEnd ); return $fileName; } else { return false; } } |
В целом всё просто - для каждой страницы со списком товаров создается свой XLS файл и обновляется вместе с кешем шаблона компонента - именно тогда и исполняется result_modifier.php.
Почему я использовал псевдо XLS - это просто, быстро, не нужны доп. библиотеки и файл открывается как обычный XLS.