не кэшируйте в родительском компоненте результат работы второго компонента - убьете двух зайцев: добьетесь актуальных данных в выводе компонентов и не придется сбрасывать кэш сразу двух компонентов.
Шаблон основного компонента:
Код |
---|
<?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?php ob_start(); ?>
тело шаблона
<component2></component2>
оставшееся тело шаблона
<?php
$component->arResult['TEMPLATE1_RESULT'] = ob_get_clean();
$component->SetResultCacheKeys(array('TEMPLATE1_RESULT'));
?> |
<component2></component2> - то место где вы раньше вызывали компонент, может быть все что угодно хоть #COMPONENT2_AREA# и т.д.
файл component_epilog.php шаблона основного компонента:
Код |
---|
<?php if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?php ob_start(); ?>
вызов второго компонента IncludeComponent
<?php
$sTemplate2Result = ob_get_clean();
$arResult['TEMPLATE_RESULT'] = str_replace("<component2></component2>", $sTemplate2Result, $arResult['TEMPLATE1_RESULT']);
echo $arResult['TEMPLATE_RESULT'];
?>
|
Надеюсь, принцип понятно изложил.