Этикет при создании шаблонов

Статус
В этой теме нельзя размещать новые ответы.

[/root.]

Он самый
Регистрация
20 Май 2006
Сообщения
370
Реакции
70
Данная статья является моей точкой зрения на оформление и организацию шаблонов. Речь идет не о блоговых лэйаутах, поэтому некоторые вещи могут показатся несколько неоправданными.

Система шаблонов ExpressionEngine является эталоном в своем классе. Более элегантного и удобночитаемого кода и тегов представить себе тяжело (опять же вкус и цвет отличный повод набить друг другу морды).

Построение шаблонов можно разделить на два типа:
- Группы темплейтов
- Глобальные переменные (global variables)

Группы - это основной метод построение внешнего вида. В стандартной поставке уже создана группа "site", которая включает в себя такие шаблоны как комментарии, главная страница, страница архивов и прочее. А так-же другую группу "search" в которой находится оформление выдачи поиска и related-оформления.

Главная ошибка начинающих - это боязнь разбивать оформление на группы. Не стоит запихивать все в одно место. Просто придерживайтесь правила, что должно быть гибко, но и в будущем вы сами с легкостью смогли в этом разобратся.

Лично я всегда создаю группу global куда включаю элементы из дефолтной группы "site". Т.е основные шаблоны.

RSS и прочие ленты выношу в группу export.
Прочие элементы, которые нужно подключать через embed, но нельзя использовать в глобальных переменных выношу в группу includes (header, footer, файлы стилей).

Основное отличие глобальных переменных от шаблонов - это полное отстутствие поддержки EE тегов и php кода. Следовательно глобальные перменные не создают нагрузку при подключении, в отличие от тех же шаблонов (embed).

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

В глобальные переменные можно выносить вещи, которые казалось бы имеют право находится в самих шаблонах. Например:
ЯваСкрипты
Doctype документа
Фавикон
Тег <body>
Закрывающие теги </head>; </body>; </html>
Рекламные зоны (!)

Как бы странно это не выглядело, но в будущем использование такого подхода только помогает при создании нового шаблона или редактирования текущего.

На выдаче мы имеем легкочитаемый код вида:
{html.head}
{embed='includes/header'}
{js}
{css}
{rss}
{favicon}
{html_head_end}

{body}
{embed='includes/menu'}
{embed='includes/content'}
{embed='includes/footer'}
{html_close}

Так-же учитывая, что в EE есть возможность сохранение шаблонов в файлы, вы всегда можете использовать любимый редактор с подсветкой синтаксиса, что сокращает время редактирование, если бы вы работали через админку и уменьшает нагрузку на БД.

Глобальные переменные можно разделять нижнем подчеркиванием [ _ ] или обычным дефисом [ - ]. Шаблоны тем же самым, но и включая точку [ . ]. Поэтому сразу задайте себе стиль. Если используете глобальную переменную, то разделяйте одним способом, а шаблоны другим. Я например в глобальных переменных всегда использую подчеркивание - {html_close}, а в инклудах точку - {html.head}. Симпотично и логично.

Небольшой совет: Не используйте большое количество инклудов. На мрачных хостингах или на проектах с большой посещаемостью - это приведет к ощутимой нагрузке (опять же в зависимости какой тип шаблона вы инклудите).

Если есть вопросы или заметки, то прошу. Не стесняйтесь *_*
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху