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

MaxSite CMS 108

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

Итак, новая версия системы и перед тем, как вы будете обновлять свой сайт, нужно будет предварительно удалить или переименовать старый Default-шаблон. Если ваш сайт работает на Default-шаблоне, то лучше сделайте его копию, а только потом обновляйтесь. Это связано с тем, что в MaxSite CMS 108 довольно существенно обновился Default-шаблон, поэтому если обновлять поверх старого, то это приведёт к жуткой смеси файлов. :-)

Самое главное в этой версии, как вы уже поняли — это новый шаблон. Старый вариант базировался на моём шаблоне MF, только достаточно старой версии. Новая версия также базируется на MF, только самой последней версии — 12-й (я скоро сделаю её анонс).

Конечно же, новый Default-шаблон не будет иметь всех многочисленных блоков и модулей MF, но «ядро» и часть файлов у них общие.

Что принципиально отличает новый Default от старого?

В первую очередь это то, что он базируется на новейшем css-фреймворке Berry 4.1. Больше не будет игр с морально устаревшим Bootstrap. В Berry CSS модульный подход в Sass, который позволяет разделять стили по модулям, а также настройки в виде отдельных конфигурационных sass-файлов. До перехода к «модульному Sass» остаётся не так много времени (1 октября 2021 года), но у нас же уже всё к этому готово.

Шаблон теперь поддерживает темизацию дизайна. В ней только одна тема, но желающие могут сделать свою, просто скопировав дефолтную и через конфигурацию настроить цвета. После этого она переключается в админ-панели.

Аналогично можно менять css-стили главного меню. Сейчас там три варианта, которые подходят под разные шапки.

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

Компоненты шапки и подвала. Я их добавил из MF, сохранив нумерацию (header6, header7 и header11). Они подобраны так, чтобы показать разные возможности настроек через админ-панель. Это достаточно типовые варианты для любого сайта.

Новые компоненты module1/2 используются для размещения модулей юнитов в виде обычных компонентов. Эта фишка была только в MF, теперь доступна всем пользователям системы. Например можно взять произвольный блок Berry CSS и разместить в шапке или подвале. Обычно модули размещаются только для главной (например в виде лендинга), теперь же модули можно размещать и в шапке, и в подвале, и в тексте записи.

Для размещения в тексте произвольного модуля можно использовать новый шорткод module. Также будет доступен шорткод include с помощью которого можно подключать любой php-файл шаблона.

Особенностью MF (и нового Default) в том, что он использует модульный подход: можно наращивать возможности шаблона/сайта путём простого добавления модулей. В каталоге custom могут размещаться дополнительные файлы, мета-опции для записей, просто опции шаблона, а также собственные плагины.

Шаблоны MF и Default нужно рассматривать как конструктор.

В комплект я специально включил плагин demo, который показывает как можно создать плагин шаблона.

Также новый плагин (он в custom-каталоге) — new_module с помощью которого можно быстро поставить любой модуль юнитов. По сути он делает копию модуля из каталога store в каталог modules, только можно указать другое имя модуля.

Каталог store — это хранилище модулей юнитов. Их довольно много, но в целом это всего лишь заготовки. Перед использованием модуль нужно скопировать в modules — именно отсюда MaxSite CMS его подключает. В исходном модуле обычно демо-данные, поэтому модуль (в modules) правится уже под свою задачу.

Также в комплект я включил сервисную страницу ваш-сайт/mfstore. На ней располагаются скриншоты всех доступных модулей из store и кнопка для быстрого копирования модуля в modules. То есть будет доступно два способа установки модуля: через mfsrore и через плагин в админке new_module.

Наверное стоит ещё отметить, что в комплект я добавил страницу ваш-сайт/cart для вывода корзины. Эта страница лишь заготовка, поскольку пока сложно понять какой ей нужен дизайн.

Что касается дизайна Default-шаблона, то он повторяет стили из MF, поскольку я не вижу смысла их разделять. Для создания нового цвета/дизайна делается новая тема, которая работает самостоятельно.

В качестве иконочного шрифта используется FontAwesome 5 — это css-профиль fontawesome5-lazy.css. Но, кроме это всегда будет доступен шрифт IM. Это сильно усечённый вариант FontAwesome, который содержит только самые востребованные иконки: стрелки, соц.сети, служебные символы. IM-шрифт очень небольшой, поэтому загружается всегда отдельным файлом и это позволяет отрисовывать иконки на сайте намного быстрей, чем ждать загрузки FontAwesome. Поэтому предпочтительней использовать IM-шрифт, а если иконки нет, то уже FontAwesome.

Базовый шрифт OpenSans, в качестве дополнительного используется RobotoSlab. Для OpenSans предусмотрены несколько начертаний жирности: 300, 400, 600, 700 и 800. Сейчас модно их использовать в дизайне, так что используя этот шрифт, можно пользоваться классами Berry: t-bold300 и т.п.

