Метки и рубрики в Albireo CMS
В отличие от других систем в Albireo CMS нет жесткого алгоритма для группировки страниц. Рубрики и метки — это просто уже устоявшийся в Интернете способ группировки записей, поэтому в Albireo CMS он присутствует «из коробки». Но с точно таким же успехом вы можете создать любую другую группировку записей.
Метки
Для указания метки записи используется поле tags
. Метки можно указывать через запятую:
tags: Астрономия, Созвездия
Когда вы набираете в браузере ваш-сайт/tags, то выводится т.н. облако тэгов/меток, то есть все метки, которые система нашла в страницах сайта.
Если же набрать страницу метки, например ваш-сайт/tags/Астрономия, то будет стандартный вывод записей этой метки.
По умолчанию для меток используется поле и адрес с tags
, но это можно изменить, если указать в config.php
ключи slugForTags
и fieldForTags
.
Страница вывода меток — это файл specific/tags.php
. Вам не нужно его редактировать, поскольку он обеспечивает типовой функционал.
Рубрики
Рубрики задаются с помощью поля category
:
category: astro, dinosauria
По адресу ваш-сайт/category будут выводиться все рубрики, а по адресу ваш-сайт/category/astro записи указанной метки.
За вывод рубрик отвечает файл specific/category.php
.
В отличие от меток, рубрики желательно придумать заранее. Для этого служит файл конфигурации website/config/category.php
. Его нужно скопировать из system/config/category.php
.
Каждая рубрика описывается в таком виде:
// короткая ссылка рубрики относительно site/category/ 'slug' => [ 'title' => 'HEAD title', // обязательный 'caption' => 'заголовок для вывода на сайте', 'description' => 'HEAD description', 'text-start' => 'Текст в начале рубрики', 'text-end' => 'Текст в конце рубрики', 'order' => 10, // порядок среди других рубрик 'order-pages' => 'date-asc', // сортировка записей рубрики date-asc или date-desc (по умолчанию) 'limit' => 2, // кол-во записей на одной странице 'path' => 'cat', // иерархия materialize ], В text-start и text-end можно использовать /// это "\n" перенос строки
Если рубрики в website/config/category.php
нет, то она будет выводиться по принципу метки — её название и будет её адресом. Но чтобы указать другие параметры вывода рубрики, нужно её указать в конфигурации.
Общие принципы группировки записей
В Albireo CMS группировать можно любые записи по любым критериям. Например вы хотите часть записей объединить в группу «demo». Для этого в каждой такой записи укажите поле, которое будет указывать на эту группу, например так:
group: demo
Для того, чтобы вывести все эти записи, нужно создать новую страницу и прописать в ней slug
по которой эта страница будет доступна.
Это будет обычная страница, например demo.php
, где указываются все те же поля, что и у других страниц, но в теле страницы нужно будет разместить php-код, который будет получать и выводить записи с group: demo
:
<?php if (!defined('BASE_DIR')) exit('No direct script access allowed'); /** title: Демо description: Демонстрация slug: demo type: system **/ $limit = 7; // кол-во записей на одной странице пагинации $files = getPagesField('group', 'demo'); // получаем записи if (!$files) { header('HTTP/1.0 404 Not Found'); echo extras('not-found.php'); return; } else { $pag = paginationA($files, limit: $limit); $files = $pag['files']; echo tpl(data: $files, tpl: TPL_DIR . 'one-column-3.php', add: ['columnClass' => 'w48', 'header' => 'Демо', 'description' => 'Демонстрация']); echo tpl(data: $pag, tpl: TPL_DIR . getConfig('pagination', 'pagination1.php')); }
Теперь наберите в браузере ваш-сайт/demo и вы увидите типовой вывод записей, где есть group: demo
.
По умолчанию получение записей через getPagesField() происходит с учетом поля type: blog
. Если этого поля нет, то страница не попадёт в выборку.
Данная страница в терминах Albireo CMS называется архивной, то есть страница, которая содержит php-код для вывода других страниц. В архивных страницах для организации вывода используется php-код.
Группировка записей возможна по любым полям. В качестве примера вы можете посмотреть файл demo/dinosauria.php
, где по адресу demo/dinosauria будут выводится записи рубрики «dinosauria».