Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 124 комментария

Вячеслав Варов
Вячеслав Варов
в итоге вот к чему пришел

Заменил все вхождения
$modx->lexicon('mse2_err_no_results')
на

$mSearch2->pdoTools->getChunk($scriptProperties['tplEmpty'], $output, $fastMode);
Добился того что при загрузке страницы mfilter2 отдает чанк из параметра tplEmpty

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

Шуб по вашим критериям не найдено

Штанов по вашим критериям не найдено и тд, я вот пока склоняюсь к добавлению поля tplEmpty и настроить обработку чтобы отдавал чанк если пусто а не запись словаря
Вячеслав Варов
Вячеслав Варов
Судя по сниппету mFilter2 он действительно не поддерживает стилизацию сообщения об отсутствии результатов под капотом

if (!empty($toSeparatePlaceholders)) {
	$modx->setPlaceholders($output['filters'], $toSeparatePlaceholders);
	$output['log'] = $log;
	if (is_array($output['filters'])) {
		$output['filters'] = implode($outputSeparator, $output['filters']);
	}

	$pcre = '#^' . preg_quote($toSeparatePlaceholders) . '(\d+)$#';
	$tmp = array();
	foreach ($modx->placeholders as $k => $v) {
		if (preg_match($pcre, $k)) {
			$tmp[] = $v;
		}
	}

	$output['results'] = !empty($tmp)
		? implode($outputSeparator, $tmp)
		: $modx->lexicon('mse2_err_no_results');

	$modx->setPlaceholders($output, $toSeparatePlaceholders);
}
Pandemic
Pandemic
Вывел minishop2 и нашёл там такое, есть объект
sendData
в нём хранится та форма которая будет изменятся при клике, он формируется вовремя клика, и затем если вызвать
miniShop2.Cart.change();
То изменения отправятся. Суть такая собрать все данные с формы под вид объекта
sendData
пример можно посмотреть когда вы вручную нажмёте на кнопку, оно заполнится, потом можно по аналогии.

if(miniShop2){
	miniShop2.sendData = {
		$form: $(el),
		action: "cart/change",
		formData: [
			{
				name: "key",
				value: getElement('input[name="key"]', el).value
			},
			{
				name: "options",
				value: getElement('input[name="options"]', el).value
			},
			{
				name: "count",
				value: getElement('input[name="count"]', el).value
			},
			{
				name: "ms2_action",
				value: "cart/change"
			},
			{
				name: "ctx",
				value: "web"
			},
			{
				name: "ctx",
				value: "web"
			},
		]
	}
	miniShop2.Cart.change();

}
Скаут
Скаут
речь именно про первый заказ.

Получается нужен сниппет: определяем клиента, ищем его заказы, если ничего не нашли — присуждаем скидку.
Присуждение скидки — просто в массиве корзины изменяем значение итога, добавив ключ «старый итог» для визуальной составляющей. Получается так?
Денис Мавлютов
Денис Мавлютов
MIGX необходим чтобы менеджеры могли добавлять статьи сами. Если я буду каждому такому клиенту добавлять статьи в ручную — это очень сильно снизит мою продуктивность и я считаю что такое решение не самое лучшее.

Раньше такой способ работал безотказно, но с MODX 3+ появились подобные баги.

Поля в MIGX: Картинка, короткий текст и ссылка. Структура не сложная, как это может вызывать подобные баги не понятно.

При том этот баг не всегда, а только, если пару раз сбросить сайт с очисткой кэша.
Но люди заходят на сайт в первый раз и видят ломанную сетку.
Madao
Madao
Ну конечно был установлен, я ведь поэтому и писал в теме этого пакета. Я спрашивал, как отучить компонент удалять точку в имени файлов при загрузке (править какой-то конфиг?) или, если нет, то как заставить его не вмешиваться в имена файлов при зашрузке.
Николай Савин
Николай Савин
Для опций нужно указывать префикс option-
Например option-ves-netto

Я бы вам порекомендовал присоединяться к нашему телеграм-чату (ссылку в шапке найдете) и не тратить несколько дней на ожидание ответа.