Evolution CMS 1.4.0 (25.01.2018)

Это второй крупный релиз Evolution CMS. Про первый можно почитать тут (http://modx.im/blog/news/5311.html). За полгода было проделано много работы (более 600 комитов). Основной упор в этом релизе был направлен на стабильность системы, а также на обновление старых сниппетов, что дает возможность создавать сайты еще быстрее, да и работать сайты будут еще быстрее. В этом нам очень сильно помогает DocLister.

Из самого важного
— Обновлена демоверсия сайта. Все старые компоненты заменены новыми, вынесены в Extras и не рекомендуются к использованию.

— Ditto на DocLister;
— Wayfinder на DLMenu;
— Breadcrumbs на DLCrumbs;
— Eform на FormLister;
— WebLogin на FormLister;
— WebChangePwd на FormLister;
— WebSignup на FormLister.

— Add DLSitemap.
— AjaxSearch;
— FirstChildRedirect;
— Jot;
— MemberCheck;
— Personalize;
— Reflect;
— UltimateParent.
— phpmailer до 6.0.3;
— Глобальные табы;
— Групировка ТВ;
— Виджет изменения цветовой схемы административной панели, кнопка «на полный экран» и создание нового документа в меню;
— Modifier disable by default;
— <@syntax disable by default;
— New — $modx->clearCache($docid);
— [I] Allow {{chunk?¶m=xxx}} with [*tv_name_[+param+]*] as content;
— added theme manager css minify;
— correction popup window from the context menu Closing popup window when «saving» or button press «cancel» Hot keys: Esc — Close Ctrl+S — Save Ctrl+Q — Save and quit (if focus in codeMirror editor);
— friendly_url_suffix = / and aliaslistingfolder;
— fix htmlspecialchars in passwords.

Обновление до версии 1.4
Для того, чтобы корректно обновиться со старых версий, а также исключить возможность того, что на сайте остались ненужные файлы и проблемы с безопасностью делаем следующее:
1. Делаем бекап файлов и базы на всякий случай
2. Обновляем до версии 1.3.6 (она включает в себя все старые дополнения которые в 1.4.0 были удалены, это даст возможность скопом обновить все дополнения такие как Ditto, EForm, WebLogin).
3. Удаляем старые темы административной панели (manager/media/style). Все, кроме default и common.
4. Удаляем файлик index-ajax.php — он использовался только для AjaxSearch до версии 1.0.10 (оставить, если вы его используете для других целей).
5. Также, чтобы по максимуму удалить мусор, нужно удалить папку manager оставив только файлик manager/includes/config.inc.php. После чего загрузить файлы с версии 1.4.0.
6. Настоятельно рекомендую удалить все не используемые старые сниппеты такие как: Ditto, Wayfinder, Eform, Breadcrumbs, WebLogin, WebChangePwd, WebSignup.
7. Иногда возникает проблема: при обновлении плагина ManagerManager со старых версий. Решение проблемы — удалить папку managermanager и залить заново.
8. TinyMCE 3 также рекомендуется отключить и удалить все его файлы, если не используете его.
9. Если вы используете Модификаторы и @-синтаксис, то проверьте в настройках, что они включены, так как по умолчанию в 1.4 они выключены.
10. Если сайт очень старый, также не будет лишним проверить файлы на наличие вирусов: revisium.com/ai/

Замена старых сниппетов на новые
1. В качестве примера можно установить Evo с демонстрационным сайтом. Там уже используются новые сниппеты.
2. Для миграции с Ditto на DocLister помогут следующие примеры:
docs.evo.im/03_extras/doclister.html
www.evolution-docs.com/extras/doclister/main-parameters
github.com/Nicola1971/Doclister-Tags-in-Ditto-Style
github.com/Nicola1971/Ditto-to-DocLister-Reference-Tables
3. Для миграции с Wayfinder на DLMenu:
docs.evo.im/03_extras/dlmenu.html
docs.evo.im/en/03_extras/dlmenu.html
4. Для миграции с BreadCrumbs на DLCrumbs:
docs.evo.im/03_extras/dlcrumbs.html
docs.evo.im/en/03_extras/dlcrumbs.html
5. Для миграции с Eform, WebLogin на FormLister:
docs.evo.im/03_extras/formlister.html

Планы на версию 1.5
— Из основного, что хочется сделать, это обновить полностью Extras — добавить возможность не только устанавливать дополнения, но и удалять через него. Также интегрировать Extras в install. По умолчанию будет рекомендованный набор дополнений, но если отключить ненужные, то не будут загружены лишние файлы, что, в свою очередь, даст возможность не засорять сайт не нужной информацией.
— Добавить возможность платных дополнений в Extras.
— Поработать над внешним видом административной панели: обновить Bootstrap до 4 версии и FontAwesone + сделать возможность использовать и создать базовый шаблон, в котором будут все элементы административной панели, чтобы можно было создавать свои темы и использовать для разработки собственных решений в стилистике административной панели.
— Также в планах пересобрать административную панель на шаблонизаторе twig, что даст еще больше гибкости. Например, можно будет изменять внешний вид странички не используя ManagerManager, который начинает подтормаживать, если очень много TV-параметров и видно, как он все отрабатывает.

Скачать тут:
github.com/evolution-cms/evolution/releases/tag/1.4.0

67 комментариев

avatar
Мы строили, строили и, наконец, построили. Ура!
avatar
пидарунок на НГ) спасибо 8)
avatar
Хотелки на версию 1.5 по extras — возможность определять статус загруженных самостоятельно пакетов — публичный/приватный. Если публичный, можно ставить пометку «не проверено» или т.п. (в том смысле, что не из официального списка)

