Albireo CMS 2025.03.25

История изменений Albireo CMS

2025.03.27

Небольшая доработка, направленная на увеличение скорости создания «карты файлов». Теперь можно через конфигурацию задать каталоги относительно pages, которые будут как бы «заморожены» — у них не будет проверяться время модификации. Если на сайте много файлов, то такая опция позволяет отключить старые каталоги, которые редко меняются. В итоге построение карты может ускориться примерно в 2 раза (чем больше исключений, тем больше ускорение).

2025.03.25

  • Переделка системы под «умный кэш». См. Albireo CMS и много-много страниц. Очень большие изменения в системе.
  • Получение страниц теперь происходит через обращение к базе sqlite. Сделал getPages() для упрощения кода. Получилось даже меньше, чем старый вариант, поскольку функция сразу обсчитывает пагинацию.
  • Доработал функцию и алгоритм валидации данных через arrayValidate(). См. Работа с формами в Albireo CMS.
  • Немного изменил работу поля file-page-data. Теперь он проверяет файл в каталоге сайта, а если его нет, то смотрит каталог system. Таким образом я вынес часть файлов в общую конфигурацию, поскольку они единый для всех сайтов.
  • Страница админки (specific/admin) немного переделал под новую возможность file-page-data — вынес часть полей в отдельные файлы.
  • Немного переделал работу контактной формы.
  • Сделал новую шапку header12. Она меняет поведение для главной (большой размер) и остальных страниц (уменьшенный размер).
  • Новая функция arrayNatSort() которая может сортировать многомерный массив по алгоритму натуральной сортировки с сохранением ключей. В PHP до сих пор нет такой возможности...
  • Переделал страницу записей в админ-панелей. Теперь списки DETAILS учитывают вложенность каталогов. Стало удобнее и более информативно, чем было.
  • Новая функция sessionOld() которая позволяет запоминать и воспроизводить введенные данные для форм (и не только).
  • Новая функция sessionUnsetCSRF() которая сбрасывает текущий токен юзера. Это позволяет создать новый и отправка формы со старым токеном будет заблокирована.
  • Функция getSnapshot() теперь работает немного по другому алгоритму. Это позволило увеличить скорость создания «отпечатка» примерно в 2-3 раза.
  • Новая тема оформления gray1.css — всё в серых тонах.

2025.02.27

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

Добавил возможность указывать у рубрики собственный адрес (ключ my-url), например вместо category/astro, можно указать astro. Тогда при переходе на эту рубрику, будет переход на указанный адрес. Естественно, такая страница должна существовать, иначе будет 404-страница.

2025.02.21

Добавил в textSimple возможность указывать атрибуты ссылок. Используется в лайтбоксах.

!![My image](//image.webp width="200"){data-fslightbox}
!![My image](//image.webp width="200"){class="glightbox"}
!![My image](//image.webp){data-fslightbox}
!![](//image.webp){data-fslightbox}
!![](//image.webp){target="_blank"}
!![](//image.webp){}

Добавил каталог service/my, с помощью которого можно расширять действие default-шаблона, не меняя его.

Доработал update в PDOSQL.

Перенес шрифты в ресурсы. Теперь их подключать стало проще: use.font[gabliela]: +

Перенес Berry CSS в ресурсы. Теперь подключение стандартное: use.berry: +

Сделал разные цветовые дизайны/темы - всего 17 цветовых палитр. css.theme[]: red.css

Еще один лайтбокс use.fslightbox: +.

Добавил новые демо-данные для сайта. Теперь это астрономия, буддизм, динозавры, кулинария, автомобили и животные. Сделал для каждой рубрики свой файл вывода типа сайт/astro.

Новая функция findFile() возвращает файл из списка указанных каталогов.

Конфигурация для getDB() теперь подключается рекурсивно: вначале из system, потом объединяется с из website.

2025.02.12

Добавил систему голосования.

2025.01.31

Немного упростил возможность размещать каталоги на уровень выше. Например так можно перенести каталог templates в корень сайта:

website/base-constants.php

define('TEMPLATES_DIR', LEVEL_UP_DIR . 'templates' . DIRECTORY_SEPARATOR);
define('TEMPLATES_URL', LEVEL_UP_URL . 'templates/');

Это пригодится для мультисайтинга, когда несколько сайтов используют один и тот же шаблон. Его можно вынести на уровень выше и он будет общим для всех.

2025.01.27

  • В админ-панели появился чекбокс для автосохранения файла. По умолчанию раз в 30 секунд. Настраивается в конфигурации.
  • В админ-панели поменял поведение меню. Теперь оно повторяет привычное поведение windows-меню: клик, открытие, hover и т.п.
  • Доработал функцию getConfigFile() — новый параметр recursive — он позволяет загружать конфиг-файл как дополнительный к системному. То есть можно менять только те параметры, которые отличаются от дефолтных системных.
  • Конфиг-файл admin.php теперь можно менять не весь, а только те параметры, которые нужно изменить. Такое же поведение уже есть у config.php.
  • В админ-панели в текстовом редакторе, после того, как выполняется вставка через меню, теперь (наконец-то!!!) работает клавиши отмены (Ctrl+Z).
  • Проверил работу Albireo CMS на новом PHP 8.4.3 — работает без ошибок.
  • Проверил работу Albireo CMS на новой Sqlite 3.48 — работает без ошибок.
  • Мелкие правки по шаблонам и Berry CSS 5.
  • Вынес новые настройки админ-панели в конфигурацию: высота предпросмотра, дополнительные классы и style текстового редактора.

Теперь можно настроить текстовый редактор любым способом, например так (баловство, конечно, но важен сам факт такой возможности):

2025.01.23

Вынес php-код вывода главной отдельно в файлы модулей шаблона: modules/home. Для управления выводом можно использовать опции homeOutputModule, homeLimitPagination1, homeLimitPagination2. То есть теперь не нужно менять home.php, можно поменять вывод через конфигурацию.

2025.01.16

Улучшение работы внутреннего хранилища. Это позволило уменьшить потребление php-памяти примерно 5-6 раз (примерно до 1Мб), правда за счёт небольшого уменьшения скорости работы системы (примерно до 0,2 sec).

2024.12.11

В TextSimple добавлен ```(класс) код ```, который преобразуется в :

<pre class="класс"> htmlspecialchars(код) </pre>

В TextSimple добавлен код TODO-списка:

- [x] Придумать идею
- [ ] Воплотить её в жизнь
<div><input type="checkbox" disabled checked class="task-list-item-checkbox"> Придумать идею</div>
<div><input type="checkbox" disabled class="task-list-item-checkbox"> Воплотить её в жизнь</div>

22-02-2023

Начало работ по созданию Albireo CMS.