Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Smarty исходный код шаблона, как его получить? 
V
    Опции темы
StachelDraht
Дата 28.9.2009, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 19.1.2006

Репутация: нет
Всего: 1



Привет!
Подсткажите пожалуйста, как получить исходный код (source) шаблона?
В smarty есть какая-нибудь функция или надо пользоваться file_get_contents()?



Спасибо!

Это сообщение отредактировал(а) StachelDraht - 28.9.2009, 00:50
PM MAIL   Вверх
Ипатьев
Дата 28.9.2009, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



Для чего это нужно?
PM MAIL   Вверх
StachelDraht
Дата 28.9.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 19.1.2006

Репутация: нет
Всего: 1



Хочу более менее понять этот smarty

На данный момент хочу сделать систему словаря на сайте.
Т.е. в шаблоне пишем {$dog} а во время компиляции слово переменная должна быть замена на слово на языке который выбран на сайте.
но тогда по идее надо было бы делать что то типа {$word_dog} что бы можно было искать в шаблоне все переменные начинающие на word а дальше уже регулярными выражениями... Потом поиск в таблице и вывод.

Цитата

Для чего это нужно? 

Вот наверно для этого 

Или я опять не в ту степь думаю?
PM MAIL   Вверх
capitan
Дата 28.9.2009, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: нет
Всего: 13



если я правильно понял, то http://www.smarty.net/manual/ru/api.fetch.php
PM MAIL WWW ICQ   Вверх
skyboy
Дата 28.9.2009, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(StachelDraht @  28.9.2009,  10:47 Найти цитируемый пост)
Т.е. в шаблоне пишем {$dog} а во время компиляции слово переменная должна быть замена на слово на языке который выбран на сайте.
но тогда по идее надо было бы делать что то типа {$word_dog} что бы можно было искать в шаблоне все переменные начинающие на word а дальше уже регулярными выражениями... 

не совсем ясно, какую роль предполагается отводить шаблонам с шаблонизатором. есть идея сделать шаблон хранилищем слов? откуда берется "компиляция"?
конечная задача - сайт-переводчик?
PM MAIL   Вверх
Ипатьев
Дата 28.9.2009, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



Разумеется, не в ту.
Это, вообще, редкое извращение. Испечь булочки с изюмом, выковырять изюм и напихать кураги.
Почему нельзя нужное слово присвоить переменной заранее, еще до того, как она будет выведена в шаблон?

PM MAIL   Вверх
StachelDraht
Дата 28.9.2009, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Не Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 19.1.2006

Репутация: нет
Всего: 1



нет, не много не так
если брать не конкретный сайт, а делать универсальную cms с многоязычной поддержкой

есть таблица в базе с полями id, eng, ger, rus, fin...

и смысл то заключается в том, что бы не присваивать в каком нибудь там index.php нужное слово переменной, а просто в шаблоне писать  к примеру {$word_dog} из чего было бы понятно что перменную которая начинается на word обробатывать как слово которое должно выводится из словаря (словарь - эта самая таблица в базе)
PM MAIL   Вверх
capitan
Дата 28.9.2009, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: нет
Всего: 13



StachelDraht,  а не проще кидать в сессию версию сайта и делать выборку из нужного поля в базе, а не извращаться со Smarty?  Тем более структура базы это позволяет сделать.

Чтобы {$word_dog}  вывести, эту переменную все равно придется создать
Код

$smarty->assign('word_dog',$word_dog); 


Это сообщение отредактировал(а) capitan - 28.9.2009, 15:54
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 28.9.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



Автор, судя по всему, изобретает gettext. Речь о языковых константах, которые, обычно, прописаны в теле шаблона. 
Кстати, как дружить смарти с геттекстом, я не знаю. Надо подумать

capitan, в сессию язык писать нельзя. идентификатор языка должен присутствовать в адресной строке, в любой ее части

Это сообщение отредактировал(а) Ипатьев - 28.9.2009, 16:06
PM MAIL   Вверх
capitan
Дата 28.9.2009, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 28.9.2009, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



Домен - это тоже часть адресной строки. Доводы про "юзер сотрет" всегда очень смешные. точно так же он может вообще браузер закрыть. Или другой домен набрать.
Передача языка в адресе - это аксиома. Меня удивляет, что по таким очевидным вещам постоянно возникают вопросы. Одному надо 2 дня рассказывать, как SQL запросы составлять. Другому - как к файлам обращаться. Третьему на существование поисковиков глаза открывать. И ведь, что самое странное - не тем, кто вопросы задает, а тем, кто отвечает.

register_prefilter - это, видимо, то, что автор искал.

PM MAIL   Вверх
sTa1kEr
Дата 28.9.2009, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: нет
Всего: 146



Цитата(capitan @  28.9.2009,  17:17 Найти цитируемый пост)
Ипатьев, Чтобы сдружить Gettext и Smarty как вариант использовать фильтр.

Только тут есть одна проблема, xgettext не знает этого синтаксиса, по этому нужно еще и парсер писать.
PM MAIL   Вверх
capitan
Дата 28.9.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: нет
Всего: 13



обычно я отвечаю так http://lmgtfy.com/?q=smarty+gettext

Ипатьев,  оказывается со Smarty идет block-плагин (block.t.php) для работы с gettext. В шаблоне текст под локализацию выглядит так:
Код

{t}Text to be localized{/t}


PM MAIL WWW ICQ   Вверх
bars80080
Дата 28.9.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: нет
Всего: 315



Цитата(Ипатьев @  28.9.2009,  16:26 Найти цитируемый пост)
Передача языка в адресе - это аксиома.

почему? мне вот совершенно не очевидно. если знаете секрет, поделитесь пожалуйста
PM MAIL WWW   Вверх
capitan
Дата 28.9.2009, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: нет
Всего: 13



bars80080, У каждого своя позиция. Я например в сессии локализацию держу. И буду держать.
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




[ Время генерации скрипта: 0.0845 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.