Либо возможность установки по внешней ссылке или подхвата пакета с диска.
Комментарий отредактирован 2018-01-26 05:55:18 пользователем kassio
avatar
Хотелки по парсеру — сделать удобный интерфейс для подключения шаблонизатора, будь то твиг или стандартный.
avatar
Встроенной альтернативы всеми ненавидимым ямафикаторам не планируется?
Можно только без предложения подключить другой шаблонизатор и писать свои сниппеты для какой-нибудь чепухи типа приведения datetime к нужному виду?

Очень нужен стандартный простейший набор фильтров или модификаторов из коробки. Пусть он будет тормозить и тупить на 0,000001сек, мне не жалко, неужели я единственный человек в обсуждении этого, кому всё это нужно?
avatar
Можно юзать Твиг я думаю рано или поздно он будет в ядре у нас.
По части модификаторов пишется 1 снипет в нем свитч и пишете нужный вам набор модификаторов как надо :)

[[m? &in=`[*date*]` &tipe=`date` &config=`тип даты`]]

Вот такой снипет на все случаи жизни можно сделать под себя :)
так как это надо только ж на финальной страничке а на страничке с выводом через DocLister используем prepape )
avatar
Тут вопрос в том, чтобы был нормальный рабочий инструмент из коробки. Потому как сниппет «на все случаи жизни» — это вынужденный вариант в условиях, когда вариант из коробки не работает.

В том же твиге ведь никто не предлагает по быстрому зарегистрировать свою функцию, и вызывать ее. Потому что там нормально работают фильтры.
Комментарий отредактирован 2018-01-26 12:10:31 пользователем kassio
avatar
В том же твиге ведь никто не предлагает по быстрому зарегистрировать свою функцию, и вызывать ее.

Почему? Там это предусмотрено, добавление своих функций и фильтров.
avatar
Потому что фильтры для того и придумали, чтобы покрывать большинство мелких простых задач обработки выдачи. И никто не будет регистрировать свою функцию, скажем, для форматирования числа. Просто потому, что уже есть фильтр, который делает то же самое, и он работает нормально.
avatar
Согласен, что для всякой мелочевки иногда не хватает одного удобного инструмента, который можно было бы использовать просто и сразу для многих вещей :)
avatar
Этот инструмент называется твиг (:
avatar
Ну так-то можно на твиге и без эволюшен сайт запилить, контент править коммитами, дизайн править через фтп в шаблонах, контент обновлять коммитами через гит и юзать всякие сборщики на vps вместо шареда. Че-то не о том речь пошла, да?
avatar
Нет как раз все верно:) суть в том то мелочи для всех свои и зачастую ограничиваются функциями php тоесть надо инструмент который даст возможность это использовать в полной мере.

