Я хочу перебрать один массив и отключить кеширование только для некоторых элементов. Итак, моя идея заключалась в том, чтобы сохранить key
и получить элемент по key
в разделе nocache. К сожалению, я не нашел возможности:
назначить кэшированный $rec@key
в разделе nocache,
или оставьте определение переменной key
в кэшированном разделе.
Есть ли способ (без модификации умного кода) сделать это? вот мой test.tpl:
{foreach $array as $rec}
{if $rec.dynamic}
{assign var="key" value=$rec@key}
{nocache}
{$array[$key].text}
{/nocache}
{else}
{$rec.text}
{/if}
{/foreach}
и test.php:
<?php
include_once 'libs/Smarty.class.php';
$smarty=new smarty();
$smarty->caching=1;
$smarty->assign('array',array(
'r1'=>array('dynamic'=>true,'text'=>'dynamic'),
'r2'=>array('dynamic'=>false,'text'=>'static')
));
$smarty->display('test.tpl');
(конечно, я буду использовать его для гораздо более сложных вещей, чем отображение текста :)) Я перепробовал много трюков и сам думаю, что это невозможно, пожалуйста, скажите мне, что я ошибаюсь :)