Использование кэширования для собственного показа без контроллеров

Модератор
#
Использование кэширования для собственного показа без контроллеров
Ключ кэшируемого элемента содержится в $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');
Авторизация