Albireo CMS 2025.06.03

Поля страниц в Albireo CMS

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

Имя поля может быть произвольным и обязательно заканчиваться на символ двоеточия и пробел : . Например slug: about — верно, а slug:about — ошибка. Это позволяет использовать в ключах символ :, например: meta[og:title]: Заголовок страницы.

С помощью полей можно управлять выводом страницы. Поля также хранят данные, которые могут использовать другие страницы. Например поле title не только формирует заголовок браузера, но и используется для вывода заголовка на странице рубрик, меток и т.п.

В полях можно использовать обычный текст, HTML, исполняемый php-код, а также специальные замены. Albireo CMS в этом плане очень развитая система.

Если поле начинается с символа #, то оно игнорируется системой. Используйте эту возможность, чтобы закомментировать ненужное поле.

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

Описание страницы

Поле title используется для формирования тэга TITLE.

Поле description используется для формирования meta description.

Поле announce будет использовано на архивных страницах (главная, рубрики, метки и т.п.).

title: Заголовок страницы
description: Описание страницы
announce: Краткое описание

В полях можно использовать html-код. Если в поле нужно сделать перенос строки (\n), то можно использовать //

announce: Разнообразный и богатый опыт начало <b>повседневной работы</b> по формированию позиции играет важную роль //в формировании дальнейших направлений развития.

Начальные и конечные пробелы поля автоматически удаляются, но если пробелы нужны, то используйте специальную замену [NBSP]:

title: [NBSP]Заголовок страницы[NBSP]

Адреса страницы

Адрес страницы формируется на основе поля slug. Если его нет, то будет использовано имя файла. Например файл hello.php (где нет поля slug) будет доступен по адресу ваш-сайт/hello. Можно разместить файл в подкаталоге, и он будет также учтён в адресе. Например если разместить файл в my/about/hello.php, то он будет доступен по адресу ваш-сайт/my/about/hello. То есть подкаталоги (внутри pages) повторяют структуру адреса страницы.

Если же страница должна быть доступна по адресу, независимо от своего расположения, то используется поле slug. Примеры:

slug: hello
slug: hello.html
slug: my/about/hello

# можно использовать в адресе даже эмодзи
slug: my/❤️/🐱

Поле slug используется как есть, то есть система не проверяет реальность этого адреса, а только подключает этот файл, когда он набран в браузере. Именно поэтому вы можете использовать абсолютно любую структуру URL для своего сайта.

Если страница должна быть доступна сразу для нескольких адресов, то дополнительно нужно указать поле slug-pattern, которое может содержать либо второй адрес, либо php-паттерн в формате функции preg_math(). например:

# основной адрес ваш-сайт/hello
slug: hello

# страница будет доступна по адресам: ваш-сайт/hello, ваш-сайт/about или ваш-сайт/welcome
slug-pattern: (about|welcome)

# любой символ
# ваш-сайт/hello/123 | ваш-сайт/hello/abc | ваш-сайт/hello/a_b-c2 
slug-pattern: hello/(.*?)

# только числа
# ваш-сайт/hello/123
slug-pattern: hello/([0-9]+)

# только буквы
# ваш-сайт/hello/abc
slug-pattern: hello/([a-zA-Z]+)

# буквы и/или цифры
# ваш-сайт/page/abc | ваш-сайт/hello/123 | ваш-сайт/hello/123abc
slug-pattern: hello/([a-zA-Z0-9]+)

# включить все «hello/*», за исключением «hello/about» и «hello/contact»
slug-pattern: hello/(?!about)(?!contact)(.*)

Сортировка файлов

Albireo CMS поддерживает автоматическую сортировку файлов с помощью числового префикса: ЧИСЛО.имя.php. Если система встретит такой файл, то она выполнит сортировку файлов с учетом числового префикса, но поле slug сформирует без его участия. Например:

01.directories.php -> directories
02.pages.php -> pages
03.page-structure.php -> page-structure
04.page-fields.php -> page-fields

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

Если страница должна начинаться с числа с точкой, то добавьте фиктивные числа в начале. Например, файл 01.02.test.php будет иметь адрес https://ваш-сайт/02.test.

Запрещенные символы в адресах. Защита от XSS

В целях защиты от XSS-так в адресах страниц нельзя использовать символы < > " ' ( {. Эти символы нетипичны для адресов, но могут использоваться для создания xss-атаки на ваш сайт, например в виде адреса https://ваш-сайт/<script>alert(1);</script>

Если Albireo CMS встретит любой из этих символов, то автоматически выдаст 404-страницу.

Однако, если по какой-то причине, вам нужно использовать эти символы, то вы можете в конфигурационном файле config.php указать свои запрещённые символы:

// Запрещённые в адресах символы - защита от XSS-атаки
'charsForbiddenUrl' => '<>"\'({';

Тип записи

В системе предопределены два типа записи:

type: blog
type: system

Блоговый тип — это основной тип записи, который используется для того, чтобы иметь возможность вывести страницу на архивных страницах. Например на главной странице будут выведены только те записи у которых отмечен тип blog. Если у записи нет этого типа, то она не будет отображаться на главной, в рубриках и т.п. С помощью поля type вы можете группировать записи.

Тип system введён для тех страниц, которые не должны использоваться как обычные страницы сайта. Например страница контактов должна не только не выводится в архивах, но и отключать некоторые другие возможности системы, например размещение комментариев.

Если страница не имеет поля type, то она всё также доступна по прямой ссылке.

