October CMS мой отзыв, как с этим работать?

Опубликовано:
21.03.2020 в 13:31
Категория:
Предисловие: Всем привет давно решаюсь написать статью про October CMS и вот на меня снизошло вдохновение. Это больше краткий обзор чем какой-то полноценный гайд. Я не буду рассказывать как написать плагин или компонент. Я просто ознакомлю вас с системой и ее возможностями. Для разбираться, что такое October CMS.

Что такое October CMS.

October позиционируется как система управления содержимым нового поколения. И действительно, в Октябре реализованы лучшие моменты двух систем Modx и Wordpress(мое мнение). Основа October CMS - это популярный на рынке PHP фреймворк Laravel. Если вы ранее работали с Laravel, то разобраться как работает Октябрь, будет очень просто.

Одна из плюшек October CMS - это Composer из коробки. На October CMS я разработал уже очень много проектов и скажу, что он понравился не только мне, но и заказчикам. При грамотном подходе можно красиво оформить в админке любой модуль. Обслуживать сайт сможет даже секретарша. К интерфейсу админки разработчики October CMS подошли очень серьезно. Все очень удобно и городить костыли просто нет необходимости.

Общий вид админки

Что позаимствовал October CMS у "Коллег".

От Modx October CMS взял концепцию шаблонов. Вы увидите:

  • страницы (modx-ресурсы),
  • шаблоны, фрагменты (modx-чанки),
  • содержимое(просто текст, в modx этого нет),
  • ресурсы (файлы темы),
  • фрагменты (modx-сниппеты)

На самом деле реализация совсем другая. Например фрагменты vs сниппеты может и похожи, но их никак нельзя в полной мере сравнивать, так как принцип работы немного другой. Но и тот и этот служат для обработки или вывода какой-либо информации. Есть тип контента - содержимое. Оно может содержать только текст или HTML код, PHP код и Twig теги в нем не работают. Я использую эти текстовые блоки для проброски в шаблон, что бы заказчик мог редактировать текста.

Единственная похожая черта с Modx это подключение чанков, только вместо самописного шаблонизатора в Октябрь зашили Twig. И как мне кажется ребята не ошиблись. Например в Modx я вместо стандартного шаблонизатора использую Fenom, так как он более годный чем дефолтный. Twig и Fenom довольно похожи.

Самая заметная разница между October и Modx кроется в реализации системы шаблонов. В Modx элементы шаблона лежат в базе данных под кэшем, в October все реализовано в виде файлов. Тут только я должен немного оговорится так как в новых Modx есть возможность сделать элементы шаблонов статическими. В октябре тоже присутствует довольно мощный кеш, но неудобств он мне никогда не создавал.

Структура проекта

От Wordpress October CMS взял концепцию установки шаблонов и плагинов и хороший UI. Например в Modx темы интегрируются вручную. Октябрь может устанавливать их через репозиторий как в Wordpress. Так же стоит отметить очень классный медиа менеджер Октября, который поддерживает удаленное хранение, например Амазон. Я не припомню ничего лучшего, что мне удалось видеть до этого.

Несмотря на схожесть концепции реализация абсолютно другая. По факту вы работаете с ООП по ставшей уже стандартом моделью MVC. В Wordpress вы писали гору кода в function.php или подключали доп. файлы, иногда ставили Composer и подтягивали нужные пакеты с последующим ручным подключением. И это настоящая "садомаза" над системой, которая не планировала, что с ней будут работать таким образом.

С Modx все проще, пока не приходилось выполнять масштабирование проекта, порой админка modx обрастала дополнительными полями и превращалась в кучу хлама, а разработчик с трудом понимал где какая ТВшка идет в рендер. В October все дополнительные поля и вкладки отображаются красиво и аккуратно.

October CMS взял лучшее из вышеперечисленных систем и переосмыслил все. По возможностям October больше фреймворк чем CMS. Соответственно и сложность разработки другая. Если вы толком не знаете PHP, ООП, то пока не стоит делать реальный проект.

Но попробовать написать учебный сайт однозначно нужно. Для Октября написали великолепный модуль Builder, который позволит быстро набросать каркас плагина и в последующем его дорабатывать, например изменить поля ввода в админке. Конечно многое придется написать ручками, но в любом случае это облегчит разработку. Либо можно использовать команды helper(ы) artisan.

Ajax и October CMS

Одна из самых интересных фишек. На самом деле мне данная идея понравилась, но я и неплохо справлялся с классическим jQuery Ajax, однако стоит отметить простоту использования. Как официально заявляет команда October CMS, в системе встроен Ajax фреймворк. Основан он на той же JQuery. Вариантов его использования 2.

Data attributes API - вариант для ленивых, принцип в том, что для элементов вы указываете нужный атрибут data. Например мы нажмем кнопочку Delete, в наш контроллер прилетит передаваемый id и запустится метод onDelete. Например этот метод удалит запись с id = 7.

JavaScript API - Более продвинутый метод. В функции $.request() указываем к какому методу обращаемся, далее передаем параметры. Данная JS реализация повторяет предыдущий функционал, который мы сделали с помощью Data attributes API. Тут мы добавили только параметр confirm, он служит для подтверждения выполнения функции пользователем. В параметре data мы передали id записи.

$('form').request('onDelete', { confirm: 'Вы действительно хотите удалить запись?', data: {id: 7} })

Рекомендую посетить русскоязычное сообщество и страницу русскоязычной документации. Надеюсь данная статья была полезна для вас. Я не хочу сказать, что нужно работать только с Октябрем, а остальные CMS/CMF полного Г/Е. Просто для каждого проекта своя платформа. Я же рекомендую попробовать October CMS в своих проектах. Скорее всего он вам очень сильно понравится, а так же сделает воронение вашим бубенцам. На этом у меня все. Спасибо за внимание и до новых встреч!