Современная, быстрая и удобная система управления сайтом

MaxSite CMS 105

Версии (релизы)Комментарии: 3Просмотров: 5342

Теперь 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

1vovansСайт16-01-2020 23:34

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

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

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

Обновился на 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Максим19-01-2020 09:41

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

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

if (ob_get_length()) ob_end_clean();

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

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

Комментарий будет опубликован после проверки

Вы можете войти под своим логином или зарегистрироваться на сайте.

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