| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Шаблонизатор |
| Автор: chiffa 20.5.2010, 23:07 | ||||||
Всем добрый вечер. Пишу небольшой шаблонизатор. Столкнулся с проблемой. Как подключить к выводу скрипт из другого файла. тоест ьу меня есть 1.tpl
мини функция шаблонизатора
и сам код скрипта
При таком раскладе вставляется просто строка с именем файла, как вставить исполняемый код?... Заранее спасибо за помощь! |
| Автор: zibox86 21.5.2010, 00:03 | ||
| Инклюдить шаблон в кеш и потом заменить шаблонные переменные на реальные. Что то типа:
Плюс в этом еще то что можно кеширование сделать |
| Автор: chiffa 21.5.2010, 00:09 |
| спасибо за ответ! суть уловил, но принцип реализации не очень. можешь на конкретном примере? Если я раньше проинклудю шаблон и ниже вызову функцию то как он проведет замену?.... |
| Автор: zibox86 21.5.2010, 00:19 | ||
| Ну тут же дело твоей фантазии!! Пишешь функцию к примеру, а еще лучше класс.
|
| Автор: SamDark 21.5.2010, 13:50 |
| Вот мой вполне рабочий вариант: http://rmcreative.ru/blog/post/mvc-view |
| Автор: chiffa 22.5.2010, 11:53 |
| А такой вопрос по кешированию, немного для себя прояснить. насколько я понимаю принцип работы на стороне сервера следующая: 1. Заходит клиент 2. Сервер проверяет есть ли сохраненный кеш 3. Если есть то выдает сохраненную версию 4. Если нет, но сохраняет кеш Отсюдова возникает вопрос: если сохраненная версия кеша изменилась (допустим это магазин товаров и добавился новый товар) пользователь его получается не увидит? Или перед каждым выводом сравнивать устарел кеш или нет, тогда теряется весь смысл, ведь запрос к серваку и обработка ПХП будет все равно происходить.... или я что то неправильно понимаю? |
| Автор: chiffa 24.5.2010, 11:18 |
| up |
| Автор: chiffa 24.5.2010, 22:09 |
| С принципом создания шаблонизатора все понятно, суть проблемы в том что если я хочу вставить вместо тега подключить php-файл у меня вставляется путь к этому файлу, а нужно что бы он выполнялся и результат выводился вместо тега шаблонизатора |
| Автор: chiffa 25.5.2010, 11:33 | ||||
Код вот:
вызов:
В свою очередь $inc='{reg}'; $put6='modules/user_mod/reg/index.php'; тоесть мне необходимо вместо тега шаблонизатора {reg} подключить файл пхп. При совершении выше описных действий выводится просто строка адреса modules/user_mod/reg/index.php и сам файл не подключается. |
| Автор: NewDima 25.5.2010, 12:17 |
| Естественно, не подключится... Самый простой способ будет записывайть полученный в результате парсинга контент в файл и включайть его инклудом, |
| Автор: chiffa 25.5.2010, 12:25 |
| гм... а каким образом локально спарсить контент? не подскажешь? |
| Автор: NewDima 25.5.2010, 12:34 |
| Нет, я что-то поторопился с ответом в предыдущий раз. используй ob_start() и иже с ним |
| Автор: chiffa 25.5.2010, 13:11 | ||
тоесть так?
|
| Автор: NewDima 25.5.2010, 13:24 | ||
chiffa, вы требуете слишком большой универсальности от метода mount_vars, но при этом он работает с одним простым синтаксисом
? Сначала ответьте, почему mount_vars должен вдруг вставлять контент из файла. Когда поймете, что ответа нет, разберитесь наконец с тем, что делает этот метод. Когда разберетесь с ним, либо расширите синтаксис метки, либо заведете новый метод, одно из двух. |
| Автор: chiffa 25.5.2010, 14:29 | ||
| ага. суть я понял. обработчик нужно делать внутри вызываемого класса. Допустим я его инклудю: $content=include ($put6); дальше заменяю, через реплейс подставляю $content, но дело в том что при выполнении $content=include ($put6); файл выводится, как "запретить" вывод?. весь код:
|
| Автор: awdev 25.5.2010, 15:37 |
| используй smarty |
| Автор: chiffa 25.5.2010, 16:19 |
| думал над этим - слишком громоздкий...... |
| Автор: awdev 26.5.2010, 00:19 |
| Чем громоздкий? Место на винте жалко? не смеши |
| Автор: NewDima 26.5.2010, 08:15 |
| Я вообще думал это для самообучения... |
| Автор: ksnk 26.5.2010, 08:36 |
| chiffa, вы вообще представляете как работает include? Такое ощущение, что что этими инклудами размахивают как волшебной палочкой, авось само получится... что по вашему ДОЛЖЕН сделать этот оператор? Что он делает? И почему вам кажется, что этот опреатор должен делать то. что нужно? Как вообще выглядит этот самый включаемый файл? |
| Автор: NewDima 27.5.2010, 05:47 |
| ksnk, волшебная палочка, ага Не, ну если подключаемый файл будет возвращать че-нить с return... другое дело |