Создание шаблона Albireo CMS
Есть два подхода к изменению Default-шаблона Albireo CMS.
- Первый — это создать копию Default и все изменения производить в новом шаблоне.
- Второй подход — это использовать стандартный Default, но расширить его возможности.
Копия Default
Шаблон Default достаточно скопировать под новым именем и после этого в настройках страниц нужно его указать для использования.
Лучше всего сохранить структуру каталогов, хотя можно её произвольно менять, но тогда придётся указывать их через php-константы. Поэтому проще использовать каталоги как есть (но можно добавить свои).
CSS-фреймворк
Поскольку Albireo CMS построена на Berry CSS и AlpineJS, то файлы шаблона активно используют их css-классы и js-код. Если вы переделываете шаблон под другой css-фреймворк и js-библиотеку, то учитывайте эту особенность.
Ресурсы шаблонов
Ресурсы шаблонов удобно хранить отдельно, поэтому вы можете придерживаться этой же практики. В этом случае подключение файлов ресурсов происходит через parts-файлы.
Layout-сетка
Без layout-файла Albireo CMS работать не будет, поэтому его наличие есть обязательное условие.
Расширение Default
Намного проще не создавать новый шаблон, а расширить текущий. Default — мощный шаблон, который охватывает огромное количество задач вебстроительства и нет большого смысла его переделывать.
Поэтому можно пойти несколькими путями.
- Первый — добавить свои файлы прямо в каталог шаблона.
- Второй — использовать стандартный my-каталог.
- Третий — использовать отдельный my-каталог.
Добавление своих файлов в каталог шаблона Default
В этом случае главная задача — это корректное обновление системы. Для этого ваши новые файлы должны иметь имена, не пересекающиеся с существующими.
Например если вы добавляете новую шапку, то можно использовать префикс my-: my-header.php. Таким образом файлы останутся на месте после обновления системы.
Если требуется изменить существующий файл, то нужно сделать его копию и править уже её. В этом случае в полях страниц следует использовать уже новые имена файлов.
Использование стандартного my-каталога
Это каталог website/service/my, который повторяет каталоги шаблона. Albireo CMS позволяет использовать эти каталоги как замену стандартным файлам шаблона, так и для подключения собственных файлов.
Например стандартный файл шапки header1.php можно скопировать в my/modules/headers. Тогда система будет использовать его вместо default-варианта. То есть подмена файла происходит скрыто и позволяет не менять поля страниц.
Либо вы можете создать новый файл в my-каталоге - он будет подключен так же как и стандартный.
Отдельный my-каталог
Строго говоря my-каталогов может быть множество, с тем ограничением, что сайт может использовать только один, который указывается через опцию serviceMyDir конфигурации config.php:
'serviceMyDir' => 'service/my-taurus',
В этом примере my-каталог будет располагаться как website/service/my-taurus с той же структурой. Таким образом через конфигурацию можно переключать разные варианты my-каталога для расширения Default.
Произвольные каталоги
Во многих случаях в Albireo CMS принято задавать пути к подключению файлов в полном виде. Например для подключения tpl-файла следует явно указать путь. По умолчанию это php-константа TPL_DIR, например
echo tpl(data: $rows['pagination'], tpl: TPL_DIR . 'pagination1.php');
Фактически это означает, то pagination1.php можно разместить произвольно, например в каталоге записей:
echo tpl(data: $rows['pagination'], tpl: PAGES_DIR . '_pagination/pagination1.php');
Таким образом, если нужно, то файлы можно подключить произвольно. Не обязательно жестко следовать установленной схеме каталогов.
Кроме этого, Albireo CMS позволяет менять стандартные расположения каталогов. Обычно это php-константы, которые можно переопределить до загрузки «ядра» системы. Например вы можете поменять расположение tpl-файлов, изменив константу TPL_DIR.
Эта возможность пригодится для случаев, если вам нужно интегрировать существующий старый код так, чтобы не поломать совместимость с Albireo CMS.
Распространение своего my-каталога
При необходимости можно распространять my-каталог (под другим именем) отдельно. Поскольку основа всегда Default-шаблон, то любой my-каталог будет корректно работать в любой версии Albireo CMS.
Единственное ограничение — это необходимость отдельной инструкции для пользователя, где будет указано какие поля следует указать у страниц. Например имена новых шапок, css-тем оформления и т.д.
Если ваша версия предполагает изменения или указания множества полей, то можно выделить для этого отдельный page-data-файл, чтобы пользователю было удобно его использовать.