![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
StachelDraht |
|
|||
![]() Не Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 19.1.2006 Репутация: нет Всего: 1 |
Привет!
Подсткажите пожалуйста, как получить исходный код (source) шаблона? В smarty есть какая-нибудь функция или надо пользоваться file_get_contents()? Спасибо! Это сообщение отредактировал(а) StachelDraht - 28.9.2009, 00:50 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: нет Всего: 37 |
Для чего это нужно?
|
|||
|
||||
StachelDraht |
|
|||
![]() Не Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 19.1.2006 Репутация: нет Всего: 1 |
Хочу более менее понять этот smarty
На данный момент хочу сделать систему словаря на сайте. Т.е. в шаблоне пишем {$dog} а во время компиляции слово переменная должна быть замена на слово на языке который выбран на сайте. но тогда по идее надо было бы делать что то типа {$word_dog} что бы можно было искать в шаблоне все переменные начинающие на word а дальше уже регулярными выражениями... Потом поиск в таблице и вывод.
Вот наверно для этого Или я опять не в ту степь думаю? |
|||
|
||||
capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: нет Всего: 13 |
если я правильно понял, то http://www.smarty.net/manual/ru/api.fetch.php
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: нет Всего: 260 |
не совсем ясно, какую роль предполагается отводить шаблонам с шаблонизатором. есть идея сделать шаблон хранилищем слов? откуда берется "компиляция"? конечная задача - сайт-переводчик? |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: нет Всего: 37 |
Разумеется, не в ту.
Это, вообще, редкое извращение. Испечь булочки с изюмом, выковырять изюм и напихать кураги. Почему нельзя нужное слово присвоить переменной заранее, еще до того, как она будет выведена в шаблон? |
|||
|
||||
StachelDraht |
|
|||
![]() Не Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 19.1.2006 Репутация: нет Всего: 1 |
нет, не много не так
если брать не конкретный сайт, а делать универсальную cms с многоязычной поддержкой есть таблица в базе с полями id, eng, ger, rus, fin... и смысл то заключается в том, что бы не присваивать в каком нибудь там index.php нужное слово переменной, а просто в шаблоне писать к примеру {$word_dog} из чего было бы понятно что перменную которая начинается на word обробатывать как слово которое должно выводится из словаря (словарь - эта самая таблица в базе) |
|||
|
||||
capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: нет Всего: 13 |
StachelDraht, а не проще кидать в сессию версию сайта и делать выборку из нужного поля в базе, а не извращаться со Smarty? Тем более структура базы это позволяет сделать.
Чтобы {$word_dog} вывести, эту переменную все равно придется создать
Это сообщение отредактировал(а) capitan - 28.9.2009, 15:54 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: нет Всего: 37 |
Автор, судя по всему, изобретает gettext. Речь о языковых константах, которые, обычно, прописаны в теле шаблона.
Кстати, как дружить смарти с геттекстом, я не знаю. Надо подумать capitan, в сессию язык писать нельзя. идентификатор языка должен присутствовать в адресной строке, в любой ее части Это сообщение отредактировал(а) Ипатьев - 28.9.2009, 16:06 |
|||
|
||||
capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: нет Всего: 13 |
Ипатьев, Чтобы сдружить Gettext и Smarty как вариант использовать фильтр.
http://www.phpinsider.com/smarty-forum/vie...b51f0bc11#42156 По поводу "идентификатор языка должен присутствовать в адресной строке, в любой ее части" не согласен. Может потеряться, например при посте или юзер уберет все из адресной строки, оставив только домен. Обычно для локализации используют иконки,- нажал и получил нужную локализацию. Или использовать под каждую локализацию поддомен. Тогда точно не потеряется. Хотя встречал сайты, где индефикатор есть в строке. Как пример все тот же http://php.net/ P.S. вроде похожая тема http://forum.vingrad.ru/forum/topic-233263.html Это сообщение отредактировал(а) capitan - 28.9.2009, 16:25 |
|||
|
||||
Ипатьев |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: нет Всего: 37 |
Домен - это тоже часть адресной строки. Доводы про "юзер сотрет" всегда очень смешные. точно так же он может вообще браузер закрыть. Или другой домен набрать.
Передача языка в адресе - это аксиома. Меня удивляет, что по таким очевидным вещам постоянно возникают вопросы. Одному надо 2 дня рассказывать, как SQL запросы составлять. Другому - как к файлам обращаться. Третьему на существование поисковиков глаза открывать. И ведь, что самое странное - не тем, кто вопросы задает, а тем, кто отвечает. register_prefilter - это, видимо, то, что автор искал. |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: нет Всего: 146 |
||||
|
||||
capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: нет Всего: 13 |
обычно я отвечаю так http://lmgtfy.com/?q=smarty+gettext
Ипатьев, оказывается со Smarty идет block-плагин (block.t.php) для работы с gettext. В шаблоне текст под локализацию выглядит так:
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: нет Всего: 315 |
||||
|
||||
capitan |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 27.2.2005 Где: Москва Репутация: нет Всего: 13 |
bars80080, У каждого своя позиция. Я например в сессии локализацию держу. И буду держать.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Libraries | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |