[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Собственная компиляция в smarty
emly
Добрый вечер!
Подскажите как реализовать собственную компиляцию шаблона? Не обязательно в смарти.
В общем есть tpl шаблон, я могу зарегистрировать обработку блока, как в документации:

$smarty->registerPlugin("block","translate", "do_translation");


Но не хочу, чтобы переменные
{translate}{$str}{/translate}

преобразовывались в переменные smarty и не хочу их определять через методы smarty, такие как assign().
Как сделать, чтобы {$str} осталась php переменной $str и я ее легко мог определять и переопределеять в функции:


function do_translation($params, $content, $smarty, &$repeat){
if (isset($content)) {
$str = 'bla bla';
return $content;
}
}



Спасибо!
Игорь_Vasinsky
<div>
<?=$var;?>
</div>

<
ul>
<?php foreach($arr as $value):?>
<li><?=$value;?></li>
<?php enforeach;?>
</ul>


альтернативный синтаксис php - без всяких нагрузок на всякие компиляции и прочие самокаты.

ps: это совет, а не ответ

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
emly
Спасибо за альтернативу. А что-нибудь можно сделать в моем случае, чтобы не нарушать общую конструкцию шаблонизотора и шаблона в целом?
Игорь_Vasinsky
я тебе хотел сказать то что - смысла нет изобретать велосипед.

рано или поздно у тя встанет вопрос - как прикрутить, например foreach к твоему шаблонизатору - как ты реализуешь?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
emly
Там все есть, и {foreach}{/foreach} и все что угодно. Смарти очень продуман. Необходимо решить только одну проблему.
Игорь_Vasinsky
аааа biggrin.gif я проглядел в названии суть biggrin.gif

вот это
Цитата
Не обязательно в смарти.

и вот это
Цитата
Подскажите как реализовать собственную компиляцию шаблона?



_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
emly
На самом деле даже тут проблем нет, я просто могу определять переменную функционалом смарти:


$smarty->assign('str', 'bla bla');
return $content;


и будет мне счастье, но...
Данная функция это просто пример. Задачу надо решить совсем другую, но основная загвоздка именно в этом. Просто по ходу функции необходимо будет переопределять переменную $str, а в смарти это не работает с настройками по умолчанию и в итоге берется последняя определенная переменная.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.