Форумы / National / Russian / Модули и плагины / Редактируемые шаблоны

12>>>

В соседней теме родилась идея - использовать содержимое страницы как шаблон. Хочется обсудить перспективность и возможные реализации.

Macik
#1 01.06.2012 21:43

 

Идея, если коротко, иметь возможность загружать необходимые шаблоны из содержимого страницы (речь не о переносе всех шаблонов в БД, а о более гибком варианте использования некоторых шаблонов для страниц или плагинов).
 
Для чего? Для возможности гибкой (динамической) настройки отображения страниц (или их частей) в зависимости от категории/параметров/возможно содержимого конкретной страницы. Может быть актуально для сайтов-каталогов товаров, например. 
 
В чем удобство:
  •  удобный способ редактировать шаблон (не надо обращаться к файловой системе, используя FTP/SSH клиенты)
  • возможность дать доступ на редактирование стороннему пользователю, не имеющему доступа к файловой системе (администратору заказчика)
  • иметь возможность визуального контроля отображения шаблона (если используется HTML парсинг на странице) - см.пример
Заглянул в coTemplate и судя по беглому анализу просто подсунуть ему текст шаблона не получится, т.к. есть привязка к именам файлов на основе которых
создаются файлы кэша.
Как «костыль» можно сохранять на диск содержимое шаблона в неком временном файле, и оттуда уже его подгружать стандартными средствами. 
 
Пока реализация мне интересна с теоретической точки зрения.
Поэтому и захотелось услышать ваши мнения на это счет. 

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
esclkm
#2 02.06.2012 14:14

переодически хочется использование шаблонизатора из текстовой переменной

littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Moool13
#3 02.06.2012 14:41

Эмм.. Два раза прочитал и не понял..

Fox
#4 02.06.2012 19:33

Пример посмотрел там только ТПЛ теги одним словом ниче не понял

ХаЧу ЧПУ для форума!!! ХаЧу ДаКуменцию к ДвИжКу!!! ХаЧу АпиСания TPL ТаГов!??
Macik
#5 02.06.2012 20:11

Если на пальцах - сейчас все шаблоны  находятся в физических файлах на диске, что бы отредактировать надо загрузить файл, изменить и записать обратно. Мысль поста в том, чтобы обсудить возможность создавать шаблон как страницу. Т.е. создаем обычную страницу и размещаем на ней содержимое шаблона. Т.о. мы имеем возможность создать/радактировать шаблон через обычный web-интерфейс польностью по аналогии со страницой (не нужен доступ к файлам).  

Плюс ко всему при просмотре такой страницы мы будем видеть как этот шаблон (точнее его внутренний HTML каркас) будет выглядеть (это я и привел на картинке). В текущей реализации шаблонизатора нет возможности увидеть как выглядит шаблон, до момента его реального подключения. 

 

#34532 Fox: 

Пример посмотрел там только ТПЛ теги одним словом ниче не понял

Там не только TPL теги, на них как раз смотреть не надо, там главное оформление этих тегов (шрифт, цвета, блоки, и т.п., т.е. то, за что отвечает HTML в шаблоне).

Надеюсь, чуть понятнее объяснил...

 

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Отредактировано: Macik (02.06.2012 20:30, 11 лет назад)
McDuck
#6 02.06.2012 21:03

Фича интересная была бы для разработчика тем, причем не столько для визуальной оценки дизайна страницы (HTML каркас мало информативен), столько для оптимизации отдельных его деталей.

ИМХО как «костыль» сохранение на диск содержимое шаблона в неком временном файле не сработает, т.к. при подгрузке включаемого файла стандартными средствами шаблон не изменится до обновления кэша.

Macik
#7 02.06.2012 23:04
#34537 McDuck:

ИМХО как «костыль» сохранение на диск содержимое шаблона в неком временном файле не сработает, т.к. при подгрузке включаемого файла стандартными средствами шаблон не изменится до обновления кэша.

Мне казалось, что если изменился сам шаблон, то кеш автоматически обновиться. 

Глянул в coTemplate: вроде есть проверка на дату файла, и если дата шаблона «свежее» кеша - кеш должен обновиться.

p.s. А можно поподробнее про вариант использования «фичи» разработчиками тем? Хочется понять примерный алгоритм, по шагам.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
Wilder
#8 04.06.2012 07:34
#34521 esclkm:

переодически хочется использование шаблонизатора из текстовой переменной

Да, да! Буквально вчера в очередной раз столкнулся с подобным желанием :-)

Macik
#9 04.06.2012 08:50
#34566 Wilder:
#34521 esclkm:

