Chrome не отлавливает POST-запрос

Здравствуйте. Столкнулась с такой проблемой:
Отправляю Ajax запрос по событию NotFoundPage.
Mozilla запрос отлавливает и обрабатывает. Chrome его же просто не видит.

Код запроса и обработки:

$.ajax({
                                type:'POST',
                                url:'save',
                                dataType:'json',
                                data: {jsonData: localStorage.getItem("simpleCart_items")}
                            });

— — — — — — — —
$userId = $modx->getLoginUserID();
if($userId != null || isset($userId) || $userId != '') { 

	switch($_GET['q']){  
			case 'nothasname':
		$userId = $modx->getLoginUserId();
		$data = str_replace("+", " ", $_POST['jsonData']);
		$data = str_replace("sanitize_seed_99skgpomjbc4w8884okccog4g}sanitize_seed_99skgpomjbc4w8884okccog4g}sanitize_seed_99skgpomjbc4w8884okccog4g", '}}', $data);
		echo $data;
		echo $userId;
		$s = $modx->db->query('SELECT user_id FROM modx_itemcart WHERE user_id = '.$userId.' ');
		
		while( $row = $modx->db->getRow($s) ) {  
		$output[] = $row['user_id'];        
	}
			if (in_array($userId, $output)) {
				$q = $modx->db->query('UPDATE modx_itemcart SET storage = '."'".$data."'".' WHERE user_id = '.$userId.' ');
			} else {
			$q = $modx->db->query( 'INSERT INTO modx_itemcart(user_id,storage) VALUES('.$userId.','."'".$data."'".')
		ON DUPLICATE KEY UPDATE user_id ='.$userId.';' );
			} 
		break;
	
	}
}
die();

РЕШЕНО! mm_rules

Помогите плиз перестал работать mm_rules

На сайте был вирус, все почистил!

Сначала обновил систему до 9.05 (сборка от Дмитрия) сделал php 7.0 и mysqli и перестал работать mm_rules и codemiror (точнее он глючит не всегда подсвечивает код)
а mm_rules вообще перестал на что либо откликаться хотя в плагине ManagerManager все указано правильно.

Раньше такого никогда не было, даже потом на всякий случай обновил до 9.1

в протоколе событий ничего не выходит

посмотрел в консили хрома выдает такие ошибки

/assets/plugins/codemirror/cm/mode/javascript-compressed.js:9 Uncaught TypeError: a.registerHelper is not a function
/assets/plugins/codemirror/cm/mode/css-compressed.js:9 Uncaught TypeError: a.registerHelper is not a function
/assets/plugins/codemirror/cm/mode/clike-compressed.js:9 Uncaught TypeError: a.registerHelper is not a function
/assets/plugins/codemirror/cm/mode/javascript-compressed.js:9 Uncaught TypeError: a.registerHelper is not a function
/assets/plugins/codemirror/cm/mode/css-compressed.js:9 U

DocLister. Как передать данные на страницу child

Сломал голову, по идее это должно легко делаться без лишних сниппетов в DocLister, но в голову ничего не приходит.

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


[[DocLister? &parents=`[*id*]` &display=`0` &tpl=`productTpl` &id=`one` &tvList=`instock` &filters=`AND(tv:instock:eq:0)`]]

[[DocLister? &parents=`[*id*]` &display=`0` &tpl=`productTpl` &id=`two` &tvList=`instock` &filters=`AND(tv:instock:eq:1)`]]


При переходе из родителя по одному из доклистеров нужно, что бы выводился разный список документов (например фильтрация из одного доклистера по одним параметрам, а из второго по другим) на странице потомка.

Нужно для вывода блока, например, «Другие товары в наличии». Сейчас, естественно, на странице родителя все фильтруется, но при переходе на страницу потомка выводятся все документы и в наличии и нет. Как передать параметр, что совершен переход с родителя из доклистер №1 или из №2?

Плагин, изменяющий content

Всем привет!

Задача сделать плагин, который будет при сохранении менять поле content у документа, например находить там опред. слова и заменять.

С самой заменой подстроки средствами php вопросов-то нет, а вот что касается плагинов MODx…

Что-то я в тупике, не получается ни «обычным» способом (через запросы), ни через modResource.

Не пойму, какое событие лучше использовать, и как вообще записать результат в поле контент. Не пишется в контент, и всё тут. Может, какая-то тонкость есть?

Буду благодарен за любые подсказки.

UPD: Забыл версию написать, я пробовал на 9.1.1 — 9.1.3, до этого на 7.1.6 получалась подобная задача, но не с контентом, а с ТВ через modResource от Agel_Nash.

Подправить JS код и поля в форме в калькуляторе на сайте.

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

Спам по формам без капчи (eForm)

«Современные маркетинговые инструменты» требуют, чтобы пользователь делал меньше телодвижений для того, чтобы расстаться со своими контактными данными. Именно поэтому на страницах появилась куча форм через каждые пол-экрана и все без капчи. Пользователи стремительно тупеют и им лень даже набрать номер телефона, а о том, чтобы самостоятельно написать письмо и вовсе речи не идет. Периодически по сайтам пробегаются пауки на предмет тестирования отправок форм, потом, видимо, пишется какой-то обработчик, который скачивает страницу и делает POST-запрос. В логах сервера это видится примерно вот так



Затем бот сбегает с сайта, а в почту приходит какое-то очередное «оно».

Варианты решения проблемы без внедрения капчи

Рассматриваю только отмену отправки, а не пост-обработку. Сразу оговорюсь, что я не программист, и такие решения, может быть и весьма неидеальные, но зато лезть глубоко в кишки не нужно.

0. Для всех случаев такого рода лично я отключил вывод [+validationmessage+] и занулил requiredClass и invalidClass для усложнения изучения ответа при неправильной отправке. Пре-валидацию в простой форме можно сделать и на JS и аттрибута required достаточно. ИМХО.

1. По совету Dmi3yy создание пустого поля, обязательного к незаполнению. Например, такого:
<input value="" name="phone" id="phone" class="special" type="text" eform="Спец:date:0" placeholder="Phone*">
Необходимо спрятать это поле с глаз долой через CSS и дать ему часто используемое имя. В моем случае, после того, как стал сыпаться спам у одного из клиентов — не прокатило. Только позже я понял, почему. Скорее всего, простой бот считает количество элементов в DOM, и пишет в поля по счету, не ориентируясь на ID и name. Поле надо вставить так, чтобы сломать текущий порядок элементов внутри формы. Неплохо было бы делать это в случайном порядке, но eForm не любит, чтобы кто-то копался в шаблоне формы без его ведома, а на JS этого не сделать, потому что бот не скачивает JS.

2. Хардкор. Так я сделал на некоторых статичных сайтах, где форма отправляется не очень сложным скриптом на PHP. Сделать поле имя только на русском языке.
через eForm это делается так
<input type="text" class="inptext" name="name" id="name" eform="Ваше имя::1::#REGEX /^[А-Яа-яЁё ]+$/u" placeholder="Ваше имя*">
По понятным причинам — «трудно недооценивать всю предсказуемость тупизны» не самое идеальное решение. Но внезапно оказалось, что действенное.

3. Сделать форму подгружаемой в блок на странице скриптом и отправку через ajax. Вариантов реализации можно придумать несколько, у кого на что фантазии хватит. Или в форме заменить action на несуществующий, а POST на GET и по факту показывать вместо формы только ее верстку, которую «чинить» яваскриптом при отправке, а сам правильный вызов eForm сделать на странице, куда форма отправляется. Не спасет, если эту страницу с «чистым» вызовом eForm найдет бот. Но и тут тоже возможны варианты. Например, не отображать форму, если страницу не передано какого-нибудь интересного GET-параметра, содержащего неведомую строку. Забить значение этого параметр можно куда-нибудь в настройки через cfgTV или globalPlaceholders и периодически его менять.

4. Похоже на пункт 1, но к полю пишется атрибут required и мусор в value. Так как поле по условию проверки обязано быть пустым — форма не отправится. При отправке по событию submit через JS снимается атрибут required и чистится значение. Без скриптов отправка невозможна. Аналогично можно сделать проверку на соответствие строго заданному значению и проставлять это значение при загрузке страницы, но мне кажется, это менее интересно.

Watermark для изображения в simplegallery

Всех приветствую!

Не нашел информации как сделать так, чтобы на изображения накладывался watermark. Программистом не являюсь к сожалению,PHP на знаю.

Буду благодарен, если подскажите решение.

[[sgLister?
&thumbSnippet=`phpthumb`
&offset=`1`
&thumbOptions=`w=300&h=220&zc=1`
&tpl=`@CODE:

evolutioncms.org или я чего-то не знаю?

Наткнулся случайно на такой сайтик evolutioncms.org, где написано что-то про Evolution-CMS, там даже логотипчик свой, как я понял сайт существует с 2006 года, это видимо еще тогда была мысль форкнуться от основной ветки?
Кто что знает на этот счет?

Вывод даты создания, если дата публикации отсутствует

При переносе данных из Wordpress в EVO, столкнулся с такой проблемой – дата публикации для документа не указана. А в уже настроенных шаблонах что-то менять было лень. Кроме того, просто указывать в качестве даты документа — дату создания не всегда уместно – бывает отложенная публикация.
Так как вывод документов идёт через Doclister, добавляем prepare:
&prepare=`myDate`

Создаем сниппет myDate:
if ($data['pub_date'])
   $data['myDate'] = $data['pub_date'];
else
	$data['myDate'] = $data['createdon'];
return $data;

Соответственно, внутри шаблона Doclister указываем:
[+myDate:date=`%d.%m.%Y`+]


Возможно, существует более быстрое решение, но это первое, что пришло на ум.