Smarty; передача параметра в insert из уже закэшированной страницы. Как?

Camillo

Новичок
Smarty; передача параметра в insert из уже закэшированной страницы. Как?

Привет.

Опишу суть проблемы...

Есть страница отображения стандартного поста блога. Пусть за структуру этой страницы отвечает шаблон post.tpl (обработчик назовем post.php).
Страница состоит из тела поста и комментариев. Комментарии кэшировать не нужно - поэтому в шаблоне post.tpl используется insert для вставки постов.
В этот insert передаётся параметр post_id (переменная Smarty) - уникальный идентификатор поста (для того, чтобы потом по этому идентификатору достать все необходимые комментарии из БД).

Если кэширование отключено, то Smarty каждый раз заново компилирует шаблон и нормально передаёт в insert значение post_id.
Если же включить кэширование, то получается, что Smarty как-бы и передавать-то нечего...

Подскажите пожалуйста какие могут быть варианты решения проблемы?

Я почитал документацию по Smarty и вот самое "умное", что мне смогло прийти в голову...

Итак, в обработчике post.php кроме обработки post.tpl мы каким-то образом создаём файл конфигурации поста, пусть это будет post25.conf.
В этом файле фигурируют различные параметры поста (в том числи и интересующий нас post_id).
Далее post.php передаёт в post.tpl имя этого конфигурационного файла (пусть эта переменная называется post_config).
В post.tpl мы делаем подгрузку файла конфигурации {config_load file=post_config}.
Таким образом, подгрузив файл конфигурации мы можем передать в insert значение post_id.

Имеет ли это решение право на жизнь или нет? Или есть какой-то другой хитрый способ?

Заранее Спасибо!
 

kott

Новичок
>Страница состоит из тела поста и комментариев. Комментарии
>кэшировать не нужно - поэтому в шаблоне post.tpl используется
>insert для вставки постов.

что еще за insert?
вы в шаблоне вызываете пхп скрипт, который извлекает из базы комментарии?

если так, то вы неправильно понимаете принцип работы смарти.

смарти не кеширует контент. он кеширует дизайн страницы, тоесть кэширет скомпиленный темплейт, а данные - каждый раз должны извлекаться в самом post.php
 
Сверху