Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

Kak mozhno ispolzovat plagin vnutri plagina?

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: Russian
View previous topic :: View next topic  
Author Message
onotole
Smarty Rookie


Joined: 10 Apr 2015
Posts: 8

PostPosted: Sat Apr 11, 2015 6:05 am    Post subject: Kak mozhno ispolzovat plagin vnutri plagina? Reply with quote

Привет. Достался мне старый проект, в котором используется шаблонизатор Smarty второй версии. Сейчас у меня состоит задача перевести сайт на мультиязычность. Так вот. Во многих местах шаблона выводятся плагины Smarty, как пример:
Code:
{pluginname param1="value1" param2="value2"}

Я написало плагин для смарти, который переводит тексты. Сам плагин не буду показывать, так как суть вопроса не в этом. В общем, мне нужно сделать что-то типа такого:
Code:
{pluginname param1={translate section="ololo" message="Blablabla"}}

Когда я вывожу в таком виде, то соответственно выводится текст, как я его ввожу. В кавычках пробовал - тоже нет результата
Прошу помощи очень сильно ^_^
Back to top
View user's profile Send private message
AnrDaemon
Administrator


Joined: 03 Dec 2012
Posts: 1785

PostPosted: Sat Apr 11, 2015 4:27 pm    Post subject: Reply with quote

Так от того, что ты перепостил вопрос, ответ не изменится.
Используй compile_id (для разных языков будут скомпилированы разные шаблоны).
Back to top
View user's profile Send private message
onotole
Smarty Rookie


Joined: 10 Apr 2015
Posts: 8

PostPosted: Sun Apr 12, 2015 10:47 am    Post subject: Reply with quote

AnrDaemon wrote:
Так от того, что ты перепостил вопрос, ответ не изменится.
Используй compile_id (для разных языков будут скомпилированы разные шаблоны).
Это не вариант.
Back to top
View user's profile Send private message
AnrDaemon
Administrator


Joined: 03 Dec 2012
Posts: 1785

PostPosted: Sun Apr 12, 2015 6:07 pm    Post subject: Reply with quote

Ещё раз, медленно: Сама постановка задачи дурацкая.
Нормальные люди так просто НЕ ДЕЛАЮТ!
Нормальные люди собирают контент каждого языка отдельно, чтобы потом не крутить плагины почём зря, а сразу показать посетителю страницу на нужном языке.
Back to top
View user's profile Send private message
onotole
Smarty Rookie


Joined: 10 Apr 2015
Posts: 8

PostPosted: Mon Apr 13, 2015 10:05 am    Post subject: Reply with quote

AnrDaemon wrote:
Ещё раз, медленно: Сама постановка задачи дурацкая.
Нормальные люди так просто НЕ ДЕЛАЮТ!
Нормальные люди собирают контент каждого языка отдельно, чтобы потом не крутить плагины почём зря, а сразу показать посетителю страницу на нужном языке.
compile_id уже используется в качестве имени шаблона. Приложение мультишаблонное и пользователь может выбирать для себя шаблон...
Back to top
View user's profile Send private message
AnrDaemon
Administrator


Joined: 03 Dec 2012
Posts: 1785

PostPosted: Mon Apr 13, 2015 11:39 am    Post subject: Reply with quote

compile_id не ограничен по длине и содержимому.
Это намёк, если что.
Back to top
View user's profile Send private message
onotole
Smarty Rookie


Joined: 10 Apr 2015
Posts: 8

PostPosted: Mon Apr 13, 2015 12:29 pm    Post subject: Reply with quote

AnrDaemon wrote:
compile_id не ограничен по длине и содержимому.
Это намёк, если что.
Ладно, подумаю. Спасибо
Back to top
View user's profile Send private message
AnrDaemon
Administrator


Joined: 03 Dec 2012
Posts: 1785

PostPosted: Mon Apr 13, 2015 1:01 pm    Post subject: Reply with quote

Вообще, странно, что для указания шаблона(!) у вас используется compile_id.
Почему не использовать для этого указание шаблона?…
Back to top
View user's profile Send private message
onotole
Smarty Rookie


Joined: 10 Apr 2015
Posts: 8

PostPosted: Mon Apr 13, 2015 2:16 pm    Post subject: Reply with quote

AnrDaemon wrote:
Вообще, странно, что для указания шаблона(!) у вас используется compile_id.
Почему не использовать для этого указание шаблона?…
Да там кроме этого еще много чего реализовано через ноздри носорога.
Я вот смотрю код смарти и особо не понимаю вообще смысла в compile_id. Что он делает вообще?
Back to top
View user's profile Send private message
AnrDaemon
Administrator


Joined: 03 Dec 2012
Posts: 1785

PostPosted: Mon Apr 13, 2015 3:43 pm    Post subject: Reply with quote

Ну значит самое время взять клещи в руки и повырывать лишние ноздри.
Чтобы понять, нафига compile_id, надо понять, как работает smarty Smile
При вызове Smarty::display(или fetch), Smarty
1. ищет указанный шаблон,
2. читает его, преобразуя блоки языка в код PHP,
3. выполняет сформированный код PHP, получая результат,
в результате чего получается видимая пользователем страничка. Или что-то другое, смотря для чего был сделан шаблон. Я вот им почтовые сообщения клепаю. С заголовками и куртизанками.
Результат выполнения каждого из трёх шагов хранится (сохраняется) отдельно и управляется отдельным параметром вызова Smarty::display:
Поиск шаблона - template;
преобразование шаблона в исполнимый код - compile_id;
вывод результата - cache_id.
Замени любой при сохранении других - получишь другой результат. Конечно, если все три так или иначе используются в работе.

Нормально (или, "как задумано"), шаблон указывает оформление страницы, cache_id - вариант наполнения страницы, а compile_d располагается где-то посередине, указывая немного другие параметры компиляции одного и того же шаблона. Например, другой язык того-же самого оформления, если создание полностью другого шаблона неоправдано.
Поэтому мне не очень понятно, почему у вас для смены оформления (шаблона) используется compile_id.
Back to top
View user's profile Send private message
onotole
Smarty Rookie


Joined: 10 Apr 2015
Posts: 8

PostPosted: Mon Apr 13, 2015 6:31 pm    Post subject: Reply with quote

AnrDaemon wrote:
Ну значит самое время взять клещи в руки и повырывать лишние ноздри.
Чтобы понять, нафига compile_id, надо понять, как работает smarty Smile
При вызове Smarty::display(или fetch), Smarty
1. ищет указанный шаблон,
2. читает его, преобразуя блоки языка в код PHP,
3. выполняет сформированный код PHP, получая результат,
в результате чего получается видимая пользователем страничка. Или что-то другое, смотря для чего был сделан шаблон. Я вот им почтовые сообщения клепаю. С заголовками и куртизанками.
Результат выполнения каждого из трёх шагов хранится (сохраняется) отдельно и управляется отдельным параметром вызова Smarty::display:
Поиск шаблона - template;
преобразование шаблона в исполнимый код - compile_id;
вывод результата - cache_id.
Замени любой при сохранении других - получишь другой результат. Конечно, если все три так или иначе используются в работе.

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

Магия да и только =)))
Закомментировал $theme->compile_id - ничего не изменилось. Прописал $theme->compile_id = "ololo"; - тоже никакого результата... Похоже нужно залезть в смарти поглубже и посмотреть, что он вообще делает =)
Back to top
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP