1)На страницу бросил компонент catalog.section.list, скопировал шаблон, выставил нужные параметры.
2)В файле template.php переписал всё и сделал вывод массива нужной структуры, в конце вывел этот массив через return
3)В файле .left.menu_ext.php подключил этот компонент таким образом
[CODE]
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
$aMenuLinksExt=$APPLICATION->IncludeComponent(
"bitrix:catalog.section.list",
"submenu_news",
Array(
"IBLOCK_TYPE" => "TVN",
"IBLOCK_ID" => "2",
"SECTION_ID" => $_REQUEST["SECTION_ID"],
"SECTION_CODE" => "",
"COUNT_ELEMENTS" => "N",
"TOP_DEPTH" => "2",
"SECTION_FIELDS" => array(0=>"",1=>"",),
"SECTION_USER_FIELDS" => array(0=>"",1=>"",),
"SECTION_URL" => "",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_GROUPS" => "Y",
"ADD_SECTIONS_CHAIN" => "N"
)
);
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/log.txt', "\n==============\n".var_export($aMenuLinksExt, true), FILE_APPEND);
$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);
?>
[/CODE]
содержимое файла компонента [B]/home/main/data/www/bitrix/templates/tvn_template/components/bitrix/catalog.section.list/submenu_news/template.php[/B]
[CODE]
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$arMenu = array();
foreach($arResult['SECTIONS'] as $arSection):
$arOrder = array(
'SORT' => 'ASC',
);
$arFilter = array(
'IBLOCK_ID' => $arSection['IBLOCK_ID'],
'SECTION_ID' => $arSection['ID'],
'ACTIVE' => 'Y'
);
$arSelect = array(
'ID', 'NAME', 'DETAIL_PAGE_URL', 'PREVIEW_TEXT', 'PREVIEW_PICTURE'
);
$arNavStartParams = array(
'nPageSize' => 1
);
$cdbResult = CIBlockElement::GetList($arOrder, $arFilter, false, $arNavStartParams, $arSelect);
$arLastNews = $cdbResult->GetNext();
$arImage = CFile::GetFileArray($arLastNews['PREVIEW_PICTURE']);
$arLastNewsItem = array(
'NAME' => $arLastNews['NAME'],
'TEXT' => TruncateText($arLastNews['PREVIEW_TEXT'], 100),
'URL' => $arLastNews['DETAIL_PAGE_URL'],
'IMAGE' => $arImage['SRC']
);
$arMenu[] = array(
$arSection['NAME'],
$arSection['LIST_PAGE_URL'] . $arSection['CODE'] . '/',
array(),
array(
'FROM_IBLOCK' => $arSection['IBLOCK_ID'],
'IS_PARENT' => false,
'DEPTH_LEVEL' => '1',
),
$arLastNewsItem
);
endforeach;
return $arMenu;
?>
[/CODE]