0,0
рейтинг
21 марта 2013 в 01:59

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

MODX*
В последнее время в лагере разработчиков 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
Дмитрий Лукьяненко @Dmi3yy
карма
24,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (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.
      • 0
        Уже начали, посмотрите на DocLister
  • +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
    Выпустили следующий релиз в котором очень много нововведений.

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

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

Интересные публикации