Варианты усложнять парсер уже проходили phx модификаторы яматеги все они с одной стороны решают вопрос а с другой добавляют своих минусов. Поэтому как раз логично если делать то уже твиг)

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

но и опять же это будет логично когда твиг будет использоваться для бекенда.

Да и банально кеширование в твиге очень хорошое что дает много возможностей на сложных сайтах к сожалению альтернатив в текущем парсере под это дело нет а писать будет дольше и сложнее чем использовать готовый инструмент :)
avatar
Фишка в том, что наверное, не только у меня так называемые «яма-теги», как тут их уже назвали, используются в работающих и уже сданных сайтах — которые прекрасно работают, и на которые еще не кончилась гарантия разработчика. И получается, что разработчикам теперь нужно еще раз перекроить старые сайты (так как просто обновить систем на более новую уже не достаточно), чтобы убрать оттуда вещи, которые на момент разработки были «мегакрутыми», но при следующем обновлении рискуют попросту отвалиться. :)
avatar
Ну так снипет иф работает на отлично и будет работать всегда. По части условий и циклов в шаблоне так это шаблонизатор твиг будет.

А по части обновлений как то же програмисты переписывают код с пхп 4 на пхп5 и на пхп7 и ничего никто не жалуется.

Это алекватный ритм развития что что то меняется. + никто не выключает старое так что у вас есть очень много времени на обновление;)
avatar
А отчего тогда были все эти страшилки, что мол пора сниппет if отовсюду выпиливать, он мол портит код и все такое, да и Яма замутил тему с «собачко-синтаксисом»? :)

так что у вас есть очень много времени на обновление
Так я не против их делать. Но, желательно, чтобы заниматься этим приходилось не в гарантийный срок недавно сданного сайта, а намного попозже :)
avatar
Никогда не писал ничего что if выпиливать надо :)
то про @IF было тоесть яматеги
avatar
Модификаторы и так работают из коробки, а вот <@IF и т.п. — кандидаты на удаление.
avatar
Кстати, нигде не описано, что и как сейчас работает из коробки. Если есть какой-то «Transition Path» где-то он должен быть описан с реальными примерами, а не нечто типа «в коде и так всё понятно»…
avatar
Ну, судя по тому, что все на месте и тут, оно по идее должно продолжать работать :)
Максимум, что может понадобиться — в конфиге сайта выставить enable_filter. При этом, насколько я понял из кода, если включен хотя бы один плагин, в котором встречается вызов класса phx, то эти фильтры включаются автоматически.

Хотя, я этим никогда не пользовался и могу ошибиться. В общем, стоит попробовать:)
avatar
Вот я и переписал сайты на них, когда phx перестал работать, а потом рраз, и они резко стали кандидатами на удаление. простейшие условия типа if, else, switch тоже должны быть просто в шаблонизаторе давным-давно и работать везде и для всего, для плейсхолдеров, тв, даже для результатов других сниппетов. Это в-принципе, адекватная необходимость
avatar
Да, у меня так же. Начитавшись, что мол пора убирать сниппет if, что он уже устарел — сделал несколько сайтов с обработкой условий исключительно через яма-теги и модификаторы :)

