MODX Evolution возвращение! (версия 1.0.9 от 19.03.2013)

    В последнее время в лагере разработчиков MODX отмечается активное движение, результатом которого уже стала организация мировой сети Амбассадоров, появление долгожданного облака для ветки Revolution и что самое главное – официальное возрождение ветки Evolution, от развития которой создатели уже давно успели отказаться. Итак, 19 марта 2013 года свершилось то, на что не переставали надеяться приверженцы ветки
    Evolution последние два года и что подтвердило почетное звание MODX, как самой перспективной и быстроразвивающейся системы управления с открытым кодом 2012 года (сабж).

    В общем-то сама идея вынашивалась давно, система продолжала свое независимое от официальных разработчиков развитие в неофициальных сборках, но желание изменить ситуацию в лучшую сторону все же было. И вот несколько месяцев назад, как раз после запуска программы MODX Ambassador, я поднял эту тему в беседе с одним из создателей MODX – Райаном Трешем (Ryan Thrash). С учетом того, что MODX 3 пока только в планах (причем весьма отдаленных), а ветка MODX Revolution многих совсем не впечатлила, то тема продолжения развития ветки MODX Evolution смогла вызвать живой интерес практически всей команды основателей.

    Результатом переговоров стало сделанное мне предложение войти в команду MODX в качестве девелопера ветки Evolution, проигнорировать которое я никак не мог. Так же в эту команду попали еще один из членов русскоязычного сообщества MODX – Agel_Nash, небезызвестный японский разработчик автор форка MODX.jp – Mansori Yamamato (yama) и немец Thomas Jakobi (jako) — разработчик MultiTv и других решений для ветки Evolution. Симбиоз получился довольно удачным и, благодаря слаженной и напряженной работе удалось выпустить в свет MODX Evolution 1.0.9.

    Основная проблема, которую решает новый релиз, это совместимость с php 5.4, что немаловажно в свете предстоящего апрельского перехода некоторых хостеров на версию 5.4 и отключение всех, более ранних версий. Также, помимо исправления старых багов были добавлены и новые возможности, которых очень многим не хватало. Подробно все это можно увидеть в ченжлоге, лично я хочу выделить такие «плюшки», как:

    Значительная переработка парсера:
    [[SnippetA? &param1=`value`  //можно оставлять комментарии
    &param2=value
    &param3='value'
    &param4="value" // любые кавычки или без кавычек а не только ``
    &param5=`[[SnippetB]]` // нет конфликтов при вызове сниппета в сниппете
    &param6=`A&B=C?` //используем любые символы в параметрах
    ]]
    


    Появление бекап менеджера:


    Добавлен Сниппет IF (wiki):
    Сниппет для вывода информации по условию.
    Логика работы: Если условие is выполняется, то выводим содержимое параметра then, если не выполняется, то выводим содержимое параметра else.
    [[if? &is=`[*id*]:=:4:or:[*parent*]:in:5,6,5,7,8,9` &then=`[[if&is=`0||=||0` &then=`true` &else=`false` &separator=`||`]]` &else=`@TPL:else`]]
    [[if? &is=`[*id*]:is:1:or:[*id*]:is:2:and:[*parent*]:is:5:or:[*parent*]:in:2,3,4` &then=`true` &else=`false`]]
    //Все выражения обрабатываются по логике (....:or:is:.... ) :and: (...:!empty:.....)
    //выражение and делит условие на 2 части, которые в конце в конце сравниваются к true
    //Операторы:
    //  (is,=) , (not,!=) , (>,gt) , (<,lt) , (>=,gte) , (lte,<=) , (isempty,empty) , (not_empty,!empty)
    //  (null, is_null) , (in_array, inarray, in) , (not_in,!in)
    
    //Выводить акцию только для товаров с ценой в диапазоне >300$     <=700$
    [[if? &is=`[*price*]:>:300:and:[*price*]:<=:700` &then=`@TPL:akcia`]]
    
    //Выводить при кратности записи дитто 3
    [[if?is=`[+ditto_iteration+]:%:3` &then=`true` &else=`false`]]
    


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

    Но и разработка неофициальной русской сборки MODX Evolution также будет продолжена, так как в нее включены многие сторонние дополнения, облегчающие жизнь разработчику. Когда-то я уже писал о ней пост, но видно звезды сложились так, что дальше песочницы он так и не прошел, поэтому я подозреваю что многие, кому он может оказаться полезен, его просто не видели. Копировать его весь нет смысла, но вкратце я все же немного о нем расскажу.

    Изначально идеи создавать какую-то сборку не было. Было желание сэкономить время на установке сайта и тех дополнений, которые очень часто были нужны. Но, как нередко случается, потом захотелось еще кое-что добавить, понадобилось что-то изменить, сама сборка поселилась на GitHub и за неполные два года существования выросла в гибкий, быстрый и функциональный продукт. Сегодня на ней работает более чем 500 сайтов (это только те, которые мне известны), что лично я считаю достаточно неплохим уровнем популярности. Перечислять все изменения и дополнения вошедшие в сборку очень долго, если кого-то заинтересует, то подробно можно ознакомиться тут.

    И напоследок хочется сказать о том, что тренд, реклама и облачный хостинг конечно могут создать впечатление о преимуществе ветки MODx Revolution во многих вопросах web-разработки, но попытки списать на этом фоне MODx Evolution весьма преждевременны, и сегодня практически любая задача для Revo может быть решена на Evo. А если учитывать возможности сборки, то нельзя не признать, что вторая даже превосходит первую: удобство, быстрота работы в админке, возможность задавать ЧПУ-имена для превью-изображений и некоторые другие функции которых в Revo пока нет. Но, тем не менее, нельзя сказать, что какая-то хуже, а какая-то лучше — уже давно каждая ветка стала отдельным самодостаточным способом решения тех или иных задач, а уж какой способ выбирать — решать разработчику.

    UPD. 21.03.2013
    Обнаружили пару критических ошибок, ниже решение:
    Конфликт с php5.3 (обновить фаил manager/includes/protect.inc.php скачать тут)
    Не создается нормально менеджер в админке (обновить фаил manager/processors/save_user.processor.php скачать тут)
    В своей сборке уже исправил GitHub

    UPD2. 21.03.2013
    MODX 1.0.10RC

    UPD3. 18.04.2013
    MODX 1.0.10 от 18.04.2013
    Метки:
    Поделиться публикацией
    Похожие публикации
    Комментарии 40
    • 0
      Отличная новость! А какие планы/сроки на продолжение? Слышал что там список улучшений на три страницы мелким почерком.
      • 0
        В ближайших планах релиз 1.0.10
        tracker.modx.com/versions/271
        • 0
          Низкий Вам поклон за Ваш труд!
          Даже и не надеялся на Evo, совсем недавно перевел сайт на Revo, а тут такая новость.
      • –3
        Единственный нормальный способ выжить modX. Наконец то они признали что Revo провальна. Интерфейс её админки настолько тормозен по сравнению с Evo что работать просто не возможно
        • +1
          Я думаю с REVO не все так печально, релиз 2.3 должен быть многообещающим, в частности full ajax админка, это должно улучшить ситуацию со скоростью работы
          • +1
            Там в основном проблема из-за выбранного ExtJS. А для практиков революция действительно не свершилась именно из-за тормознутости админки. СМожно было бы плеваться в разработчиков, но никто этого не делал, ибо был старый хороший EVO
            • 0
              Есть еще один минус Revo — она это своеобразный «черный ящик», когда при каждой установке пакета вглядываешься в консоль в надежде, что не полезут ошибки или вообще все не станет колом ))
              Эво во многом гораздо более прозрачная и предсказуемая система. Даже если все сломалось и только белый экран, в Эво можно копнуть и все починить. Но сколько раз у меня было при установке пакетов, апгрейдах или даже просто изменении конфига сервера — ломается админка и начинаются танцы с бубнами. А бывало что админка в целом работает, а некоторые функции подвисают (сохранение настроек и т.п.)
              Ну это наверное как сравнить Стелс с кукурузником — супертехнологичная и супертребовательная к обслуживанию начинка против простой и проверенной временем.
              • 0
                Да, ExtJS стал провалом. Для меня это стало основополагающим фактором при отказе от перехода.
                • 0
                  Как показывает практика, теперь есть и такие сторонники, которые категорически против выпиливания ExtJs. На каждую реализацию находятся свои сторонники.
                • 0
                  Тоже так считал: тормоза, неудобство… Потом а) собрал сервер по-уму (здесь, на Хабре, была на эту тему, кстати, статья) и б) перешел на Хром (не люблю его, поскольку он Ctrl+Tab «не умеет», как надо, но здесь пришлось поступиться удобством ради скорости). Итог настолько удивил, что стал Revo пользоваться.

                  Другое дело, что переучиваться надо довольно заметно, это да.
                  • 0
                    А те, кто начинают сразу с Revo совершенно иначе все это воспринимают. Я обучил человек 10 за недавний период. Народ вообще запросто работает. А вот переучиваться не всем интересно. Да и не обязательно. Если Evo будет развиваться дальше, то смысл их противопоставлять?
                    • 0
                      Согласен. Более того, Evo столько лет работала, наверное, неспроста?

                      Есть, правда, своя проблема в том, что хаки кода Evo, что можно найти на форумах, хоть и помогают, но после обновления пропадают, да и вносятся руками, так что при следующей инсталляции из стандартного пакета поставки их надо ставить руками. Пакетный менеджер, как для хаков, так и для вполне «легальных» расширений для Evo был бы кстати — с поиском, с проверкой версии Evo, с проверкой обновлений. Как пример, что-то вроде такового в WP было бы очень мило.
                      • 0
                        Конечно неспроста. Как подметил Райан, Evo привела нас туда, где мы сейчас находимся. И это многого стоит.
                        • 0
                          Чебурашка сказал точнее: «Мы строили-строили, и наконец построили!»

                          Обе ветки хороши, тут не до прямых сравнений. Однако имело бы смысл Revo и Evo назвать разными системами, это бы много нервов и копий спасло.

                          Я, кстати, не пойму — с новым веянием («облака») и облачным MODx-ом, какую версию пилят разработчики? 2++?
                          • 0
                            Они продолжают развитие 2-й ветки, что логично. Не зря же они столько усилий в нее вкладывали, чтобы просто выбросить. Предполагаются существенные изменения интерфейса админки, в связи с чем идут обсуждения за и против ExtJs / Kendo UI. Но интрига сохраняется и пока достоверной информации нет. ;-)
                • 0
                  Очень хорошо, что возвращаются к системной поддержке Эволюции. Иногда лучше точить проверенные решения, чем гнаться за модой.
                  • +1
                    Сниппеты какие-нибудь переписали? Там Weblogin жуть как написан (Weblogin PE не лучше). ajaxSearch тоже ужас.
                    Нет никакого желания возвращаться на Эво (вспоминать страшно). Лучше бы эту энергию направили на Рево.
                    • 0
                      Каждый сам для себя выберает то с чем ему работать и что развивать и не нужно осуждать других.
                      Думаю и до Weblogin руки дойдут.
                      • +3
                        Вообще идеально было бы — расширить API modx evo, включив туда CRUD и работу с пользователями, и уже под это переписать стоковые сниппеты.
                      • 0
                        А начинать лучше прямо с Ditto.
                    • +1
                      >Добавлен Сниппет IF
                      > [[if? &is=`[*id*]:=:4:or:[*parent*]:in:5,6,5,7,8,9` &then=`[[if&is=`0||=||0` &then=`true` &else=`false` &separator=`||`]]` &else=`@TPL:else`]]
                      [[if? &is=`[*id*]:is:1:or:[*id*]:is:2:and:[*parent*]:is:5:or:[*parent*]:in:2,3,4` &then=`true` &else=`false`]]

                      эпично. а чем php не угодил?
                      в этой mod cms смый вырвиглазный синтаксис для шаблонов — почему бы не взять готовые решения типа Smarty или Twig и т.п.?
                      • –1
                        смый вырвиглазный синтаксис для шаблонов

                        А вы знаете этот синтаксис, что его ругаете?
                        • +1
                          Вы хотите поговорить об этом?
                          • +1
                            Я вам вопрос задал, к чему это ерничество?
                        • +6
                          >>в этой mod cms смый вырвиглазный синтаксис для шаблонов

                          CMS тут ни при чём. Это некоторые «умельцы» всё доводят до абсурда.

                          >>>>А вы знаете этот синтаксис, что его ругаете?

                          А разве из примера не видно, что от таких условий у нормального человека может поехать крыша?
                          • 0
                            В этом и вопрос был — зачем нужно добавлять такие конструкции и создавать дополнительный слой обработки, если это есть в php изначально.
                            • +1
                              Зачем было создавать PHP, если был C++ изначально? А чуть выше вы предлагали Smarty. Определитесь что вам нужно.
                              • –2
                                Php хорошо заточен под web. В modx он и так поддерживается в снипетах насколько я знаю.
                                А вот вместо своеобразного синтаксиса шаблонов MODX хотелось бы видеть что-то более менее привычное глазу — Smarty/Twig и т.п.

                                • +2
                                  Простите, но мне привычнее видеть лаконичный синтаксис MODX. От Смарти у меня несварение желудка. Хотя и его некоторые умельцы используют в MODX.
                            • 0
                              Андрей, ну да кто такое условие использует? Оно для примера. А таких условий для phx можно тоже насочинять немерено, не мне вам об этом рассказывать.
                            • +1
                              Это пример что б показать что такое можно делать
                              На практике обычно используется что то из:
                              [[if?is=`[+ditto_iteration+]:%:3` &then=`true` &else=`false`]] или [[if? &is=`[*price*]:>:300:and:[*price*]:<=:700` &then=`@TPL:akcia`]]

                              Для более сложных условий действительно логичней написать на php свой снипет, это будет и удобней и быстрее работать.

                              Так же замечу что можно даже верхний пример разбить на строки и тогда читабельность будет в разы выше
                              • 0
                                а почему бы не сделать хотя бы:

                                [[if? &expression=`(([*id*] == 1) || ([*id*] == 2)) && (([*parent*] == 5) || ([*parent*] in (2,3,4)))` &then=`true` &else=`false`]]

                                Ну да, нужен парсер для разбора, зато читабельность вырастает в разы!
                            • +4
                              Молодцы, поздравляю!

                              Главное, поменьше холиворов Эво\Рево — очевидно же, что это скорее 2 разных CMS, чем 2 версии одной и той же.
                              • 0
                                Отлично! Хотя в целом разработчики возлагают основные надежды на MODX3, что логично, развитие Evo очень радует. Фактически это как раз будет отражением названия версии — Эволюция. Соответственно будет происходить постепенное развитие.
                                • 0
                                  Вы не представляете себе сколько у меня надежд на MODX3… после всех этих холиваров Evo\Revo
                                  • 0
                                    Время покажет. Но я лично не сомневаюсь в талантливости команды. Это уникальный сплав всех необходимых профессиональных компетенций. MODX3 обязательно будет прорывом! :)
                                • 0
                                  Спустя месяц после выхода 1.0.9 представляю вашему вниманию MODX EVO 1.0.10 (более 70 бакгфиксов и улучшений)
                                  Оф презентация (eng)
                                  Список изменений
                                  • 0
                                    Ну вот, месяца 3 назад смирился с тем что перехожу на РЕВО, теперь есть веская причина остаться на ЕВО.
                                    PS Желаю хорошо провести отпуск. =)
                                  • 0
                                    Выпустили следующий релиз в котором очень много нововведений.

                                    так как решил что статья не дотягивает по информативности и полезности для Хабра, поэтому читаем тут

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