переодически хочется использование шаблонизатора из текстовой переменной

Да, да! Буквально вчера в очередной раз столкнулся с подобным желанием :-)

Дык. Напишите, пожалуйста, подробнее: ваш пример использования, в котором бы подошел «редактируемый шаблон», как сейчас решаете эту задачу (в виду отсутствия такой функциональности). 

Хочется собрать больше информации о возможных применениях данной идеи. Понять возможные «узкие» места.

 

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
McDuck
#10 04.06.2012 09:00
#34541 Macik: Мне казалось, что если изменился сам шаблон, то кеш автоматически обновиться. 

Глянул в coTemplate: вроде есть проверка на дату файла, и если дата шаблона «свежее» кеша - кеш должен обновиться.

p.s. А можно поподробнее про вариант использования «фичи» разработчиками тем? Хочется понять примерный алгоритм, по шагам.

Простейший пример:

<!-- BEGIN QUICK_TEMPLATE -->
{TAG_1}
...
{TAG_N}
<!-- END QUICK_TEMPLATE -->
...
<p><input  type="text" name="quicktemplate" ></p> <!-- Source of  QUICK_TEMPLATE -->
<input type="submit" name="Submit" value="Refresh" /></p>
...
Видим вывод шаблона нужного участка, под ним его исходный код
Macik
#11 05.06.2012 00:16

 

Если говорить о той, концепции, о кторой я в начале, то мной предложен «простой» вариант, только возможность подгрузить тело страницы как шаблон (теги на страинце-шаблоне при его просмотре не парсятся (не происходит замены их содержимым)).

А выпредлагаете, как я понял, расширеный вариант, когда при просмотре этой страницы-шаблона теги будут «обработаны» перед выводом. 
Т.е. о том, чтобы была возможность на [любой] странице запользовать произвольный тег, вызвав подстановку его содержимого.
Я правильно мысль уловил?

Тут трудности в том, что сейчас нет прямой зависимости тега и содержимого (которым он будет наполнен), т.к. все плагины вызываются не через теги, а через хуки, да к тому же «пишут» свой вывод в глобальный «поток» шаблона $t. Вот если придумать привязку {Тег} → содержимое...

 
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
McDuck
#12 05.06.2012 05:24

Вы верно уловили суть моей фантазии :)

Nik Samokhvalov
#13 07.06.2012 11:33

Дык. Напишите, пожалуйста, подробнее: ваш пример использования, в котором бы подошел «редактируемый шаблон», как сейчас решаете эту задачу (в виду отсутствия такой функциональности). 

Привет!

Сейчас решается задача примерно так: плагины. Либо статично прописывать условия, либо проверять перед выводом, например, страницы, есть ли в экстраполе БД имя шаблона. Шаблон, разумеется, физический.

Я лично двумя ногами и руками «за!» Грамотно продуманная и реализованная система «„Виртуальных“ шаблонов» поднимет потенциал Котонти по сравнению с другими ЦМС, даже думать нечего. И задачу эту, господа, нужно ставить на первый план.

Один важный момент для ВШ: в админке обязательно должна быть страничка со списком всех созданных ВШ сайта.

Sorry for my English.
Sergeich
#14 07.06.2012 16:17

Был плагин для Седитио, который позволял редактировать шаблоны через админку, особой популярностью не пользовался. Вообще, нужно понимать, что CMS не для дизайнеров и програмёров делается, а для управления сайтом обученными "секретаршами". Шаблоны на действующем ресурсе вы меняете от силы пару раз в год. Среднестатистического заказчика лучше вообще к шаблонам не подпускать близко, ибо шаловливые ручонки могут на раз-два запороть сайт. Отсюда вывод - полезность фичи стремится к нулю.  

Trustmaster
#15 07.06.2012 19:27

Вопрос первый: какова частота обращения БД при загрузке шаблонов из оной? Для справки: при генерации среднестатистической страницы с плагинами вызывается 3-7 шаблонов.

Вопрос второй: что происходит с сайтом, если БД ложится (у многих хостеров такое случается).

Вопрос третий: как вы себе технически представляете редактирование в режиме WYSIWYG страницы, состоящей из 7 разных шаблонов и сотни тегов (да ещё и с подстановкой данных на лету). Я это даже с использованием технологий HTML5 ContentEditable и MVC-фреймворков на JavaScript типа Meteor или Backbone представляю не очень.

Вопрос четвёртый: согласны ли вы с тем, что при передаче третьим лицам прав на редактирование таких шаблонов придётся отказаться от callback-функций шаблонизатора.

May the Source be with you!

12>>>