Бесплатная CMS для вашего сайта Разумная альтернатива WordPress

MaxSite CMS 105

16-01-2020Время чтения ~ 3 мин.Versions 5808

Теперь MaxSite CMS работает на PHP 7. В текущей версии я завершил основной рефакторинг кода. Насколько это было возможно, система теперь в целом поддерживает рекомендацию PSR 12 (и старые PSR 1 и PSR 2). В этой версии каких-то существенный изменений по функционалу не было, поэтому вы можете пропустить это обновление. Более того, я скорее всего буду вносить ещё новые изменения, поэтому вы можете дождаться выхода следующей MaxSite CMS 106, чтобы обновиться за один раз.

Вместе с тем, я буду признателен тем, кто поставит эту версию для тестирования. Объём переделок очень большой, поэтому возможны какие-то недочеты или даже ошибки. Лучше сообщать о них на гитхабе.

Теперь о том что изменилось и что нужно учесть при обновлении.

Основная задача — переделка «ядра». Основной файл common.php был разделён на множество тематических файлов в подкаталоге core. Изначально я хотел, чтобы у MaxSite CMS было «моноядро» в одном файле. Это удобно во многих случаях. Но со временем система росла и common.php стал слишком крупным и неудобным для поддержки. Поэтому текущее деление немного упростит общую структуру «ядра» системы и его поддержку.

Файлы, которые в core будут всегда подключаться. В него я перенёс meta.php, а также классы Page_out, Block_pages и Thumb, включая их дополнительные функции. Кроме этого в common.php также подключаются функции записей и рубрик. Ранее все эти файлы требовалось подключать отдельно в шаблоне или плагинах. Теперь не нужно. Опыт показал, что все они так или иначе всегда подключаются.

Каталог share/stock, соответственно, удалён. Проблему может вызвать отсутствующий thumb.php, поскольку он напрямую загружался из самого шаблона. В Default-шаблоне это файл type_foreach/page-other-pages-out.php. Там строчка:

require_once(getinfo('shared_dir') . 'stock/thumb/thumb.php');
  • которую можно просто удалить. Аналогично можно удалить в index.php (они не создают ошибок):
  • require_once(getinfo('common_dir') . 'page.php'); // функции страниц 
    require_once(getinfo('common_dir') . 'category.php'); // функции рубрик

    Если же вы вебмастер и у вас много шаблонов, то можно сделать временную заглушку: пустой файл shared/stock/thumb/thumb.php, это избавит от ошибки отсутствующего thumb.php.

    Файл page.php также был разделён на несколько файлов.

    Если вы пользуетесь Default-шаблоном, то в нём я поменял компонент _social (вывод соц.иконок). Раньше иконки задавались в виде части css-класса, где префикс «i-» добавлялся автоматом. Сейчас нужно указывать полностью весь css-класс. Это изменения связано с переходом на будущий шаблон, где будет Font Awesome 5 — в нём иконки задаются двумя классами. Если же у вас свой шаблон, то ничего менять не нужно.

    Обновляться на MaxSite CMS 105 нужно универсальным способом, поскольку часть файлов была удалена, а значит может возникнуть конфликт. Изменений по базе нет, поэтому возможно вернуть любую версию системы без проблем.

    Дальше у меня в планах дальнейшая работа по рефакторингу кода, после чего я выложу новый default-шаблон и, возможно успею переписать инсталятор (есть по нему задачи). Всё это будет в рамках 105-й версии с релизом 106-й, который завершит полный переход на обновлённое ядро.

    Похожие записи
    Комментарии (3) RSS
    1 vovans 2020-01-16 23:34:41

    Уф, откатился на v104. Случайно автобоновлением на 105 обновил. Увы, у меня пока на vps старая версия Убунту, нужно обновиться, но руки не доходят. А обновляться, нужно шаблон основного сайте переделывать полностью. Там ещё совсем древность движок. Вот это главный останавливающий фактор. Время на такой серьёзный шаг нет (

    Но я очень рад, что движок развивается и рад, что такие значимые изменения делаются. Это очень хорошо!


    2 Сергей 2020-01-19 06:04:20

    Обновился на v105 PHP7.3 - вроде работает нормально. Повысил версию PHP до 7.4 - выдается ошибка:

    ===

    A PHP Error was encountered

    Severity: Notice

    Message: ob_end_clean(): failed to delete buffer. No buffer to delete

    Filename: main/main-end.php

    Line Number: 11

    ===


    3 Максим 2020-01-19 09:41:45 admin

    Я на PHP 7.4 ещё не тестировал, даже не пробовал.

    Попробуйте заменить эту строчку на

    if (ob_get_length()) ob_end_clean();

    Если еще будут ошибки, то лучше писать на гитхаб.

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