NEX1ON 0.4.0
Модули и темы, режим обслуживания, «Страницы»
Модульность в работе: установка, включение и удаление модулей, проверка версий и зависимостей, переключение тем, режим обслуживания и первый модуль — «Страницы».
Ради этой версии затевалась вся модульность. Здесь же проверилось главное обещание: ядро действительно ничего не знает про содержимое сайта.
Модули
Модули кладутся файлами в папку modules. Загрузки архива через панель нет и не будет: страница, которая принимает zip и распаковывает на сервер исполняемый код, равносильна удалённому доступу к серверу.У модуля три состояния: лежит в папке (движок его видит, но не подключает), установлен и выключен (таблицы созданы, данные целы), включён. Данные уносит только удаление, и для него нужно набрать имя модуля руками.
Версии и зависимости проверяются по-настоящему: модуль с требованием «engine >=0.4» не включится на 0.3, модуль без нужного ему соседа не включится вовсе, а тот, от кого зависят другие, не выключится. Проверка ограничений своя: >=, ^, ~, промежутки.
Ошибка в модуле не роняет сайт: модуль выключается на этот запрос, а беда уходит в журнал. Иначе один сломанный модуль закрыл бы и панель, из которой его можно выключить.
Темы
Список тем и переключение из панели. Тему без главной разметки включить нельзя — это белый экран на всём сайте.Режим обслуживания
Посетители видят заглушку с кодом 503 и заголовком Retry-After, администратор продолжает работать, вход остаётся открытым.Модуль «Страницы» 1.0.0
Первый модуль, рабочий, а не показательный: своя таблица, свои права, переводы, раздел панели и раздел настроек. Страница отвечает по адресу вида /o-kompanii — модуль подключается после ядра, поэтому /login и /admin остаются за ядром.Исправлено
- Пустой заголовок давал случайный адрес страницы вместо осмысленного.
- «и» транслитерировалось по украинскому правилу; для трёхъязычного движка выбрано одно правило на всех.