В этой статье будет краткий обзор работы шаблонов K2. Шаблоны K2 – это некоторые специальные шаблоны вывода, созданные для того, чтобы выводить разные категории K2 по разному. На практике работы с относительно большими и большими проектами их так или иначе приходится использовать. Ведь если вы на одном и том же компоненте K2 выводите и новости, и блоги, и каталог ваших товаров, то очевидно, что внешний вид должен быть разным. Более того, часто недостаточно лишь просто переопределить css стили через новый шаблон Joomla! + поменять настройки категории в K2, а нужно глобально сделать из статьи или заметки карточку товара (со всеми вытекающими последствиями).

Как вы знаете Joomla! 1.5 это система управления содержимым, которая использует модель MVC (Модель-Вид-Контроллер). Для того, чтобы «перегрузить» HTML вывод для расширений, обычно нужно скопировать папку «tmpl» Вида (View) компонента в папку/html/com_ИмяКомпонента/ шаблона Joomla!. В K2 версии 1.0.x разработчики пользовались этим же способом, но это лимитировало потенциал компонента, особенно для вышеперечисленной ситуации, когда компонент должен выводить в одном и том же шаблоне Joomla блог, журнал, каталог товаров.

Таким образом разработчики пришли к выводу, что необходимо создать свой собственный способ шаблонизации компонента. Они решили не отходить от корневого способа для Joomla!: все, что нужно для такой «перегрузки» вывода K2 это скопировать папку/components/com_k2/templates/ и вставить в /templates/Ваш_Шаблон/html/com_k2/. После того как вы скопировали эту папку в вашу /templates/Ваш_Шаблон/html/com_k2/, вы можете заметить, что некоторые Виды находятся прямо в корне этой папки ( например generic.php или user.php), а некоторые другие размещены в подпапке, которая называется «default». Виды, которые находятся в корне этой папки, не могут быть тематизированы в разных вариациях и это нормально, поскольку Вам врядли понадобятся разные шаблоны для страницы регистрации, страницы пользователя, или страницы, которая показывает результаты поиска по содержимому. Если вы хотите переопределить такие страницы, то смело меняйте эти Виды.

Теперь перейдем к Видам, расположенным в папке «default». Эти Виды как раз и являются теми, которые могут быть тематизированы в разные вариации, и эти вариации могут быть выбраны из администраторской панели K2 (при редактировании категорий или пунктов меню к категориям).

Попробую привести пример. Мы находимся в папке /templates/Ваш_Шаблон/html/com_K2/templates/. Скопируем папку «default» и изменим ее имя на «blog» (к примеру). Повторим процесс несколько раз, чтобы создать целую группу шаблонов, которые смогут быть использованы для разных частей нашего сайта. Чтобы редактировать каждый шаблон, нужно всего навсего редактировать файлы, которые находятся в соответствующей папке. Если вы редактируете item.php в папке «blog», то изменения будут справедливы только для категорий или пунктов меню, использующих этот шаблон.

Таким образом, если ваш сайт имеет 3 важные зоны, скажем новостную секцию, базу знаний и каталог продуктов, вы создаете 3 копии папки «default», переименовуете их в соответствующие имена (news, kb, catalog), и потом при создании каждой родительской категории, присваиваете соответствующий шаблон. Потом вы редактируете каждый шаблон, и получаете желаемый внешний вид вашего сайтаКак вы понимаете, эта архитектура открывает целый новый мир работы с внешним видом сайта, основанном на Joomla! + K2, так как разработчик теперь имеет единственный компонент с разными Видами для разной функциональности. Тоесть ваш K2 блог отличается от вашего K2 каталога или от вашей K2 новостной секции и так далее.

Многие разработчики шаблонов (в том числе и я) уже оценили потенциал K2, и на западных сайтах уже стали появлятся новые интересные шаблоны для K2 от основных разработчиков шаблонов Joomla.

Примеры путей для K2 MVC шаблонирования

Для компонента Для шаблона
/components/com_K2/templates/ /templates/Ваш_Шаблон/html/com_K2/templates/
/components/com_K2/templates/user.php /templates/Ваш_Шаблон/html/com_K2/templates/user.php
/components/com_K2/templates/default/item.php /templates/Ваш_Шаблон/html/com_K2/templates/default/item.php
/components/com_K2/templates/newsubtemplate/category.php /templates/Ваш_Шаблон/html/com_K2/templates/newsubtemplate/category.php
(does not have to exist) /templates/Ваш_Шаблон/html/com_K2/templates/Шаблон_Не_Существ_В_Компоненте/category.php