Занятно.
Смоделировал вашу ситуацию у себя.
В header.php:[CODE]<?$APPLICATION->ShowViewContent('test');?>
[/CODE]
В footer.php:[CODE]<?ob_start();?>
<?$APPLICATION->IncludeComponent(
"bitrix:menu",
"top",
Array(
"ROOT_MENU_TYPE" => "top",
"MAX_LEVEL" => "0",
"CHILD_MENU_TYPE" => "",
"USE_EXT" => "Y",
"MENU_CACHE_TYPE" => "N",
"MENU_CACHE_TIME" => "3600",
"MENU_CACHE_USE_GROUPS" => "N",
"MENU_CACHE_GET_VARS" => Array()
)
);?>
<?
$out = ob_get_contents();
ob_end_clean();
$APPLICATION->AddViewContent('test', $out);
?>
[/CODE]
У меня это работает ожидаемым образом, т.е. правильно.
Возможные варианты возникновения ошибки:
1) у вас используются самописные компоненты с кешированием, которые некорректно работают со стеком буферизации (например, нет вызова $this->endResultCache(); в теле компонента);
2) у вас какой-то очень старый битрикс ( в 12 версии тело компонента bitrix:menu сильно отличается от такового в 15 версии).
Смоделировал вашу ситуацию у себя.
В header.php:[CODE]<?$APPLICATION->ShowViewContent('test');?>
[/CODE]
В footer.php:[CODE]<?ob_start();?>
<?$APPLICATION->IncludeComponent(
"bitrix:menu",
"top",
Array(
"ROOT_MENU_TYPE" => "top",
"MAX_LEVEL" => "0",
"CHILD_MENU_TYPE" => "",
"USE_EXT" => "Y",
"MENU_CACHE_TYPE" => "N",
"MENU_CACHE_TIME" => "3600",
"MENU_CACHE_USE_GROUPS" => "N",
"MENU_CACHE_GET_VARS" => Array()
)
);?>
<?
$out = ob_get_contents();
ob_end_clean();
$APPLICATION->AddViewContent('test', $out);
?>
[/CODE]
У меня это работает ожидаемым образом, т.е. правильно.
Возможные варианты возникновения ошибки:
1) у вас используются самописные компоненты с кешированием, которые некорректно работают со стеком буферизации (например, нет вызова $this->endResultCache(); в теле компонента);
2) у вас какой-то очень старый битрикс ( в 12 версии тело компонента bitrix:menu сильно отличается от такового в 15 версии).