dimayakovlev.ru


Задание и вывод описаний для значений типов таксономии в Grav CMS

Система таксономии в Grav CMS играет важную роль при создании коллекций страниц. Однако её использование может быть расширено, если задать для значений её типов осмысленные описания. Например, такие описания могут быть использованы для вывода на страницах веб-сайта развёрнутой информации о назначенных для них категориях, типах или тегах. Я предлагаю рассмотреть механизм реализации такой возможности на примере задания осмысленных описаний для значений типа таксономии category.

Для начала работы следует проверить существование типа таксономии category и создать его, если он не создан. Прочитать о работе с типами таксономии можно в официальном руководстве пользователя Grav CMS.

Предположим, что для организации и описания категорий страниц веб-сайта используются следующие значения типа таксономии category:

  • note – страница с заметкой;
  • photo – страница с фотографией;
  • product – страница с информацией о товаре.

Теперь, для того, чтобы задать описания для каждого значения таксономии типа category, следует внести изменения в файл настроек веб-сайта user\config\site.yaml:

custom:
	taxonomies:
    	category:
        	'note': 'Это заметка, которую я написал, чтобы поделиться с вами собственными мыслями'
            'photo': 'Это фотография, которую я снял, чтобы показать вам собственный взгляд на мир'
            'product': 'Это поделка ручной работы, которую я сделал своими руками и предлагаю вам'

Важно! В этом примере я использую поле custom с целью логического отделения собственных настроек от стандартных настроек, определённых разработчиками системы управления контентом Grav CMS. Использование такого подхода упрощает дальнейшую поддержку веб-сайта, избавляя меня от необходимости запоминания и контроля за набором полей, добавленных вручную, связанных с конкретным веб-сайтом.

Для вывода описания значения типа таксономии category, назначенного для текущей страницы, можно использовать в шаблоне Twig следующий код:


{% set page_category = page.taxonomy.category[0] %}
{% if site.custom.taxonomies.category[page_category] %}
	<p class="taxonomy taxonomy__category">{{ site.custom.taxonomies.category[page_category] }}</p>
{% endif %}

Использование рассмотренной методики не ограничивается заданием и выводом исключительно описания значения типа таксономии. Используя её, вы можете создать любое количество полей, описывающих значения типов таксономии, либо найти дополнительные возможности применения этой методики при работе над конкретным проектом веб-сайта на основе Grav CMS.