Я готов даже поучаствовать в финансировании какого-то встроенного механизма обработки условий (не важно, что это будет — сниппет, яма-теги, модификаторы и т.д.), но лишь бы при этом было заявлено нечто вроде «Вот, смотрите, вот эта фишка пришла на смену сниппету if и яма-тегам, она теперь идет из коробки, ничего дополнительного устанавливать не требует и будет присутствовать в коробке и поддерживаться как минимум ближайшие года три».
avatar
Аналогично, пожертвовать тоже готов, если объявят краудфандинг буду одним из первых донатеров, лишь бы работало и навсегда, а то метания эти уже поднадоели. Те, кто не пользуются — они уже сейчас не пользуются, они там другие шаблонизаторы юзают или свои сниппеты пишут чтобы строку преобразовать, а про дружественность и порог входа как-то начали забывать
avatar
Попробовал поискать информацию по ключевому слову twig и нашел только один топик в разделе «эксперименты и исследования», в котором, если вкратце описан вариант «кое-что попробал и вроде получилось» :) Мне кажется для выпуска сайтов в продакшн от своего имени — этого как-то маловато :)

Если за это время что-то изменилось, так запилил бы нормальную статью о том, как это правильно подключить, как и где это правильно использовать :)

Тогда, глядишь, и народ бы подтянулся, если там действительно все так радужно. В противном случае понятны опасения и нежелания «экспериментировать» на рабочих сайтах:) И в то же время необходимость всякой мелочевки никуда не отпадает…
avatar
Хорошо, напишу (:
avatar
круто!
avatar
Почему может быть такая ошибка в админке при обновлении с переносом на другой хостинг? A possible CSRF attempt was detected from referer
Комментарий отредактирован 2018-01-27 15:27:00 пользователем Jassie
avatar
решено исправлением assets/cache/siteHostnames.php
avatar
В целом. Огромное спасибо разработчикам за труды. Особенно за развитие компонента FormLister и компонентов на базе DocLister. Личные кабинеты для интернет-магазинов и прочую сопутствующую функциональность благодаря им теперь стало гораздо проще делать.
Комментарий отредактирован 2018-01-28 12:11:16 пользователем Dreamer
avatar
Да, DocLister многое дал. Ввёл некие общие понятные единые механизмы. Кстати, в комплекте с ДокЛистером ещё куча полезного есть, например я недавно использовал Helpers/FS для работы с файлами — милое дело!
Комментарий отредактирован 2018-01-30 19:30:10 пользователем Aharito
avatar
Обновился, спасибо за релиз! Глобальные вкладки — это супер удобно! Одна беда, перестал корректно работать TinyMCE 4.6.3, при выборе темы панель выводит а поле с контентом не доступно для просмотра, работает только с темой webuser. Подскажите, пожалуйста, как исправить.
Комментарий отредактирован 2018-02-03 14:06:09 пользователем jonickua
avatar
У меня всё работает. Ctrl+Shift+R (это для Chrome) пробовали? Старые темы админки удалили?
avatar
Спасибо! Ctrl+Shift+R (это для Chrome) — это помогло! Обычно использовал ctrl+F5 дабл клик…
avatar
О, вот это круто! Это очень добавляет дружественности для начинающих.

avatar
По поводу совместимости.
Через Extras Модуль ничего не установилось, поэтому поставил вручную — все последние версии. Но Evo их не признал

т.е. установлены как раз все эти рекомендованные версии, но выдает несовместимость. И фактически, все не проверял, но к примеру AjaxSearch работает. Как устранить этот конфликт (или вообще отключить это уведомление)?
  • paic
  • 0
avatar
Отключить плагин OutdatedExtrasCheck
avatar
Спасибо!
avatar
Подскажите по JotX, что-то глючит на этой версии или что-то ему не хватает…

1. На конфигурации tree-ajax при отправке комментария — никакой реакции. При повторном нажатии на кнопку «Отправить» выдается сообщение, что уже отправлено и не надо повторно отправлять. И действительно — сообщение было отправлено.

2. На конфигурации faq при нажатии кнопки отправить вообще белая страница и error, а для залогиненого админа, если попытаться ответить, то так


3. Если подключить плагин JotAdminNotify, то в админке на главной ошибка


Сайт на локалке, php 5.5, на сайте есть еще JoCo.
JotX отсюда
github.com/Temus/JotX

Спасибо.
  • paic
  • 0
avatar
перенес на хостинг, php 5.6, то же самое ((
avatar
Еще иногда стала выскакивать ошибка, что в директории controls отсутствует файл class.phpmailer.php. Добавление файла проблему не решило.
В общем, в директории manager поменял всю папку controls на аналогичную от версии 1.2.2 — и JotX стал работать исправно (кроме JotAdminNotify).
Но теперь не работает новый eForm.
avatar
Добрый день, подскажите такие вопросы:

1. В форме для авторизации по умолчанию стоит галочка запомнить меня, что не есть хорошо

в шаблоне формы login.tpl прописан такой код
<input type="checkbox" id="rememberme" name="rememberme" value="1" class="checkbox" [+remember_me+] /> [+remember_username+]</label>

который выводит атрибут checked=«checked». Понятно, что можно просто удалить этот плейсхолдер, но хотелось бы знать откуда подтягивается его значение. Думал что в админке в разделе конфигурации, но не нашел.

2. Заметил, что не всегда при сохранении изменений в админке автоматически очищается кэш и приходится дополнительно вручную нажимать Инструменты -> Очистить кэш. Это можно как-то поправить?

3. И пока не решил вопрос, как подружить JotX с новой директорией controls (написано выше).

Спасибо.
  • paic
  • 0
avatar
В версии 1.4.0 после сохранения отредактированного ресурса не очищается глобальный кэш (галочка в ресурсе Очистить кєш установлена). Глобально очищать только вручную (кнопкой на панели управления/плагином)?
  • olz
  • 0
avatar
Проверьте настройки пхп
Если есть опкеш то нужно или ждать или очещать глобально в админке, там как рпз недавно добавили очистку кеша опкеш

В остальном все работает как и работало
avatar
все как и раньше:
php 7.0.27 + OPcache + memcached
кеширование в evo настроено на "C учетом ID и $_GET"

до 1.4.0 было evo 1.2-d9.0.4, и при сохранении любого документа очищался глобальный кеш
avatar
Как временная мера — повесить очистку кэша на OnDocFormSave.
avatar
Так и сделал. Костыль.
avatar
Тут не про опкеш, а про оптимизацию от Ямы, когда при сохранении документа из кэша удаляется только этот документ и его родители.
avatar
В этом случае галочка «Очистить кеш», в ресурсе, лишь вводит в заблуждение. Раньше было понятно что ожидать от опции.
avatar
А что в новой версии modx evo в formlister не работает конструкция
&autosender=`[!$_POST['email'] !]`
?
то есть я хочу отправить письмо тому, кто оставляет заявку на сайте
avatar
Потому что не так надо делать;)
Гляньте в демо сайте

Надо использовать параметр replyto
avatar
Дмитрий подскажите для конструкция 'replyTo'=> '[+email.value+]', необходим некий 'prepareProcess'=>'mailsaverFormLister' (у вас в примере)? или он отвечает за нечто другое. Пробовал разные значения для параметра 'replyTo' ('email', '[+email.value+]', '@CODE: [+email.value+]' и др.), все время получаю ошибку Invalid address: (Reply-To): **, письма отправляются но функционал ответить соответственно не работае.
avatar
Можете подсказать детальние, пожалуйства…
avatar
И опять по TinyMCE4.

При новой установке 1.4.0 прописал дополнительно в Block Formats
Header 4=h4;Header 5=h5;Header 6=h6

и заголовки 1-6 все работали. Сейчас случайно заметил — остались только изначальные заголовки 1-3. Остальные по непонятной причине «слетели» ((( хотя в настройках плагина по-прежнему прописаны все:
Paragraph=p;Header 1=h1;Header 2=h2;Header 3=h3;Header 4=h4;Header 5=h5;Header 6=h6


устал я уже от этого TinyMCE4, из версии в версию одно и тоже (( может у кого есть таблетка?
  • paic
  • 0
avatar
Modx EVO 1.4.0
multiTV 2.0.13
Конфиг
<?php
$settings['display'] = 'vertical';
$settings['fields'] = array(
    'image' => array(
        'caption' => 'Image',
        'type' => 'image'
    ),
    'richtext' => array(
        'caption' => 'Text',
        'type' => 'richtext',
        'theme' => 'mini'
    ),
    'title' => array(
        'caption' => 'Title',
        'type' => 'text'
    ),
    'id' => array(
        'caption' => 'ID',
        'type' => 'text',
        'default' => 'img{i}'
    )
);
$settings['templates'] = array(
    'outerTpl' => '<div class="chefpovor">[+wrapper+]</div>',
    'rowTpl' => '<div><img src="[+image+]" alt="[+title+]" />[+richtext+]</div>'
);

Так работает нормально, в админке видно tinymce, если поставить $settings['display'] = 'single'; то пропадает tinymce.
avatar
$settings['display'] = 'single'
;
А это где? Если это 2-я строка, то там может быть или вертикаль, или горизонталь (это вид в админке).

Нужно в конфигурации вместо
'theme' => 'mini'

прописать
'theme' => 'single'

и все должно работать
avatar
Предполагаю что Вы ошиблись.
Когда ставишь в конфиге multiTV
$settings['display'] = 'single'

то TV содержит только один элемент — пропадает возможность добавлять/удалять элементы. А при стандартной установки в tinymce темы single нет.
Комментарий отредактирован 2018-02-19 05:15:49 пользователем Redduck
avatar
Да, Вы правы — недопонял и не то написал. Но поводу single вопрос и ранее задавался
modx.im/blog/kraudfanding/5192.html
и судя по всему, не решился. Поэксперементировал у себя — тоже не работает.
avatar
Для SINGLE решается вопрос правкой код в файле assets/tvs/multitv/js/multitv.js 408 строка должна быть
if (typeof tinyMCE !== 'undefined' && (_this.options.mode == 'vertical' || _this.options.mode == 'single') ) {
avatar
у тв параметров типа image не отображаются превью катинки
avatar
Даже если вставить?
'thumb' => array(
        'caption' => 'Thumbnail',
        'type' => 'thumb',
        'thumbof' => 'image'
    ),

Превьюшка может загорожена другими элементами.
avatar
Обновился через 1.3.6 до 1.4.0. Полёт нормальный.
Указал TinyMCE4 в качестве основного редактора.
Один вопрос: при использовании типа RichText в дополнительных TV содержимое страницы выводится в админке без редактора, а в дополнительных полях используется старый TinyMCE — joxi.ru/12MppZt4NE1vmJ

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

Хотел несколько оживить эту унылость и дописал несколько стилей в файл manager/media/style/default/css/styles.min.css
Так вот, по неведомым причинам все дописанное уже 2 раза на хостинге и 2 раза на локалке само удалялось из этого файла. Т.е. очередной раз заходя в админку, вижу что она вернулась к первоначальному состоянию, открываю файл — а там все что дописывал, исчезло!

Как понять этот казус и что сделать, чтобы не удалялось?
  • paic
  • 0
avatar
А вас не смутило название файла? Мин ксс?

Зайдите в папку темы там файлов со стилями больше5
И туда нужно вносить изменения и после удалить мин ксс или пересохранить настройки что б он пересоздался
avatar
Спасибо!

Какие-то смутные сомнения были, и даже сначала пытался дописать в custom.css, но вот что надо дальше, не сообразил (( Честно говоря, впервые столкнулся с min.css
avatar
просто что б было проще править и управлять темой навели порядок и там тебе свои стили в отдельном файле а так что б это работало шустро то генертся styles.min.css что б было минимизировано и 1м файлом)
avatar
Порядок я заметил, и вообще по сравнению с 1.2.Х — от версии 1.4.0 самые приятные впечатления. Спасибо Вам и всем кто принимал участие в разработке.

Осталось разобраться с TinyMCE4 по поводу слетевших
Header 4=h4;Header 5=h5;Header 6=h6
(может тоже где-то что-то генерится на дефолтные настройки?)- чуть выше отмечал, и свой первый проект на 1.4.0 могу закрывать.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.