Про MODX 3

Сразу после новостей об анонсе по-настоящему активной работы над MODX 3 появилась масса ожидаемых вопросов.

— Будет ли новая админка без ExtJS?
— Будет ли новый шаблонизатор?
— Будут ли файловые элементы?
— Откажутся ли от xPDO?
— Напишут ли CMS моей мечты, которая снится мне уже джва года?

К сожалению, ответ на все эти вопросы — нет. И сейчас я попытаюсь объяснить, почему.

MODX 3 была анонсирована в 2012 году, и обещалась к выходу в 2013. На тот момент это было решением для объединения сообщества, разбежавшегося по разным углам: Evolution и Revolution. Сообщество доказывало крутизну своей системы и принижало достоинство «чужой». Несмотря на то, что обе они были, вроде бы, MODX, шухер стоял нешуточный.

После той самой заметки (мой перевод) страсти немного улеглись, и все дружно принялись мечтать: а какой он будет, этот MODX 3?
Ситуация очень сильно напоминала Duke Nukem Forever и Half Life 3 — все ждали неимоверного великолепия. Реальность, однако, оказалась прозаичнее — MODX 3 просто не вышел за эти 5 лет.

Мы все старались представить каким он будет, сколь много всего нужно изменить, какой фронт работ, кто будет финансировать, какой план нужно для этого написать и… ничего.

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

За эти 5 лет возникли и окрепли MODXCloud, modstore.pro, modmore.com, modhost.pro и даже, внимание, наш modx.pro!

Сформировалась целая инфраструктура вокруг текущей версии движка, аж целых 2 специализированных хостинга и минимум 2 магазина. Написаны тысячи заметок, сотни дополнений — и это всё просто работает.
Но мы хотим MODX 3 — он был обещан нам 5 лет назад, и он должен выйти. На Руси принято ждать обещанного 3 года, а тут уже вышло подольше.

И поэтому, как ни странно, мы хотим просто выпустить MODX 3. Не потрясти основы мироздания, не создать совершенную CMS, которая уничтожит Wordpress и Bitrix сразу, не воплотить все розовые мечты поклонников во всём мире — а просто выпустить новую версия с коренными изменениями, которые могут сломать обратную совместимость.
Система, которая вносит breaking changes в код, по семантическому версионированию, должна увеличивать мажорную версию. В нашем случае — это MODX 3.

Все планы, отчёты, подробности по финансированию прямо сейчас можно почитать на modx3.org. Небывалая прозрачность, отчёты каждую неделю.

Разберём, например, только один пункт, который многим кажется полной глупостью — Login screen. Как же так, ведь нам нужны коренные изменения, а вы тут какой-то редизайн одной странички делаете!
Немногие понимают, что MODX давно стал системой для ведения бизнеса, для поддержки клиентов и многим из них при авторизации хочется видеть необычное лого, фон и ссылку для получения помощи.

Так же мало кто задумывается, что ведение бизнеса может производиться на разных языках. Например, когда на сайте 10 контекстов и каждый из них ведёт менеджер на своём языке. Какого языка должна быть админка? В текущей версии — того, который указан в настройке manager_language, поэтому все мультиязычные сайты будут в англоязычной админке. Вы можете попробовать сменить язык при входе, но сразу после входа включится manager_language, так что выбор языка при авторизации в текущей версии — фикция, он просто не работает.

В MODX 3 язык уже определяется автоматически, плюс вы можете сменить его вручную. А после авторизации админка будет именно на вашем языке для всех менеджеров.
А дальше, понятное дело, мы вынесли шаблоны сброса писем из системных настроек в лексиконы. Потому что, русскому менеджеру будет приятно получать это письмо на родном языке, не так ли?

Ну и мы хотим, чтобы письма были приятно оформлены. То есть, они должны быть HTML, и мы не хотим писать весь CSS в каждый тег вручную — так в ядро пролез pelago/emogrifier.

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



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

А еще у нас есть опциональная возможность менять логотип, задник и кнопку помощи на этом экране — через банальные системные настройки.



Как такая кастомизация понравится вашим клиентам? Сегодня одно это «коротенькое изменение» Login screen было полностью влито в ветку 3.х.

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