Дата

Дата публикации указывается в поле date. Вы можете использовать любой формат даты, которые поддерживает функция strtotime.

date: 2024-02-11
date: 2024-06-11 12:56:32
date: 30-June 2024 19.20

Чтобы исключить неожиданности, лучше использовать стандартный вариант «ГГГГ-ММ-ДД ЧЧ:ММ»

Страница может содержать поле даты, где указывается её последнее изменение:

date-edit: 2024-09-10 14:32

Здесь формат даты точно такой же.

В некоторых случаях требуется задавать будущее время публикации. Делается это с помощью поля date-pub.

date-pub: 2024-09-26 12:00

Система сравнит эту дату с текущим временем и если оно ещё не наступило, то поставит для этой страницы метку «черновик», тем самым исключив её из публикации на сайте.

Черновик

В процессе написания страницу можно перевести в режим черновика. Для этого служит поле draft.

draft: +

Это поле — логическое и оно работает по принципу «включено/выключено». Если значение поля будут одним из: 0, -, false, то оно будет считаться «выключено».

draft: -
draft: 0
draft: false

Если поле будет равно 1, true, + или любому другому тексту, то оно будет считаться включенным.

draft: +
draft: 1
draft: true
draft: вкл
draft: abrakababra

Логические поля часто встречаются в Albireo CMS, но все они работают по единым правилам.

Комментирование

Управлять комментированием страницы можно с помощью поля comments. Когда оно включено, то комментирование на странице разрешено:

comments: +

Если же на странице уже есть комментарии, то отключение comments оставит их для вывода. Если же их нужно убрать, то используется поле comments-pub. Когда оно выключено, то старые комментарии не будут публиковаться.

comments-pub: -

Статистика

Для подсчёта количества прочтений страницы используется поле stat. Если оно включено, то система будет производить подсчёт (по умолчанию поле выключено):

stat: +

Вы можете указать стартовое число:

stat-start: 122

Статистика stat сохраняет информацию о посещенной странице, включая дату и время посещения, а также referer, то есть адрес откуда был сделан переход. Просмотр статистики доступен в админ-панели, где можно получить данные о каждой странице сайта, включая периоды: день, неделя и т.п.

Следует отметить, что статистика stat достаточно затратная операция, поскольку размер файла базы данных service/storage/stat.sqlite будет постоянно расти и это может приводить к снижению скорости загрузки сайта (особенно, если у вас самый простой хостинг). Поэтому рекомендуется включать статистику и контролировать скорость загрузки сайта, если размер sqlite-файла достигнет нескольких десятков мегабайт, то можно просто его удалить (предварительно скопируйте копию файла на свой компьютер, если нужно) — система начнет подсчет статистики заново.

Но если вам не важна полная статистика stat (например её может заменить счётчик Google), то вы можете использовать статистику stat.page (используется модуль PageViews), которая ведет только подсчет количества прочтений записи без какой-либо детализации. Эта статистика очень быстрая и простая, поэтому не сказывается на скорости работы сайта.

Для её включения используйте поле stat.page (по умолчанию это поле включено):

stat.page: +

# стартовое число, если нужно
stat-start: 122
Данные страниц для stat.page хранятся в файле service/storage/pageviews.sqlite. Если его удалить, то система начнет подсчет заново.

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

Сжатие html-кода страницы

Обычно рекомендуется сжимать итоговый html-код страницы для оптимизации его загрузки. Это значит, что вы можете в файле страницы использовать любое форматирование, которое делает ваш код читабельным. Система сама выполнит сжатие.

compress: +

Защита содержимого PRE и CODE

Если вы публикуете исходный код, то обычно его оборачивают в тэги PRE и/или CODE. По правилам HTML их содержимое следует оборачивать в html-сущности, что не очень удобно. Поэтому вы можете включить эту опцию по умолчанию:

protect-pre: +

Карта сайта

Albireo CMS «из коробки» предлагает формирование адреса sitemap.xml, который используется гуглом для анализа вашего сайта. Обратите внимание, что это динамический адрес, то есть система не создаёт файл sitemap.xml.

Для того, чтобы страница попала в этот архив нужно использовать поле sitemap. По умолчанию оно всегда включено, поэтому задача меняется: если нужно исключить страницу из архива, то нужно явно это указать:

sitemap: -

Точно также страница будет исключена из «карты» сайта ваш-сайт/sitemap. В sitemap попадают только те страницы, у которых отмечен блоговый тип type: blog.

Если вам нужно дополнительное управление sitemap.xml, то можно использовать следующие поля:

sitemap-changefreq: weekly
sitemap-priority: 0.5

Парсер текста

По умолчанию в основной конфигурации указан парсер текста TextSimple. Этот парсер близок по своему синтаксису к Markdown и TextLite. Эта настройка эквивалентна полю parser:

parser: textsimple

Если парсер на странице не нужен, то можно его просто отключить:

parser: -

Это может понадобиться для тех страниц, где формируется сложный html-код.

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

parser: markdown

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

RSS сайта

Albireo CMS «из коробки» предлагает формирование адреса rss.xml, который хранит последние записи вашего сайта. Для чтения RSS-ленты используется специальные программы, например Mozila Thunberbird.

Обратите внимание, что это динамический адрес, то есть система не создаёт файл rss.xml.

В RSS-ленту попадают только те записи, у которых отмечен type: blog. Если нужно исключить запись из RSS, то это можно сделать так:

rss: -