MODX.Evo.Custom 1.2.1-d9.1.5 (22.05.2017)

Свежий релиз сборки с вкусной плюшкой :) работает только на новой теме с DropdownMenu

Теперь можно менять элементы в дереве (через плагин на событие OnManagerNodePrerender), к примеру иконки скрывать дочерние документы, менять логику действия по клику, изменять контекстное меню и другое


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


Полный список изменений:

- refactor onManagerNodePrerender (now can full castomize tree, only for MODxRE_dropdownMenu)
- update IF 
- update DocLister to 2.3.1
- update DLBuildMenu to 1.2
- alias_visible fix - select children of hidden parents when building cache
- Fix install check db version
- update tinyMCE to 4.6.1


Пример плагина который меняет контекстное меню:


$e = &$modx->Event;
switch($e->name){
	case 'OnManagerNodePrerender':
		if($ph['id'] == '9'){
			//Просто меняем иконку если id 9
			$ph['icon'] = "<i class='fa fa-address-card-o'></i>";
		}

		if($ph['id'] == '10'){
			//скрываем дочерние документы + меняем иконку + пишем в лог переменные масива 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';

			$modx->logEvent(123, 1, '<pre>- '.print_r($ph, true).' -</pre>', 'Заголовок сообщения'. $ph['id']);
		}

		if($ph['id'] == '10') {
			//Свое кастомное меню для примера взял стандартное что б было понятно что изменять
			$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' => "alert('Простой алерт можно заменить на что угодно работает любой js')",
				),

				'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;
}


В целом логика работы 1 в 1 с работой плагина на изменение верхнего меню:

$e = &$modx->Event;
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','site','Удалить блокировки','javascript:removeLocks();','Удалить блокировки','this.blur();','remove_locks','',0,20,'');

                $e->output(serialize($menu));
        break;
}


Таким образом мы можем полностью изменять админку под свои нужны.
Ну и еще минус 2 преимущества REVO(изменение меню и collections), по части collections в планах сделать модуль который даст возможность удобно работать с документами ибо это очень важная часть для Интернет магазинов и нужен мне в evoShop.

Скачивать как всегда с гит или тут: modx.com.ua

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

avatar
Вот только что обновился до 1.2.1-d9.1.4 (с сайта скачал!). Захожу сюда через 10 минут и вижу что вышла новая версия 1.2.1-d9.1.5!
Спасибо =)) Пошел опять обновляться =)))
Комментарий отредактирован 2017-05-22 10:47:26 пользователем antonfix
avatar
Погодь нашел 1 бок :( но там только 1 файлик заменить надо будет так что не критично и то при условии если используешь новую тему с dropdownmenu )
avatar
все готово можно обновлять :)
avatar
Галочка — просмотр дочерних ресурсов должна после апдейта появляться, или это следствие работы отдельного плагина?
avatar
только в новом шаблоне работает корректно.
галочка в списке автоматом появляется
если для конкретного документа надо то через плагин
avatar
Вот новый FormLister с документацией (сильно не тестировал): github.com/Pathologic/FormLister/tree/develop
avatar
В след релиз тогда уже добавлю
avatar
Макс, а новый чем? Баги, возможности? Где почитать?
Спасибо.
avatar
avatar
Весьма! Правда я не все еще понимаю :)
avatar
Очень нужные вещи, спасибо!
avatar
Добрый день, вопрос не по теме, но тем не менее, в extras нашел новый снипет и очень интересный, но нет ни где о нем ни упоминания не описания tinify extras.evolution-cms.com/packages/gallery/tinify.html.
Можно где то выложить описание к нему в идеале тут docs.evolution-cms.com/.
Спасибо.
avatar
Еще не успел написать статейку:
В целом документашка тут в readme
github.com/extras-evolution/tinify/

там параметров довольно мало.
В целом можно не использовать изменение размеров можно толко сжимать тогда options не нужен
avatar
Дмитрий, спасибо! Ждем статейку)
avatar
Странно, но у меня [[tinify? ]] ложит сервер без всяких ошибок. Просто 500-я ошибка и все… API key вставил свой. Куда смотреть?
avatar
а в логе modx что? и что в логе сервера?
avatar
Установил.

В чанке mm_rules есть такие две строчки:
mm_createTab('Для SEO', 'seo', '', '', '', '');
mm_moveFieldsToTab('titl,keyw,desc,seoOverride,noIndex,sitemap_changefreq,sitemap_priority,sitemap_exclude', 'seo', '', '');
На страницах редактирования документа в админке должна появится вкладка «Для SEO» с перечисленными TV-параметрами.
Вкладка появляется, а вот TV-параметры на ней не появляются

На более старой сборке — 1.1-d8.0 все появляется как надо.

В чем может быть проблема?
Комментарий отредактирован 2017-05-25 05:30:04 пользователем planer
avatar
Здравствуйте, возможно немного не в тему, но похоже опять началась волна взломов MODx Evo.

Взломали и заразили множество сайтов, на разных хостингах и у разных клиентов.
Версии MODx были в основном 1.2-d8.1.8

Судя по всему, хакер как-то авторизировался в админке, заливал через файл менеджер несколько php файлов с вирусами, на половине сайтов потом он делал сброс в настройках для всех объектов стандартный шаблон (первый попавшийся).

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

На некоторых сайтах менял htaccess и прописывал всё обработку вместо index.php на свой файл вируса.

Если будет надо, могу приложить архив с некоторыми файлами вируса (не все файлы остались, только несколько).
avatar
Так все логично в декабре 2016 была первая волна взломов после чего в начале января появилась версия 1.2.1 в которой были закрыты эти дыры.
У вас же стоит версия 1.2-d8.1.8
Текущая 1.2.1-d9.1.15

