Разметка (layout) в шаблонах

Рейтинг: 10.9350  
На голосовании
Предложил Пользователь 127171 16.07.2014 16:36:52

Разметка (layout) в шаблонах

Добрый день!

Хотелось бы видеть в будущих релизах Битрикс более дружелюбную систему шаблонов. У шаблона может быть несколько вариантов разметки: с левой колонкой, без левой колонки, версия печати, и тд). Сейчас это можно реализовать через несколько шаблонов, либо использовать шаблоны страниц. Каждый из вариантов имеет свои минусы. Реализация нескольких шаблонов  по моему мнению не корректна, так как происходит дублирование верстки, css и js (если не выносить в .default), ну и вообще это не правильно с точки зрения человеческой логики.
Использовать шаблоны страниц - крайне не желательно, так как этот функционал просто копирует верстку из шаблона в файл страницы. Если шаблон страницы необходимо изменить - то увы его придется менять на всех страницах, которые были созданы на его основе.

Мое предложение сделать layout'ы, как во многих известных шаблонизаторах (пример http://laravel.com/docs/templates#blade-templating). При создании страницы в ее настройках выбираешь тот layout, от которого наследовать страницу. Далее на странице размещаются компоненты во вставки (sections) либо включаемые области. Данная реализация позволит с легкостью переключаться между разметками страницы, не изменяя ее код; держать разметки в одном шаблоне; изменение разметки не повлечет за собой изменение страниц.  

Рейтинг: 0  
Пользователь 209071 11.08.2014 13:56:46
Полностью согласен, было бы здорово!
Рейтинг: 0  
Пользователь 104137 15.08.2014 10:53:10
Идея хорошая, но не критическая.
И двух вариантов, мне больше нравится вариант с шаблонами страниц. Но отсюда вытекает описанная проблема, что нужно в будущем менять все страницы.
Я это решаю простым инклудом в шаблон страницы. У всех страниц по данному шаблону одинаковый инклуд, изменил файл инклуда, изменились все страницы.  
Рейтинг: 0  
Пользователь 104137 15.08.2014 10:53:12
Идея хорошая, но не критическая.
И двух вариантов, мне больше нравится вариант с шаблонами страниц. Но отсюда вытекает описанная проблема, что нужно в будущем менять все страницы.
Я это решаю простым инклудом в шаблон страницы. У всех страниц по данному шаблону одинаковый инклуд, изменил файл инклуда, изменились все страницы.