Но мы ведь еще и сделали Extract dependencies. Из ядра MODX 3 уже убраны PhpThumb, Smarty и PhpMailer. А источники файлов заменены Flysystem и полностью переписаны заново. Багов из них вычищено — не пересчитать, я почти месяц только этими источниками занимался.

Мы никак не можем взять и протестировать все текущие дополнения на предмет работы с этими изменениями, многое может сломаться. А ведь впереди еще и новый Dashboard, и UX Improvements — и неизвестно, что там по ходу их разработки еще выплывет.

Но это всё фигня, пускание пыли в глаза (tm) — нам нужно написать новый менеджер, файловые элементы, заменить парсер на шаблонизатор, и выкинуть xPDO (которой, кстати говоря, наоборот теперь новый — версии 3 с namespaces и через composer).

Извините, ребята. План у нас — выпустить MODX3 не сразу после Half Life 3, а в июне 2018 года. И при этом никто не горит желанием разрушить весь пользовательский опыт, все дополнения, и всю работу с клиентами — это всё только сравнительно недавно стало работать и приносить деньги.

Мы просто хотим привести систему в порядок и выпустить действительно большое обновление. Тем, кто хочет всего нового и прямо сейчас я могу предложить просто сменить MODX на любую CMS для всех своих сайтов и сайтов ваших клиентов — эффект будет вполне ожидаемый. Именно это вы и предлагаете, когда говорите о выбрасывании всего созданного за 10 лет.

А всем прочим я просто предлагаю присоединиться к тестированию новых фич. Сейчас pull-request мы клипаем быстрее, чем успеваем их тестировать и вливать в основную ветку. Увидеть текущий MODX 3 можно очень просто:
composer create-project modx/revolution www 3.x-dev
дальше открыть в браузере /setup и как обычно. Для тестирования PR вам поможет вот эта заметка от GitHub.

После выпуска MODX 3 мы, естественно, займёмся дальнейшими улучшениями, включая отказ от ExtJS — но дайте нам, пожалуйста, выпустить хоть что-то. Если не хотите помогать, то хотя-бы не мешайте.
Василий Наумкин
16 марта 2018, 21:06
1
3 625
+32

Комментарии: 39

Pavel Zarubin
17 марта 2018, 00:21
+2
Спасибо, теперь все встало на свои места по всем вопросам!
Олег
17 марта 2018, 03:43
-1
Язык админки можно настроить индивидуально для каждого пользователя (менеджера) стандартными средствами MODX, переопределив системную настройку «manager_language» в разделе Пользователи -> Настройки. Тоже самое и для контекстов. Или с этим какието проблемы? А дизайн страницы входа в админку переопределяется в папке /manager/templates/TEMPLATE_NAME/security/login.tpl — там и логотип можно любой поставить, и свой дизайн сделать за 5 минут.
Константин Ильин
17 марта 2018, 10:52
+2
Порадовал pelago/emogrifier.

Я не буду мешать просто предложу пару вещей, можете не читать)))

— Текущий шаблонизатор модх точно не должен быть в МОДХ, ну или хотя бы работать не так(рекурсивно), по мне так лучше пропихнуть идею с феном.
— Простой интерфейс создания виджета на Дашбоард, на текущей понятное дело нужно знания extjs. Где-то видел скрин Дашбоарда, очень приятный на вид и хотелось бы чтобы виджеты просто создавались. Хотя наверно без программирования никак, но как то побольше документации об этом чтоль.
— Фон(Горы) при логине мне кажется сделать более нейтральным, например сероватым

Да, Вы не наемные рабочие и ничего нам не должны, но было бы хорошо если вы выслушивали предложения/пожелания других пользователей, дабы все миром сделать бодрую CMS.

Спасибо Василий, что держишь нас в курсе событий и трудишься на блага людей! Спасибо!
Telega
17 марта 2018, 11:20
+1
Спасибо, что вы есть, ребята
    Филипп
    18 марта 2018, 17:44
    0
    Василий — наш кандидат