Как вы думаете чья вина что взломали сайт? Если вы его не обновляли пол года. Да супер что первая волна взломов вас не коснулась, но юто был не повод не обновиться. Банально в админке есть новости где была заметка про важность обновления на 1.2.1
avatar
Спасибо за ответ.

А по поводу вины, большинство клиентов после того, как им сделали сайт, просто исчезают и им больше ничего не надо, они всё сами :)
avatar
Дмитрий, дурацкий вопрос

У меня ровно такая же проблема, но только система версия 1.0.14-d6.16

Как правильно обновиться? Делаю дамп базы, сохраняю папки картинок, стилей, скриптов и т.д., заливаю на хостинг новую систему — все файлы — и заливаю старую базу и старые картинки и прочее?
avatar
g.zeos.in/?q=%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20modx%20evo Первая ссылка — пошаговое руководство с картинками.
avatar
в базе вредоносный плагин, его тоже надо удалить
avatar
в остальном как описал?
avatar
ну соответственно проверить чтобы лишних файлов php между картинками не затесалось, а так в целом все верно
avatar
Спасибо
avatar
Как теперь сортировать пункты меню в дереве?
Задача — пересортировать ресурсы в дереве.
Раньше в модуле Doc Manager был удобный инструмент — Сортировать пункты меню
Теперь его нет.
В верхнем меню (над деревом ресурсов) есть пункт «Сортировать по позиции в меню», но он только крень сортирует, а подресурсы как???
avatar
Правой кнопкой на папку родителя, там в контекстном меню такой же пункт должен быть.
avatar
Спасибо большое — получилось!!! Сам недопетрил…
avatar
У меня одного в KCFinder изображения перестали отображаться?
avatar
Невероятно круто, мне нравится.
А каким образом скрыть дерево документов полностью (для нужной роли), и вывести своё меню?
avatar
Может быть баг, не знаю…
Суть такая, есть mm_rules, в ней прописано следующее:
mm_createTab('SEO', 'seoTab', '', '3', '');
mm_moveFieldsToTab('Keywords', 'seoTab', '');

Нажимаю на ресурс, выбираю редактировать, но вкладка СЕО не отображается как и сам ТВ на странице… сравнил с другим сайтом на 1,0,15, все тоже самое. Ну думаю попробую еще раз нажать редактировать — вкладка и ТВ появилась.
В общем бывает что не при каждом редактировании вкладка или тв параметры отображаются у ресурса.
avatar
Вопросик по MODX Evolution 1.2.2-beta3 (May 22, 2017) — насколько стабильная?
avatar
При использовании двойных кавычек в mm_ddmultiplefields всё что после обрезается. Обновил modx до крайней версии, но результата нет. Где искать фикс? :)
Комментарий отредактирован 2017-06-06 13:45:41 пользователем milkamil93
avatar
Погуглив удалось написать такой плагин
$e = & $modx->event;
if($e->name == 'OnBeforeDocFormSave') {
    global $tmplvars;
    $e->output($tmplvars);
	function replace_multiarray(&$item, $key){
		 $item = str_replace("\"","'",$item);
	}
	array_walk_recursive($tmplvars, 'replace_multiarray');
	print_r($tmplvars); 
    die();
}

но я не знаю как сохранить эти значения, чтобы при следующем просмотре кавычки были заменены
avatar
А кто-нибудь проверял, работают ли новые версии (1.2, 1.2.1) c YAMS?
А то подкинули сайтик с версией 1.0.15 и YAMS, думаю теперь, обновить ли с сохранением YAMS, или переписать конвертер базы сайта под evoBabel…
avatar
Так, я проверил. Работает, если установить YAMS из репозитория Deesen и выполнить инструкции, которые у него там выложены.
Но возникла проблема — перестала работать пагинация в AjaxSearch. Конкретно — в файле ajaxSearchOutput.class.inc.php примерно в строках 404 и 424 есть вот такие вызовы:

$varPaging1['pagingPrev'] = $modx->makeUrl($modx->documentIdentifier, '', $paramsUrl);
//..........
$varPaging1['pagingNext'] = $modx->makeUrl($modx->documentIdentifier, '', $paramsUrl);

Так вот у них $paramsUrl передается видимо с какими-то символами, которые не нравятся методу $modx->makeUrl(). Из-за чего ссылки «prev» и «next» всегда ведут на страницу поиска без параметров.
Я заменил эти строки на следующие, и у меня теперь работает нормально:

$varPaging1['pagingPrev'] = $modx->makeUrl($modx->documentIdentifier).$modx->db->escape($paramsUrl);
//.......
$varPaging1['pagingNext'] = $modx->makeUrl($modx->documentIdentifier).$modx->db->escape($paramsUrl);



В pull отправлять не стал, так как не уверен, правильно ли сделал, и вызвана ли проблема наличием YAMS или еще какими-то другими факторами. Проверьте у себя, пожалуйста, у кого есть и YAMS и AjaxSearch, нормально ли у вас работает пагинация в выводе результата.
avatar
Перестал работать удобный плагин TreeTabs. А есть, быть может, ему альтернатива какая-то?
Комментарий отредактирован 2017-06-09 09:33:29 пользователем Leon
avatar
Вчера обновился с 1.2.1 на 1.2.1-d9.1.5.

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

Для примера на скрине — эту страницу (25) удалось открыть с третьей попытки, вместо нее почему-то открывалась страница (21).

какой-то логики или закономерности не обнаружил…
а иногда бывает и так


И это в каталоге всего 8 товаров. Трудно представить, когда их там будет сотни и тысячи.
Наблюдается этот глюк только в каталоге, в других директориях с маленькой вложенностью вроде все нормально.

P.S. Ранее установленные на сайте плагины paramEditFull и phx удалены, в консоли ошибок нет
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.