Возмжно ли избавиться от Smarty?

Статус
В этой теме нельзя размещать новые ответы.

bwc506

Постоялец
Регистрация
30 Авг 2007
Сообщения
160
Реакции
189
Есть скрипт, который использует одноимённый шаблонизатор.
Очень надо избавиться от этой вещи. Ибо она для меня тёмный лес.
Интуиция моя подсказывает, что где-то есть eval(), который и парсит исходный код страницы. В результате долгих и мучительных поисков я так и не нашёл тот самый eval();
Что можно придумать ?
 
  • Заблокирован
  • #2
погодите-погодите... вы хотите использовать скрипт или нет? если вы уберете шаблонизатор, кто результат работы скрипта выводить-то будет? Простой eval не пойдет, т.к. там же свой собственный метаязык.

или вы хотите сказать, что переписать все шаблоны данного скрипта, заменив в них smarty-переменные и логику, на нативной php-"лапше" будет проще, чем за полтора часика вникнуть в (довольно) логичный синтаксис смарти? это не так.

да, многие пинают смарти за большой вес и кучу ненужного (им) функционала, НО правда в том, что достаточно настроить кэширование, и этот его вес никак на скорость работы влиять не будет, разве положительно.

P.S.
PHP expert editor без доп. настройки прекрасно справляется с подсветкой HTML+Smarty шаблонов.

P.P.S.
хотел все-таки написать, как сделать, что вы просите, но перечитал получившуюся у меня чепуху, задумался и предлагаю вам все-таки подробнее описать суть проблемы, т.е. что не как вы думаете ее можно решить, а что собственно, изначально сделать надо.
 
Хорошо. Вот суть проблемы подробнее.
Есть у меня скрипт, который использует шаблонизатор Смарти. Я полностью согласен, что у него сво интерпретатор, который делает построение страниц проще. НО!
Серверу он выдаёт код готовый. т.е. PHP + HTML, так как сервер наверняка понятия не имеет о смарти. Я разбирал код шаблонизатора. Понял, что он ищет свои операторы, например: {if $a==3}
ля-ля-ля...
{else}
не ля-ля-ля...
{/if}
И просто заменяет их на нормальный(правильный) пхп код, который интерпретируется сервером:
if ($a==3)
{echo "ля-ля-ля...";}else{echo "не ля-ля-ля...";}
На стороне сервера этот нормальный код, который выдал смарти обрабатывается и передаётся браузеру в виде нормальной, полноценной страницы.
Как я понимаю, суть проблемы сводится к тому, чтобы найти ту исходную функцию (скорее всего eval()), которая и выводит нормальный скрипт, в котором смарти уже заменил все свои теги на нормальные, которые сервер понимает.
Там просто сложная цепочка функций, разбирая которую я просто запутался. Вот и решил спросить тут, как избавиться от шаблонизатора.
Да, и ещё, если сделать осознаную ошибку то он выдаст ошибку eval();
Вот, наверно как-то так...
 
У Smarty есть нормальная документация, да ещё с переводом. В ней сказано, что для объекта созданного созданного на основе класса Smarty нужно определить несколько параметров. Например:
PHP:
$smarty = new Smarty();
$smarty->template_dir = '/web/www.example.com/guestbook/templates/';
$smarty->compile_dir  = '/web/www.example.com/guestbook/templates_c/';
$smarty->config_dir   = '/web/www.example.com/guestbook/configs/';
$smarty->cache_dir    = '/web/www.example.com/guestbook/cache/';
Вот здесь
'/web/www.example.com/guestbook/templates_c/'
и ищи файлы превращённые из шаблонов в php скрипты.
Только зачем эта непонятная суета мне так и не понятно. Не нужен смарти? Напиши все if и что там ещё нужно ручками в нетив php.
 
...Только зачем эта непонятная суета мне так и не понятно. Не нужен смарти? Напиши все if и что там ещё нужно ручками в нетив php.

Спасибо, за дельный совет. Я так и поступил. Только вот очень уж много делов получается. Чтобы сделать 1 страницу из шаблона у меня уходит примерно 1 час. Всего страниц надо сделать 48. Придется ручками...
Просто думал есть способ проще.
 
Мне кажется, что проще разобраться со смарти, чем всё это руками переделывать. Документация вполне понятная даже для новичков: _http://www.smarty.net/manual/ru/
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху