Альтернативный шаблон и собственный тип пункта меню для вывода материалов категории на сайте Joomla 3

Что такое альтернативные макеты различных компонентов CMS Joomla 3 мы уже знаем, об этом была написана не одна статья посвященная переопределению. На сей раз, я хочу рассказать Вам о том, как создать собственный макет или шаблон для вывода материалов определённой категории с привязкой его к типу пункта меню в панели управления.

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

Конечно, можно всегда пойти другим путем, переопределить тот или иной макет под свои нужды, этого нам никто не запрещает. Но тут есть один момент, если у Вас материалы категории выводится при помощи пункта меню, то указать альтернативный макет для вывода материалов у Вас, увы, не получится.

Как быть в таком случае? Ответ на данный вопрос, как и его решение, достаточно прост – создать собственный макет или если хотите шаблон для вывода материалов категории и привязать его к типу пункта меню в панели управления. Если ничего не понятно, то посмотрите на скриншот, где показаны стандартные типы пункта меню для вывода материалов:

Стандартные типы пункта меню для вывода материалов

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

С чего начать создание собственного шаблона для материалов категории

Шаблон или макет для материалов это не то же самое что шаблон для сайта целиком, прошу не путать. Если Вы читали статью «Переопределение макета блога категории в Joomla 3» то уже знаете, что за вывод материалов в виде блога категории отвечают два основных файла blog.php, blog_item.php расположенные в папке components/com_content/views/category/tmpl. Кроме того в этой же папке находятся файлы отвечающие за вывод материалов категории в виде списка - default.php, default_item.php.

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

Для начала копируем вышеуказанные файлы (в моем случае blog.php, blog_item.php), а так же файл blog.xml из папки components/com_content/views/category/tmpl в папку templates/имя_вашего_шаблона/html/com_content/category. Теперь следует дать данным файлам новое название. Я решил назвать данные файлы так: new-blog.php, new-blog_item.php, new-blog.xml. Обратите внимание, что символ подчеркивания может быть только у одного файла и только в одном экземпляре.

Файлы необходимые для создания собственного макета категории с привязкой к пункту меню в панели управления

Файлы созданы и находятся на своем месте, отлично, теперь необходимо внести некоторые изменения в файл с инструкциями new-blog.xml. Для этого открываем его и смотрим на его содержимое, в самом начале файла Вы можете наблюдать следующий код (строки с 1 по 8):

<?xml version="1.0" encoding="utf-8"?>
<metadata>
 <layout title="COM_CONTENT_CATEGORY_VIEW_BLOG_TITLE" option="COM_CONTENT_CATEGORY_VIEW_BLOG_OPTION">
  <help key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_BLOG" />
  <message>
   <![CDATA[COM_CONTENT_CATEGORY_VIEW_BLOG_DESC]]>
  </message>
 </layout>

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

<layout title="COM_CONTENT_CATEGORY_VIEW_NEW-BLOG_TITLE" option="COM_CONTENT_CATEGORY_VIEW_NEW-BLOG_OPTION">
 <help key = "JHELP_MENUS_MENU_ITEM_ARTICLE_CATEGORY_NEW-BLOG" />
 <message>
  <![CDATA[COM_CONTENT_CATEGORY_VIEW_NEW-BLOG_DESC]]>
 </message>
</layout>

Сохраняем файл, он нам больше не пригодиться. Теперь можно перейти в панель управления и посмотреть, что у нас получилось. В менеджере меню открываем один из пунктов для редактирования и жмем на кнопку «Выбрать» напротив типа пункта меню. Вот что у нас должно получиться:

Новый пользовательский тип пункта меню для отображения материалов категории

Переопределение языковых констант

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

Для решения подобной задачи можно воспользоваться несколькими способами, самый простой это перейти в раздел панели управления «Менеджер языков: Переопределение констант» (Расширения -> Языки -> Переопределение констант). С помощью фильтра выбираем раздел «Панель управления» и жмем кнопку «Создать».

Все четыре языковые константы нам переопределять нет смысла, достаточно будет переопределить константу с заголовком типа пункта меню (TITLE) и с кратким описанием (DESC), данные константы у нас расположены в строках 3 и 6 файла new-blog.xml:

  1. COM_CONTENT_CATEGORY_VIEW_NEW-BLOG_TITLE
  2. COM_CONTENT_CATEGORY_VIEW_NEW-BLOG_DESC

Прописываем данные константы, даем им свое название и сохраняем, результат должен быть примерно таким:

Переопределение языковых констант для придания новому типу пункта меню адекватного названия

Более подробно про переопределение языковых констант и локализацию Joomla 3 я расскажу в следующей статье, а сейчас давайте посмотрим, что у нас получилось. Снова переходим в редактор пункта меню и смотрим, как отображается наш новый тип пункта меню:

Новый тип пункта меню для вывода материалов категории в Joomla 3

Вот и все, затратив всего 5-10 минут, мы создали новый тип пункта меню и привязали его к панели управления. Осталось лишь изменить файлы new-blog.php и new-blog_item.php по своему усмотрению, чтобы сделать наш макет уникальным. Как редактировать файлы макета, подробно написано в статье «Переопределение макета блога категории в Joomla. Часть-2».

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

Добавить комментарий


Комментарии   

тем
0 #1 тем 25.01.2018 15:33
интересно! буду читать дальше - мне нужен список материалов сделанный в другом стиле - цвет, шрифт, фон и т.д.
Цитировать
Joom4all
0 #2 Joom4all 26.01.2018 09:54
Для этого будет достаточно сначала создать новый макет, в нем оставить все как есть, но в контейнеры (блоки DIV) добавить новые классы. А дальше средствами CSS оформить все по своему усмотрению.
Цитировать
Rain
0 #3 Rain 27.10.2018 01:22
Спасибо за статью, все доходчиво
Цитировать