Ключ кэшируемого элемента содержится в
$cacheKey, сохраняем всё в универсальный кэш
default, при желании можно создать свой отдельный блок кэша. В примере даны 2 варианта генерации контента, оставьте один из них.
$bCache = Core::moduleIsActive('cache');
if ($bCache)
{
/* Если блок зависит от внешних данных, все они должны быть добавлены
* в $cacheKey в свободно виде, например $cacheKey = "НазваниеЭтогоБлока param1={$param1}, param2={$param2}"
*/
$cacheKey = 'НазваниеЭтогоБлока';
$oCore_Cache = Core_Cache::instance(Core::$mainConfig['defaultCache']);
$inCache = $oCore_Cache->get($cacheKey, 'default');
}
else
{
$inCache = NULL;
}
if (is_null($inCache))
{
// Вариант 1, используете XSL
$inCache = Xsl_Processor::instance()
->xml($oXml->getXml())
->xsl(Core_Entity::factory('Xsl')->getByName("МагазинГруппыСайдбарXML")
)
->process();
// конец Вариант 1
// Вариант 2, собственный показ
ob_start();
// ...
$inCache = ob_get_clean();
// конец Вариант 2
}
echo $inCache;
$bCache && $oCore_Cache->set($cacheKey, $inCache, 'default');