Под капотом

Berry CSS 4.1 для тех кто сам работает с css-стилями через Sass. Да будет только такая схема — модульность по полной. Так что изучайте, пробуйте. Поскольку команда Sass решительно настроена именно на такой подход, то рано или поздно вся вёрстка будет через use/forward. Изначально непривычно, но потом проблем не возникает, тем более, что я даю уже готовый инструмент с примерами и готовой структурой.

Плюс здесь очень большой — обновление и поддержка стилей происходит строго по модулям, что позволяет использовать их изолированно, без влияния друг на друга.

AlpineJS включена в комплект шаблона и подключается всегда (асинхронно). Я её рассматриваю как замену jQuery. Процесс длительный, поэтому обе библиотеки доступны в шаблоне, но код с AlpineJS получается красивым и компактным.

Также включена библиотека anime.js (различная анимация), но для её использования нужно самостоятельно подключить. Ну и несколько других js-файлов, которые могут использоваться в компонентах.

Из обязательных файлов, я наконец-то решился удалить modernize, поскольку она использовалась только для того, чтобы определить сенсорный экран (touch). По факту это не всегда работает и проблема не в JS, а в том, что до сих пор нет нормального API браузеров, поэтому я использовал простой js-код, который сейчас очень распространён. С учётом современных браузеров — это должно работать корректно.

Несколько моментов, связанных с генерацией миниатюр. В info-top-файлах приходилось прописывать размеры миниатюр вручную. И часто это приводило к большому «зоопарку» размеров, а значит и к бОльшему количеству файлов изображений. Сейчас появилась опция (шаблона) Размеры миниатюр, где задаются две пары размеров:

640/480, 800/600

Первая группа (640/480) это ширина и высота миниатюры для случаев, где предполагаются узкие колонки, например в 3-колоночном выводе.

Вторая группа (800/600) уже для широких колонок, например одна или две. Таким образом в info-top-файле достаточно решить какие именно будут колонки (узкие или широкие) и получить set/get-переменные для использования в коде. Приводить примеры не буду, просто посмотрите в php-файлах, как это используется.

Главное здесь то, что настройки вынесены на уровень админки и пользователь сможет сам настроить размеры миниатюр без правки php-файлов.

Также появился новый type_foreach-файл favicon.php, где можно разместить код фавиконки например от этого html-генератора. Он будет выводиться вместо стандартного png-файла.

Изменения в MaxSite CMS

Кратенько опишу и изменения по самой системе с прошлой версии. :-)

Новая опция, где можно выбрать режим загрузки jQuery. О проблемах jQuery я уже несколько раз писал — и это один из первых шагов. Можно выбрать загрузку в HEAD, в конце BODY или вообще не загружать (то есть это ложится на сам шаблон).

В инсталяторе были разные фиксы, связанные с безопасностью. Существующих пользователей MaxSite CMS они не затрагивают. Также был ещё один фикс безопасности — xss-атака через svg-код. Достаточно специфичная вещь, но я это пофиксил.

Для юнита формируется уникальный хэш-ID в $UNIT_UID. В частности его можно использовать для кэширования вывода юнита.

Исправлена максимальная дата публикации. В 2008 году я ограничил дату до 2020 года, поскольку это казалось очень далёким будущим. Ан-нет — вот оно и наступило. :-) Теперь максимальная дата считается как текущая + 10 лет.

Были переделки для PHP 8. Можно смело пользоваться.

Новая функция mso_urldir(), которая принимает текущий каталог, а на выходе его url-адрес. Может использоваться в компонентах.

Новая функция mso_add_preload() для формирования link rel="preload". За её счёт можно организовать предзагрузку файлов без блокировки рендеринга страницы и выполнения js-кода.

Были правки по функциям перевода, а также обновлён английский.

В плагине Ушки новая функция ushki_get_all_names() через которую можно получить список всех ушек. Может использовать в ini-опциях.

В ini-файлах можно использовать замену %CURRENTDIR% или php-переменную $COMPONENT которые хранят последний компонент текущего каталога ini-файла. Это позволяет в ini-файлах привязывать опции к текущему каталогу, без необходимости править код файла.

Ну вот, пожалуй и все основные изменения. Ещё раз напомню — перед MaxSite CMS обновлением удалите или переименуйте старый default-шаблон. Все замечания и предложения вы можете оставлять на нашем форуме. Ну и подписывайтесь на telegram-канале. :-)

Комментариев: 3 RSS

1Артём07-05-2021 15:23

Прекрасная новость перед праздниками! Ура!

2Андрей07-05-2021 20:38

Спасибо, Максим!

Продолжаете всех нас радовать.

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

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

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

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