Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Хранение шаблонов Smarty
 
 автор: Thrasher   (18.09.2007 в 09:52)   письмо автору
 
 

Привет всем.
Господа, возникла идея хранить шаблоны Smarty не в файлах, а в базе данных.
У кого-нибудь есть мысли по поводу реализации этого подхода?
Может, кто-то уже этим занимался? Придется ли изменять все ядро движка?

   
 
 автор: sim5   (18.09.2007 в 11:24)   письмо автору
 
   для: Thrasher   (18.09.2007 в 09:52)
 

Не надо ничего менять - хотите, храните, только не понятно, что это дает?

   
 
 автор: Valick   (18.09.2007 в 11:29)   письмо автору
 
   для: sim5   (18.09.2007 в 11:24)
 

О каких шаблонах идёт речь?

   
 
 автор: sim5   (18.09.2007 в 11:33)   письмо автору
 
   для: Valick   (18.09.2007 в 11:29)
 

Смарти.

   
 
 автор: Valick   (18.09.2007 в 11:37)   письмо автору
 
   для: sim5   (18.09.2007 в 11:33)
 

Шо всю библиотеку? Так давайте весь интернет в базу данных засунем, хай там сидит... да и бэкапить удобнее))))
Может речь всётаки о шаблоне станицы?

   
 
 автор: sim5   (18.09.2007 в 11:45)   письмо автору
 
   для: Valick   (18.09.2007 в 11:37)
 

Ну а сам Смарти и не называется шаблоном :) Он и говорит о помещении шаблонов страниц в базу.

   
 
 автор: Valick   (18.09.2007 в 11:53)   письмо автору
 
   для: sim5   (18.09.2007 в 11:45)
 

Сама программа написаная на языке смарти, это тоже шаблон ;)
Там куда ни плюнь, одни шаблоны))))

   
 
 автор: sim5   (18.09.2007 в 11:58)   письмо автору
 
   для: Valick   (18.09.2007 в 11:53)
 

Какая программа? Языка Смарти не существует в природе, а сам Смарти написан на РНР.

   
 
 автор: Valick   (18.09.2007 в 13:00)   письмо автору
 
   для: sim5   (18.09.2007 в 11:58)
 

Языка Смарти не существует
Ещё как существует)) Знаю что на РНР, и что? А РНР на чём написан? Или его тоже не существует?))
Программировать на Смарти с вкраплениями РНР считается дурным тоном, хотя и не возбраняется.
Цитата (Д.Котероа, А.Костарев "РНР5"):
"Smarty - Это популярный язык акивных шаблонов, позволяющий удобно вставлять управляющие конструкции в HTML-код. Фактически Smarty очень похожа на РНР, однако синтаксис её конструкции сильно отличается (в лучшую сторону) от синтаксиса РНР...."

   
 
 автор: sim5   (18.09.2007 в 13:41)   письмо автору
 
   для: Valick   (18.09.2007 в 13:00)
 

Ну не надо только равнять РНР и смарти как языки, Смарти это конструкция - движок шаблонов, есть конечно в нем "правила", которые надо соблюдать, но я бы не назвал это языком как, например РНР, чет у меня язык не поворачивается :))

   
 
 автор: Loki   (19.09.2007 в 11:23)   письмо автору
 
   для: sim5   (18.09.2007 в 13:41)
 

>но я бы не назвал это языком как, например РНР
и совершенно напрасно:) до третей версии php представлял собой тот же смарти, только написанный на перле:) Кто знает во что вырастет смарти:)

   
 
 автор: sim5   (19.09.2007 в 11:44)   письмо автору
 
   для: Loki   (19.09.2007 в 11:23)
 

Может быть и так, но если и язык, то ооочень маленький :) И все таки я склонен считать его конструкцией с инструкциями :)

   
 
 автор: Loki   (19.09.2007 в 11:26)   письмо автору
 
   для: Thrasher   (18.09.2007 в 09:52)
 

хранить-то можно, только что это даст? кроме того, как вы планируете включать шаблоны друг в друга?

   
 
 автор: Thrasher   (19.09.2007 в 14:49)   письмо автору
 
   для: Loki   (19.09.2007 в 11:26)
 

>хранить-то можно, только что это даст? кроме того, как вы планируете включать шаблоны друг в друга?

Ну, например, с целью внесения изменения в шаблоны не через FTP, а через админ. панель: считал код шаблона из базы, внес изменения, сохранил в базу.

   
 
 автор: Гена V   (19.09.2007 в 15:14)   письмо автору
 
   для: Thrasher   (19.09.2007 в 14:49)
 

