Обновление Albireo Framework (январь 2021)

Выложил обновление Albireo Framework — первое в этом году. В нём довольно крупные изменения, направленные на большее удобство использования. Так же были некоторые доработки, которые накопились за время использования фреймворка на рабочих проектах. Ну и поскольку Albireo я использую как тестовую площадку для новых идей, то изменения это задел на будущее.

Перенос админки

Админка — это обычные страницы, как и любые другие, но поскольку это всё-таки отдельный модуль, то я его перенёс на уровень выше — albireo-data/admin. Теперь админка не будет «болтаться» среди обычных страниц и её будет проще обновлять.

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

Произвольные каталоги для страниц

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

...
'dirsForPages' => [BASE_DIR . 'my-pages', BASE_DIR . 'user-pages'],
...

Эти каталоги будут работать точно также, как и albireo-data/pages. Это может пригодится для случаев, если нужно как-то выделить файлы вне стандартного расположения. В этих каталогах можно разместить только файлы страниц, но не конфигурацию и прочие служебные файлы.

Новая возможность потребовала некоторой переделки админ-панели.

Обработка текста парсером

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

Как правило с этим не проблем, но в редких случаях может потребоваться пропустить через парсер только текст страницы, но не layout-шаблона. Для этого предусмотрена опция страницы

content-only: 1

При её наличии алгоритм вывода меняется. Вначале подключается файл страницы, его контент прогоняется через парсер, а потом итоговый код выводится в layout-шаблоне.

Такой вариант потребовал немного усложнить шаблон вывода (см. main.php) — где добавлено условие — вывод либо готового текста, либо подключение файла.

Если нет проблем с парсером, то лучше использовать стандартный вариант вывода.

Прочие доработки

Внутри «ядра» произвёл небольшую оптимизацию — доработаны некоторые функции, появились новые, чтобы исключить дублирование кода.

В main-шаблон добавил возможность указывать язык документа (html-lang), а также опции lazy[], которая предназначена для вывода кода в конце BODY. С аналогичными head[], link[]и meta[]охватывается все основные потребности при настройке страницы. То есть задумка в том, чтобы стандартный main.phpгодился для большинства задач вебмастера.

Также я доработал учёт залогиненности — были «пограничные» случаи, когда пользователь был залогинен, но потом его убрали из разрешений — теперь предлагается вначале выйти, а потом уже авторизоваться с новыми данными.

В целом все изменения направлены на то, чтобы «добить» ядро фреймворка до «идеального» состояния, а уже после этого решать куда двигаться дальше. Пока из рабочих задумок — это возможность использования Sqlite, чтобы страницы могли храниться в базе. Это позволит организовать дополнительную навигацию: рубрики, метки, архивы и т.п., что приблизит Albireo к полноценным CMS.

Комментариев: 1 RSS

1Денис14-01-2021 20:50

Я как не программер половину текста не понял, но очень радует последний абзац.

Оставьте комментарий!

Комментарий будет опубликован после проверки. Вы соглашаетесь с правилами сайта.

(обязательно)