Это окончательный переход системы на PHP 7.1. В этой версии новый установщик системы, а также Default шаблон, основанный на MF.
Если у вас версия ниже 105, то обновление следует выполнять универсальным способом. Это из-за того, что поменялась структура каталогов и часть файлов была удалена. Если у вас версия 105, то достаточно удалить старый default шаблон и загрузить новый.
Из-за переделки «ядра» в прошлой 105-й версии существующие шаблоны скорее всего придётся немного подправить. Так же есть некоторые другие особенности, которые желательно знать перед обновлением существующего сайта.
Новый инсталятор
Старый инсталятор использовал «движок» Landing Page Framework. Но по факту там была всего одна страница, поэтому я всё переписал на отдельные функции. Также поменял дизайн:
При инсталяции внесены некоторые изменения. Например больше не создаётся таблица links — этот артефакт тянется очень давно, но в системе не используется. Также теперь не указывается движок MySQL, то есть будет использоваться тот, которые используется на сервере. Раньше мы принудительно ставили MyISAM, поскольку только в нём работал полнотекстовый поиск. Но в MySQL 5.6 его наконец-то сделали, поэтому можно пользоваться более продвинутым вариантом — InnoDB. Именно поэтому в требованиях MaxSite CMS я указал минимальную версию MySQL 5.6.
Ещё одной особенностью нового инсталятора будет поддержка языкового перевода. То есть инсталяция проходит на языке пользователя (браузера). Пока это русский, украинский и английский. Схема перевода базируется на ключах, а не на полной исходной фразе. Так же применяются контекстные замены в переводе, что позволяет делать перевод достаточно гибким. Возможно, подобный подход я добавлю и в саму MaxSite CMS.
Отмечу, что эти изменения касаются только новых установок MaxSite CMS. Для всех остальных изменений по базе нет.
Демо данные
Раньше при установке системы можно было поставить несколько новых демо-записей, но сейчас такой опции нет. Поддерживать такую возможность достаточно затратно, поэтому я подготовил отдельный репозиторий с готовыми демо-данными. Это записи в формате AutoPost, которые можно быстро добавить к своему сайту.
Пока данные добавлены для русского текста (из русскоязычной википедии), возможно со временем добавлю другие языки.
Шаблон Default
Теперь самое интересное. :-) Новый шаблон базируется на ядре MF. Разработкой MF я занялся летом 2018 года, а осенью организовал предзаказ шаблона. Полные версии выходят уже больше года и за это время образовался круг пользователей, которые помогают мне дальше его развивать. Главной особенностью этого шаблона — сильный компонентный подход. То есть сайт собирается как конструктор Лего, где каждый блок или модуль является самостоятельной частью и может настраиваться индивидуально.
И хотя основы шаблонов заложены в MaxSite CMS достаточно давно (в первую очередь благодаря переходу к 90-й версии), MF позволил доработать многие части системы и придумать новые механизмы управления.
Отмечу, что Default шаблон — это не шаблон MF, а лишь только небольшая его часть, позволяющая вебмастерам создавать новые модули, юниты, дизайн-блоки и т.д. Например сейчас в MF более 50 компонентов для главной, а в Default я оставил 14 модулей. Даже этого достаточно, чтобы организовать полноценный лендинг на главной странице сайта.
В комплекте шаблона два компонента шапки. Они достаточно просты по дизайну, но имеют множество настроек. Это достаточно типовые варианты.
Хочу отметить, что я не делал сброс опций default-шаблона, поэтому после обновления вам нужно будет заново выбрать компоненты шапки.
В новом шаблоне дизайн главного меню вынесен отдельным файлом на вкладке «Дизайн»:
Аналогично шаблон может использовать произвольные шрифты. Default шаблон используется Open Sans и Roboto Slab — их также следует отметить.
Что касается иконочных шрифтов, то возникла тупиковая ситуация. Мы использовали шрифт FontAwesome 4-й версии, где использовался только один файл шрифта и один css-класс для иконки. В FA 5 разработчики разбили файл и теперь иконку следует указывать двумя классами: шрифт и код/класс иконки. Пятая версия имеет более 1500 иконок, поэтому есть смысл мигрировать на новую версию. Вкладка Соц.сети теперь имеет два поля — одно общее по умолчанию, а второе — для текущего шаблона. Раньше поле было общее для всех шаблонов, теперь можно учесть особенности каждого шаблона.
Отмечу, что за вывод этих иконок отвечает компонент _social.
Default шаблон использует Berry CSS вместо UniCSS, поэтому в стилях типографика принадлежит только шаблону.
Ну и кроме того, шаблон использует фреймворк Bootstrap 4, что позволяет использовать его многочисленные компоненты. Собственно этот фреймворк и нужен только для того, чтобы получить доступ к его компонентам. Типографика, сетка цветовой дизайн как таковой мало востребован и легко перекрывается Berry CSS. Но компоненты это ещё и js-код, поэтому использование Bootstrap в шаблоне должно быть оправдано.
Я не большой поклонник Bootstrap, поэтому потратил на поиск и изучение альтернатив много времени. И хотя фреймворков много по суммарным критериям: размер кода, количество компонентов и полноценная документация, Bootstrap получил мою лучшую оценку.
В комплект шаблона я добавил страницу из MF — mfdesign (вашсайт/mfdesign), где собраны примеры дизайн-элементов, включая некоторые компоненты Bootstrap.
Теперь пару замечаний о том, как работать и кастомизировать шаблон Default. Если вы хотите править файлы, то лучше всего сделать копию и работать уже с ней. Например вместо того, чтобы править компонент Header1, сделайте его копию, например Myheader1 и работайте уже с ней. Тоже самое касается работы с модулями главной. Все они находятся в каталоге store — но перед использованием их следует скопировать в modules и работать уже с ним.
Такая схема нужна для того, чтобы безболезненно можно было бы обновлять шаблон и не затирать существующие файлы. Конечно всё это будет работать пока не требуется существенная переделка шаблона — тогда лучше вообще сделать его полную копию без опасения затереть при обновлении системы.
Это основные изменения. Под капотом также было довольно много доработок, но они больше интересны технически подкованным пользователям. :-)
Комментариев: 13 RSS
1Роберт17-02-2020 09:56
Сижу на 102.3, попытался обновиться при помощи update_mso, но получил черный экран на сайте(в независимости от активного шаблона). В админке все норм. Пришлось откатиться назад. Как обновиться правильно?
2Максим17-02-2020 15:02
Как написано в статье.
3Сергей08-04-2020 17:28
А где можно узнать о правке шаблона? До обновления стояла версия 98, сейчас шаблон "поплыл".
4Максим08-04-2020 19:55
Смотрите анонсы пропущенных релизов. Может там есть то, что упустили.
5Вадим03-05-2020 16:20
Есть ли обязательные промежуточные версии для обновления с 0.862? Или же можно поставить поверх "Универсальным способом"?
6Максим03-05-2020 16:39
Достаточно обновиться универсальным способом.
7Евгений16-09-2020 12:45
Максим, повторю свой вопрос -- как в версии 106 сделать возможным не указывать сегмент page ?
в версии 105 у меня адрес https://site/article автоматом переходит на https://site/page/article
при обновлении до версии 106 https://site/article (без указания page) выдаёт 404 страницу
8Максим16-09-2020 16:45
Редиректит? Проверьте тогда что у вас сбилось в плагине или как вы его делали... Так я не могу сказать. Сегменты данных всегда используются в MaxSite CMS.
9Евгений16-09-2020 19:52
Нет редиректов - таблица пустая.
попробовал в плагине редиректов в секции 404 написать
https://site/(*) | https://site/page/$1 | 301
вылазит ошибка
Severity: Warning
Message: preg_match(): Compilation failed: quantifier does not follow a repeatable item at offset 36
Filename: redirect/index.php
в версии примерно 096 была опция в админке перенаправлять на сегмент /page в случае чего. Ничего с тех пор не менял и до версии 105 всё работало нормально...
10Максим16-09-2020 20:10
Делайте тикет на гитхабе и подробно описывайте проблему. Пока я даже не понимаю как это у вас могло работать, если в MaxSite CMS сегмент типа является обязательным.
11Евгений МирошниченкоСайт16-09-2020 21:16
Евгений, возможно Вы использовали плагин Плагин friendly_urls?http://maxhub.ru/page/plagin-friendly-urls-nastraivaemye-chpu
12Денис20-09-2020 13:20
На php 7.4 будет работать?
13Максим20-09-2020 17:35
Давно уже работает.