Считай из файла.........в чем проблема -то?

   
 
 автор: Thrasher   (19.09.2007 в 15:54)   письмо автору
 
   для: Гена V   (19.09.2007 в 15:14)
 

>Считай из файла.........в чем проблема -то?

Да, в принципе, не проблема, просто с БД привычнее работать.
Делал я на файлах. Вылез такой баг: при записи в файл в конце каждой строки добавляются дополнительные символы перевода строк, т.к. после каждой строки добавляется еще одна пустая.
И это происходит только на локальной машине (Windows, Денвер). На хостинге в Инете (Unix) запись файла происходит нормально, лишнего не добавляется.

   
 
 автор: Гена V   (19.09.2007 в 16:30)   письмо автору
 
   для: Thrasher   (19.09.2007 в 15:54)
 

Установите редактор, типа fckeditor........так даже проще будет))))

   
 
 автор: sim5   (19.09.2007 в 17:12)   письмо автору
 
   для: Thrasher   (19.09.2007 в 15:54)
 

Что-то у меня под Windows, Денвер ничего лишнего не появляется, о каких строках идет речь?

   
 
 автор: Thrasher   (19.09.2007 в 17:26)   письмо автору
 
   для: 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);

На локальной машине в файле после каждой строки появляется еще одна пустая строка.
На хостинге пустых строк нет, всё как надо сохраняется.

   
 
 автор: sim5   (19.09.2007 в 17:41)   письмо автору
 
   для: Thrasher   (19.09.2007 в 17:26)
 

Проблемы в кодах перевода строк видимо, уберите их и все будет в норме, они разные для win и unix, смарти то тут при чем?

   
 
 автор: Thrasher   (19.09.2007 в 17:56)   письмо автору
 
   для: sim5   (19.09.2007 в 17:41)
 

>Проблемы в кодах перевода строк видимо, уберите их и все будет в норме, они разные для win и unix, смарти то тут при чем?

Не понял: что и как убрать?
Смарти, конечно, ни при чём. Просто, когда я сохраняю текст из <textarea> в БД, а не в файл, никаких дополнительных символов не возникает.

   
 
 автор: sim5   (19.09.2007 в 18:00)   письмо автору
 
   для: Thrasher   (19.09.2007 в 17:56)
 

Вы полученный текст HEX-редактором просмотрите - поймете, думаю что проблема в них и вы увидите в конце каждой строки код 0D0A.

   
 
 автор: Thrasher   (20.09.2007 в 11:24)   письмо автору
 
   для: sim5   (19.09.2007 в 18:00)
 

>Вы полученный текст HEX-редактором просмотрите - поймете, думаю что проблема в них и вы увидите в конце каждой строки код 0D0A.

Я так понимаю это коды символов \r\n?
Но откуда они берутся дополнительные?

   
 
 автор: Thrasher   (20.09.2007 в 11:32)   письмо автору
 
   для: Thrasher   (20.09.2007 в 11:24)
 

What the fucking?!!!
Только что исправил режим открытия файла на запись с текстового t на бинарный b.
Проблема на локальной машине исчезла. Странно, ведь это же текстовые, а не бинарные данные и работать они должны в текстовом режиме передачи данных...

   
 
 автор: sim5   (20.09.2007 в 11:35)   письмо автору
 
   для: Thrasher   (20.09.2007 в 11:24)
 

Нет не правильно понимаете - в Windows это будет именно 0D0A, а в Unix это \r\n.
Окуда берутся, ну когда вы готовите шаблоны. Подключая их как файлы, а это ведь чистый HTML, все эти переводы будут игнорироваться. Но вот когда вы этот HTML-код "запихиваете" в текст, вот тут они у вас и выползают. Я так понимаю проблему. Могу быть и не прав, потому как не делал такого, да и не стал бы. По моему вы лишнее делаете, не встречал я такой проблемы у Смарти. Вы наверное не разобравшись, усложнили себе жизнь :)

   
 
 автор: Thrasher   (20.09.2007 в 11:55)   письмо автору
 
   для: sim5   (20.09.2007 в 11:35)
 

Да нет, о Смарти речь уже не идет, он здесь совсем не при чем.
Проблема обозначилась другая: нужно через панель управления, т.е. через форму, править содержимое любого текстового файла. Так вот для записи изменений файл я открывал в текстовом режиме (кот. как раз и учитывает различие знаков перевода строк в Windows и Unix). Но, как ни странно, корректная запись текта в файл происходит в бинарном режиме, вот это не ожиданный эффект.

   
 
 автор: Loki   (19.09.2007 в 16:31)   письмо автору
 
   для: Thrasher   (19.09.2007 в 14:49)
 

Не задачу надо под собственные знания подгонять, а знания под задачу.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования