Новый релиз EVO 1.3.0 в первую очередь интересен тем что идет уже под именем EVOLUTION CMS. А так же интересен тем что теперь не будет отдельно моей кастомной сборки которая развивалась активней основной ветки. Это приведет к тому что теперь обновления будут выходить чаще, думаю раз в месяц будет свежий релиз а не так как было последнее время что у нас 1 релиз в пол года год.
Сразу скажу пару слов про планы на будущее:
- Начиная с текущей версии у нас будет правильная версионность: http://semver.org/lang/ru/ думаю это будет куда как удобней и правильней.
- В ближайшее время будет закончена работа с сайтом для документации: docs.evo.im, и сниму видео как помогать с документацией так что б собрать все в одном месте. Также документация будет сразу мультиязычной.
- Так же будут перемещены многие дополнения из ядра в репозиторий.
- По части админки: удаление motools, перевод всего html на бутстрап.
- Так же в планах интеграция composer и многое другое, в скором времени собираюсь накидать roadmap где будет расписано что и как.
Что же нового в 1.3.0:
- Новое имя EVOLUTION CMS и Новый логотип.
- Исправление ошибок и стабильность работы
- Новая тема админ панели с большим количеством нововведений:
- Drag&drop В дереве документов
- Dark style переключение внешнего вида адмики
- Еще легче еще быстрее
- Контекстное меню для елементов
- Удобный Ajax поиск по админке
- Запоминание путей в админ панели
- Меню элементов в 3 уровня с поиском и возможностью создать новый элемент
- Поддержка мобильных устройств, хотя еще есть над чем работать
- Виджеты для главной странички (OnManagerWelcomeHome)
- Изменение верхнего меню (OnManagerMenuPrerender)
- Изменения дерева документов (OnManagerNodePrerender)
Останавлюсь подробней на новинках:
Новое лого:
Больше спасибо компаниии SKY INCOM (https://www.skyname.net) за разработку логотипа:
Последние изменения по сравнению с версией 1.2.2
- delete all theme exept dafault
- fix style in default theme
- fix showChildren in tree
- fix #60 Shrinking browser width results in site tree overlay
- fix #62 Edited date on dashboard recently editied/created panel is wrapped
- new plugin Updater (For update evo from admin panel)
- Исправлено отображение навигации для менеджеров с разными правами
Новая тема
Переключается тема кнопочкой над деревом елементов возле корзины
Значительно ускорили скорость работы админки к примеру главная страничка весит меньш 740кб
и загружается за 0,2 сек. Раньше было: 1 мег и 0,8 секунды, Так же убрали 1 секунду ожидания после сохранения документа что так же добавило удобства в работе с админкой
Теперь удобней работать с элементами в шаблонах и чанках, так как можно быстро перейти к редактриованию или созданию нового элемента
Поиск в админке теперь AJAX + ищет не только по документам что облегчает разработку и навигацию, так же в верхнем меню отображаются сразу все элементы что ускоряет работу и с ними. Ну и в дополнение drag&drop в дереве документов и запоминание где мы находимся в админке теперь перезагрузка страницы не перекидывает на главную
Виджеты для главной страницы (OnManagerWelcomeHome):
Полностью переделали работу с виджетами, упростили их добавление а так же оставили задел на будущее что б можно было седлать удобный интерфейс для их изменения самим менеджером.
Пример виджета:
$e = &$modx->Event;
switch($e->name){
case 'OnManagerWelcomeHome':
//if($_SESSION['mgrRole']!=='2') return;
//unset($widgets['welcome']);
//unset($widgets['onlineinfo']);
//unset($widgets['recentinfo']);
//unset($widgets['news']);
//unset($widgets['security']);
$widgets['test'] = array(
'menuindex' =>'1',
'id' => 'test',
'cols' => 'col-sm-6',
'icon' => 'fa-rss',
'title' => 'test',
'body' => '<div class="card-body">[+modx_news_content+]</div>'
);
$e->output(serialize($widgets));
break;
}
Виджеты можно добавлять в разных плагинах, тоесть нет необходимости все виджеты настраивать в одном плагине. Так же в будущем думаю создадим модуль или плагин для удобной настройки самим пользователем. В прошлых версиях была проблема что админ не мог настроить виджеты для менеджера так как настройки хранились в локалстораже. Сейчас же с этим нет проблем.
Изменение верхнего меню (OnManagerMenuPrerender):
Верхнее меню можно менять довольно давно, собственно по логике с верхним меню и делали работу виджетов, ниже пример кода:
switch($e->name){
case 'OnManagerMenuPrerender':
//if($_SESSION['mgrRole']!=='2') return;
unset($menu['reports']);
unset($menu['tools']);
unset($menu['users']);
unset($menu['modules']);
unset($menu['elements']);
unset($menu['add_resource']);
unset($menu['add_weblink']);
$menu['remove_locks'] = array('remove_locks','main','Удалить блокировки','javascript:modx.removeLocks();','Удалить блокировки','this.blur();','remove_locks','',0,20,'');
$e->output(serialize($menu));
break;
}
Единственное замечу что если будет несколько плагинов то удаление элементов нужно делать в последнем плагине, добавлять можно в любом.
Изменение документов в дереве а так же контекстного меню (OnManagerNodePrerender):
Этого функционала не хватало очень давно. Теперь можно менять поведение и внешний вид документов в дереве, менять иконку, по клику переходить в модуль (К примеру можно легко реализовать функционал Collections из MODX REVO), так же можно менять контекстное меню что б было более понятным к примеру на разделе новости место стандартного контекстного меню вывести: добавить новость, все новости.
Пример кода плагина:
$e = &$modx->Event;
switch($e->name){
case 'OnManagerNodePrerender':
if($ph['id'] == '2'){
//Просто меняем иконку если id 2
$ph['icon'] = "<i class='fa fa-address-card-o'></i>";
$ph['icon_folder_open'] = "<i class='fa fa-address-card-o'></i>";
$ph['icon_folder_close'] = "<i class='fa fa-address-card-o'></i>";
$modx->logEvent(123, 1, '<pre>- '.print_r($ph, true).' -', 'Заголовок сообщения'. $ph['id']);
}
if($ph['id'] == '15'){
//скрываем дочерние документы + меняем иконку + пишем в лог переменные масива ph что б глянуть что же можно изменять
$ph['icon'] = "<i class='fa fa-list'></i>";
$ph['icon_folder_open'] = "<i class='fa fa-list-alt'></i>";
$ph['icon_folder_close'] = "<i class='fa fa-list-ul'></i>";
$ph['showChildren'] = '0';
$ph['tree_page_click'] = 'index.php?a=3&id='.$ph['id'].'&tab=1';
//Свое кастомное меню для примера взял стандартное что б было понятно что изменять
$ph['contextmenu'] = array(
'header1' => array(
'innerText' => $ph['nodetitle'],
),
'item3' => array(
'innerHTML' => '<i class="fa fa-file-o fa-fw fa-lg"></i> Добавить товар',
'title' => 'Дочерний ресурс',
'id' => 'item3',
'onclick' => "modx.tree.menuHandler(3);",
),
'item2' => array(
'innerHTML' => '<i class="fa fa-pencil-square-o fa-fw fa-lg"></i> Редактировать',
'title' => ' Редактировать',
'id' => 'item2',
'onclick' => "modx.tree.menuHandler(2);",
),
'item5' => array(
'innerHTML' => '<i class="fa fa-arrows fa-fw fa-lg"></i> Переместить',
'title' => 'Переместить',
'id' => 'item5',
'onclick' => "modx.tree.menuHandler(5);",
),
'item7' => array(
'innerHTML' => '<i class="fa fa-clone fa-fw fa-lg"></i> Сделать копию',
'title' => 'Сделать копию',
'id' => 'item7',
'onclick' => "modx.tree.menuHandler(7);",
),
'item11' => array(
'innerHTML' => '<i class="fa fa-sort-numeric-asc fa-fw fa-lg"></i> Сортировать по позиции в меню',
'title' => 'Сортировать по позиции в меню',
'id' => 'item11',
'onclick' => "modx.tree.menuHandler(11);",
),
'seperator' => '',
'item9' => array(
'innerHTML' => '<i class="fa fa-arrow-up fa-fw fa-lg"></i> Опубликовать',
'title' => 'Опубликовать',
'id' => 'item9',
'onclick' => "modx.tree.menuHandler(9);",
),
'item10' => array(
'innerHTML' => '<i class="fa fa-arrow-down fa-fw fa-lg"></i> Отменить публикацию',
'title' => 'Отменить публикацию',
'id' => 'item10',
'onclick' => "modx.tree.menuHandler(10);",
),
'item4' => array(
'innerHTML' => '<i class="fa fa-trash fa-fw fa-lg"></i> Удалить',
'title' => 'Удалить',
'id' => 'item4',
'onclick' => "modx.tree.menuHandler(4);",
),
'item8' => array(
'innerHTML' => '<i class="fa fa-arrow-circle-o-up fa-fw fa-lg"></i> Восстановить',
'title' => 'Восстановить',
'id' => 'item8',
'onclick' => "modx.tree.menuHandler(8);",
),
'seperator2' => '',
'item6' => array(
'innerHTML' => '<i class="fa fa-link fa-fw fa-lg"></i> Дочерняя веб-ссылка',
'title' => 'Дочерняя веб-ссылка',
'id' => 'item6',
'onclick' => "modx.tree.menuHandler(6);",
),
'seperator3' => '',
'item1' => array(
'innerHTML' => '<i class="fa fa-list fa-fw fa-lg"></i> Все товары',
'title' => 'Обзор ресурса',
'id' => 'item1',
'onclick' => "modx.tree.menuHandler(1);",
),
'item12' => array(
'innerHTML' => '<i class="fa fa-eye fa-fw fa-lg"></i> Просмотр',
'title' => 'Просмотр',
'id' => 'item12',
'onclick' => "modx.tree.menuHandler(12);",
),
'seperator4' => '',
'item100' => array(
'innerHTML' => '<i class="fa fa-info fa-fw"></i> Пример своего пункта',
'title' => 'Title',
'id' => 'item1',
'onclick' => "main.location.href='/'",
),
'image2' => array(
'innerHTML' => '<img src="/assets/images/modx-logo.png" width="200" />'
)
);
//Незабываем проверять если документ опубликован то ссылка опубликовать не имеет смысла так же как и сортировка пунктов если это не папка.
if ($ph['isfolder']=='0') unset($ph['contextmenu']['item11']);
if ($ph['deleted']=='0') unset($ph['contextmenu']['item8']);
if ($ph['deleted']=='1') unset($ph['contextmenu']['item4']);
if ($ph['published']=='0') unset($ph['contextmenu']['item10']);
if ($ph['published']=='1') unset($ph['contextmenu']['item9']);
}
$e->output(serialize($ph));
break;
}
P.S.
- Хочу напомнить что основной репозиторий переехал сюда: https://github.com/evolution-cms/evolution/
- Все замечания по поводу некоректной работы, ошибок или предложения по улучшению пишем тут: https://github.com/evolution-cms/evolution/issues
- Скачать новую версию можно тут: https://github.com/evolution-cms/evolution/releases
- Новый оффициальный сайт по адресу https://evo.im но он пока еще в разработке.
- Новая документация будет тут: https://docs.evo.im так же еще в разработке.
- Так же у нас есть чат в телеграмм: https://t.me/evolutioncms и там же канал новостей: https://t.me/evolutioncmsnews
Елена 22.07.2017 18:48 #
Наталья 29.07.2017 09:26 #
Анастасия(F1fanatica) 29.07.2017 09:43 #
Затем очистите кэш, через некоторое время на главной админки, появится предложение обновиться до последней версии…
При установке 1.3 поставьте галку на плагине Updater (в последней версии плагин MODX.Evolution.updateNotify изменил название на Updater), а MODX.Evolution.updateNotify отключить или удалить
Наталья 29.07.2017 09:44 #
Елена Бредова 29.07.2017 22:57 #
Алексей Воа 30.07.2017 23:53 #
Dmi3yy 01.08.2017 10:38 #
Чуть позже запишу видео по части обновления сайта ибо есть несколько путей нынче + пару слов надо сказать показать по части безопастности ибо часто упускают из виду