Wingely Dog
Guest
Smarty и настройки кэширования, можно ли сделать такую штуку?
Хочу сдалеть такую вещь
тоесть хочу чтобы в памяти был один экземпляр смарти с некими дефолтовыми настройками кэширования, при этом некоторые блоки могли бы их переопределять по своему усмотрению на время выполнения блока.
так нельзя или я что-то неправильно понял? потому как у меня почемуто не работает этот фокус.
Хочу сдалеть такую вещь
PHP:
--- config.php ---
define( "USE_CACHING_DEF", true );
define( "CACHING_LIFETIME_DEF", 3600 );
--- MySmarty.php ---
/**
* эта функция реализует синглетон
* для шаблонного движка
* шаблонный движок при
* инициализации, получает
* параметры
* $tpl->caching = USE_CACHING_DEF;
* $tpl->cache_lifetime = CACHING_LIFETIME_DEF;
*
* @return reference to Smarty
* @access public
*/
function &getSmarty(){ ..... }
--- samefile_1.php ----
$tpl =& getSmarty();
// локальные настройки кэширования для этого блока
$tpl->caching = false;
$tpl->desplay( "same_1.tpl" );
// возврат к дефолтовым настройкам
$tpl->caching = USE_CACHING_DEF;
--- samefile_2.php ---
$tpl =& getSmarty();
// локальные настройки кэширования для этого файла
$tpl->caching = true;
$tpl->cache_lifetime = 123;
$tpl->display( "same_2.tpl" );
// возврат к дефолтовым настройкам
$tpl->caching = USE_CACHING_DEF;
$tpl->cache_lifetime = CACHE_LIFETIME_DEF;
--- index.php ---
include "config.php";
include "MySmarty.php"
include "samefile_1.php";
include "samefile_2.php";
// отработка с дефолтовыми настройками
$tpl =& getSmartyObj();
$tpl->display( "index.tpl" );
так нельзя или я что-то неправильно понял? потому как у меня почемуто не работает этот фокус.