Павел Гвоздь
17 марта 2018, 11:34
+10
Круто бы сделать из коробки такое же окошко, как сейчас предлагает компонент controlErrorLog. Было б очень удобно!
    Василий Наумкин
    17 марта 2018, 15:44
    +3
    Пришли хорошо оформленный PR в третью ветку — почему нет?
      Руслан Алеев
      23 марта 2018, 11:50
      +1
      Василий, вы можете поспособствовать установки прямой логики в чекбоксах в админке MODX 3? Возможно это не принципиально, но, например, чекбокс «Hide from menu» — странный выбор, логичнее сделать «Show in menu», а в переводе на русский этот выглядит вообще интересно — «Не показывать в меню» (т.е. при не выбранном чекбоксе — отрицание отрицания).
      Если такие конструкции технически уже не изменить, то как сообществу можно повлиять на перевод в новой MODX 3 (чтобы хотя бы двойного отрицания не было), заранее спасибо?

      p.s. Спасибо за ваш труд и громадный вклад в развитие MODX!
      Руслан Алеев
      01 апреля 2018, 16:15
      0
      Василий, поспособствуйте еще корректным хлебным крошкам в админке, в нынешней MODX 2.x они странновато работают (по-сути их нет).

      p.s. Кстати, можно просмотреть рынок популярных по скачиванию дополнений для MODX и полезные внедрить в MODX 3.
        Иван Климчук
        02 апреля 2018, 22:19
        +1
        В этом нет необходимости. MODX как раз тем и хорош, что легко дополняется. Вам не нравятся хлебные крошки сейчас, а а кому-то не понравятся новые. Если сделать их встроенными — значит заблокировать возможность их менять как душе угодно (либо с ограничениями). Другие функции — такая же история. Так что в 3 версии скорее некоторые вещи будут и вовсе удалены, нежели добавлены, но при этом будет обеспечена возможность внедрять свои более удачные решения на замену удаленным функциям.
          Руслан Алеев
          02 апреля 2018, 22:23
          0
          Да, насчет дополнительного функционала — это верно, но с хлебными кошками в 2.x ситуация двоякая, уж лучше бы в MODX их и не было :)
            Иван Климчук
            02 апреля 2018, 22:28
            +1
            Так их в Рево и нет. :) То, что у вас есть хлебные крошки — это заслуга компонента (я забыл название) и претензии к нему.
              Руслан Алеев
              02 апреля 2018, 22:38
              0
              Нет, вы ошибаетесь. Если перейти в «Управлениями пакетами», а затем «Загрузить дополнения», то появляются крошки — clip2net.com/s/3T8ZoWJ (они и еще в системе где-то есть. Вот про это я и имел ввиду, во-первых, не везде есть, а во-вторых где есть, то они бесполезные)
                Иван Климчук
                02 апреля 2018, 22:42
                0
                Боюсь, что они только там и есть. Я больше не встречал. Верстка и стили для них есть, несомненно, и компонент, который их добавляет (вроде бы moddevtools) их использует, но они не везде добавлены.
                  Руслан Алеев
                  02 апреля 2018, 22:49
                  0
                  Ну вот адекватных хлебных крошек и не хватает в MODX, как ни крути :)
    Руслан Алеев
    17 марта 2018, 18:56
    +6
    Ага, и уведомление о новой доступной версии MODX тоже, с кнопкой «Обновить MODX».
Гозман Семён
17 марта 2018, 22:24
+3
Вопрос про обратную совместимость — получится ли обновиться летом до 3 версии, или переход будет как с Evo на Revo?
Вы делаете прекрасную CMS и маркетплейс! Спасибо за Ваш труд!
    Иван Климчук
    18 марта 2018, 15:35
    +2
    По идее можно будет обновить безпроблемно, но по ходу разработки может что и поломается, тут загадывать пока рано. Но в любом случае будет написан подробный гайд по тому, как обновить и что делать, если что-то сломалось.
