|
|
|
| Привет всем.
Господа, возникла идея хранить шаблоны Smarty не в файлах, а в базе данных.
У кого-нибудь есть мысли по поводу реализации этого подхода?
Может, кто-то уже этим занимался? Придется ли изменять все ядро движка? | |
|
|
|
|
|
|
|
для: Thrasher
(18.09.2007 в 09:52)
| | Не надо ничего менять - хотите, храните, только не понятно, что это дает? | |
|
|
|
|
|
|
|
для: sim5
(18.09.2007 в 11:24)
| | О каких шаблонах идёт речь? | |
|
|
|
|
|
|
|
для: Valick
(18.09.2007 в 11:29)
| | Смарти. | |
|
|
|
|
|
|
|
для: sim5
(18.09.2007 в 11:33)
| | Шо всю библиотеку? Так давайте весь интернет в базу данных засунем, хай там сидит... да и бэкапить удобнее))))
Может речь всётаки о шаблоне станицы? | |
|
|
|
|
|
|
|
для: Valick
(18.09.2007 в 11:37)
| | Ну а сам Смарти и не называется шаблоном :) Он и говорит о помещении шаблонов страниц в базу. | |
|
|
|
|
|
|
|
для: sim5
(18.09.2007 в 11:45)
| | Сама программа написаная на языке смарти, это тоже шаблон ;)
Там куда ни плюнь, одни шаблоны)))) | |
|
|
|
|
|
|
|
для: Valick
(18.09.2007 в 11:53)
| | Какая программа? Языка Смарти не существует в природе, а сам Смарти написан на РНР. | |
|
|
|
|
|
|
|
для: sim5
(18.09.2007 в 11:58)
| | Языка Смарти не существует
Ещё как существует)) Знаю что на РНР, и что? А РНР на чём написан? Или его тоже не существует?))
Программировать на Смарти с вкраплениями РНР считается дурным тоном, хотя и не возбраняется.
Цитата (Д.Котероа, А.Костарев "РНР5"):
"Smarty - Это популярный язык акивных шаблонов, позволяющий удобно вставлять управляющие конструкции в HTML-код. Фактически Smarty очень похожа на РНР, однако синтаксис её конструкции сильно отличается (в лучшую сторону) от синтаксиса РНР...." | |
|
|
|
|
|
|
|
для: Valick
(18.09.2007 в 13:00)
| | Ну не надо только равнять РНР и смарти как языки, Смарти это конструкция - движок шаблонов, есть конечно в нем "правила", которые надо соблюдать, но я бы не назвал это языком как, например РНР, чет у меня язык не поворачивается :)) | |
|
|
|
|
|
|
|
для: sim5
(18.09.2007 в 13:41)
| | >но я бы не назвал это языком как, например РНР
и совершенно напрасно:) до третей версии php представлял собой тот же смарти, только написанный на перле:) Кто знает во что вырастет смарти:) | |
|
|
|
|
|
|
|
для: Loki
(19.09.2007 в 11:23)
| | Может быть и так, но если и язык, то ооочень маленький :) И все таки я склонен считать его конструкцией с инструкциями :) | |
|
|
|
|
|
|
|
для: Thrasher
(18.09.2007 в 09:52)
| | хранить-то можно, только что это даст? кроме того, как вы планируете включать шаблоны друг в друга? | |
|
|
|
|
|
|
|
для: Loki
(19.09.2007 в 11:26)
| | >хранить-то можно, только что это даст? кроме того, как вы планируете включать шаблоны друг в друга?
Ну, например, с целью внесения изменения в шаблоны не через FTP, а через админ. панель: считал код шаблона из базы, внес изменения, сохранил в базу. | |
|
|
|
|
|
|
|
для: Thrasher
(19.09.2007 в 14:49)
| | Считай из файла.........в чем проблема -то? | |
|
|
|
|
|
|
|
для: Гена V
(19.09.2007 в 15:14)
| | >Считай из файла.........в чем проблема -то?
Да, в принципе, не проблема, просто с БД привычнее работать.
Делал я на файлах. Вылез такой баг: при записи в файл в конце каждой строки добавляются дополнительные символы перевода строк, т.к. после каждой строки добавляется еще одна пустая.
И это происходит только на локальной машине (Windows, Денвер). На хостинге в Инете (Unix) запись файла происходит нормально, лишнего не добавляется. | |
|
|
|
|
|
|
|
для: Thrasher
(19.09.2007 в 15:54)
| | Установите редактор, типа fckeditor........так даже проще будет)))) | |
|
|
|
|
|
|
|
для: Thrasher
(19.09.2007 в 15:54)
| | Что-то у меня под Windows, Денвер ничего лишнего не появляется, о каких строках идет речь? | |
|
|
|
|
|
|
|
для: sim5
(19.09.2007 в 17:12)
| | >Что-то у меня под Windows, Денвер ничего лишнего не появляется, о каких строках идет речь?
Читаю из файла шаблона данные с помощью file_get_contents($file).
Вставляю это в <textarea>.
Там html-код шаблона можно исправить, и далее записываю исправленный код шаблона обратно в файл так:
$f = fopen($file, "r+t");
flock($f, LOCK_EX);
ftruncate($f, 0);
fseek($f, 0, SEEK_SET);
fwrite($f, $text);
fclose($f);
|
На локальной машине в файле после каждой строки появляется еще одна пустая строка.
На хостинге пустых строк нет, всё как надо сохраняется. | |
|
|
|
|
|
|
|
для: Thrasher
(19.09.2007 в 17:26)
| | Проблемы в кодах перевода строк видимо, уберите их и все будет в норме, они разные для win и unix, смарти то тут при чем? | |
|
|
|
|
|
|
|
для: sim5
(19.09.2007 в 17:41)
| | >Проблемы в кодах перевода строк видимо, уберите их и все будет в норме, они разные для win и unix, смарти то тут при чем?
Не понял: что и как убрать?
Смарти, конечно, ни при чём. Просто, когда я сохраняю текст из <textarea> в БД, а не в файл, никаких дополнительных символов не возникает. | |
|
|
|
|
|
|
|
для: Thrasher
(19.09.2007 в 17:56)
| | Вы полученный текст HEX-редактором просмотрите - поймете, думаю что проблема в них и вы увидите в конце каждой строки код 0D0A. | |
|
|
|
|
|
|
|
для: sim5
(19.09.2007 в 18:00)
| | >Вы полученный текст HEX-редактором просмотрите - поймете, думаю что проблема в них и вы увидите в конце каждой строки код 0D0A.
Я так понимаю это коды символов \r\n?
Но откуда они берутся дополнительные? | |
|
|
|
|
|
|
|
для: Thrasher
(20.09.2007 в 11:24)
| | What the fucking?!!!
Только что исправил режим открытия файла на запись с текстового t на бинарный b.
Проблема на локальной машине исчезла. Странно, ведь это же текстовые, а не бинарные данные и работать они должны в текстовом режиме передачи данных... | |
|
|
|
|
|
|
|
для: Thrasher
(20.09.2007 в 11:24)
| | Нет не правильно понимаете - в Windows это будет именно 0D0A, а в Unix это \r\n.
Окуда берутся, ну когда вы готовите шаблоны. Подключая их как файлы, а это ведь чистый HTML, все эти переводы будут игнорироваться. Но вот когда вы этот HTML-код "запихиваете" в текст, вот тут они у вас и выползают. Я так понимаю проблему. Могу быть и не прав, потому как не делал такого, да и не стал бы. По моему вы лишнее делаете, не встречал я такой проблемы у Смарти. Вы наверное не разобравшись, усложнили себе жизнь :) | |
|
|
|
|
|
|
|
для: sim5
(20.09.2007 в 11:35)
| | Да нет, о Смарти речь уже не идет, он здесь совсем не при чем.
Проблема обозначилась другая: нужно через панель управления, т.е. через форму, править содержимое любого текстового файла. Так вот для записи изменений файл я открывал в текстовом режиме (кот. как раз и учитывает различие знаков перевода строк в Windows и Unix). Но, как ни странно, корректная запись текта в файл происходит в бинарном режиме, вот это не ожиданный эффект. | |
|
|
|
|
|
|
|
для: Thrasher
(19.09.2007 в 14:49)
| | Не задачу надо под собственные знания подгонять, а знания под задачу. | |
|
|
|