Антон Соловьёв
19 марта 2018, 08:36
+2
Нитрогайте ExtJS, он велик и чудесен. Хотя я на modx давно не работаю, я человек подневольный. Но мне очень бы хотелось знать, что в modx3 прокачены вопросы безопасности и новая версия — вот прям неприступная крепость
Hetzerok
19 марта 2018, 14:33
+1
Круто что серьезная работа работа началась, однако те вещи, которые были названы в начале (проблемы XPDO, отсутствие файловых элементов, extJS и т.д.) это краеугольные камни MODX. Получается что если отказаться от XPDO например в следующем релизе, то это минимум MODX4, а вероятнее этого не произойдет никогда. Между тем это не то что нужно уже сейчас, а нужно было вчера.
Проблема MODX не в том что он плох, а в том что он стремительно устаревает на уровне своих принципов. Да что говорить — автозагрузка классов в современном виде фишка 2009 года, а в MODX у нас loadClass бессменный.
    Павел
    20 марта 2018, 18:35
    +3
    Будет composer, значит руки развязаны полностью.

    Не нравится Xpdo?
    composer require doctrine
    Не нравится стандартное кеширование Modx?
    composer require symfony/cache
    Хотите роутинг гибкий?
    composer require symfony/routing
      Hetzerok
      20 марта 2018, 19:41
      +2
      Ну не совсем так конечно, но composer это уже большой шаг в нужном направлении.
      Сергей Шлоков
      20 марта 2018, 22:10
      +12
      Не нравится MODX?
      composer require laravel/laravel
        Hetzerok
        21 марта 2018, 13:09
        +3
        Отличный ответ, главное плюсов много. Не нравится что-то — не используй. А зачем тогда это все, зачем обсуждения, зачем доработки?
          Telega
          23 марта 2018, 22:58
          +1
          так для тех кому нравится же
        Stan Ezersky
        03 апреля 2018, 09:36
        0
        Это проще на OctoberCMS перейти:)
Александр Москвин
20 марта 2018, 14:48
0
Сделали окно авторизации админки, «очень важная вещь, прям незаменимая и решающая все проблемы»))
Ну ладно дождемся, что покажут ещё)
Волков Николай
26 марта 2018, 06:35
+2
Ёлки палки. Half life 3 выходит? Вот отстал от жизни:-)
Волков Николай
29 марта 2018, 12:35
+2
Я глянул на список изменений в свежем обновлении modx Evo modx.ru/novosti-i-stati/article/393/ и немного озадачен. Тоже composer, тоже обновление экрана авторизации (дизайн тоже очень похож кстати)… Совпадение или как-то совместно работаете?
P. S. Дмитрию за Twig отдельный плюс. Круто иметь под рукой шаблон работающий как в php, так и на js.
    Василий Наумкин
    29 марта 2018, 12:37
    0
    Думаю, ребята тоже обрадовались анонсу.

    Экран авторизации точно был вдохновлён таковым из MODX3.
      Волков Николай
      29 марта 2018, 13:38
      -1
      Главное, чтобы не вдохновились до такой степени, что в следующем релизе добавят xPDO 3 :-)
YansterOne
29 марта 2018, 13:46
-7
Пыль в глаза… Вместо того, чтобы исправлять насущные проблемы MODX, вы меняете дизайн и делаете цацки и побрякушки для админки.
    Василий Наумкин
    29 марта 2018, 13:52
    +4
    Именно этим мы и занимаемся, да.

    Еще и бабло собрали, и ни с кем не делимся. Вот ты бы всё совершенно иначе сделал, но не можешь — мы тебе не даём, твари такие.

    Специально 5 лет прождали, пока никто ничего не делал, и теперь давай пускать пыль в глаза(c)! Никакой фантазии.
Паша Михалев
30 марта 2018, 12:46
+1
Орнул с
«Напишут ли CMS моей мечты, которая снится мне уже джва года?»))
А так спасибо за инфу, понятно хотя бы чего ожидать.
Alexander V
03 апреля 2018, 13:26
+1
На месте картинки на странице авторизации можно было бы придумать какую-нибудь кастомизацию. Например указать шаблон. Раз уж заговорили про корпоративщиков.
Кирилл Киселев
24 мая 2018, 10:37
0
А почему хотите отказаться от ExtJS и xPDO?
Богдан
29 мая 2018, 09:33
0
Друзья, подскажите как слить все PR вместе и тестировать все сразу? У меня получается только по отдельности каждый PR тестировать (после пересборки ядра учитываются только текущий PR, который я выбрал через git checkout). Я так понимаю тестировать нужно все пулл реквесты с пометкой v3.0.0-alpha.