Всего 123 786 комментариев

Денис Усманов
29 августа 2024, 22:31
+6
Сергей, привет! Ошеломительная новость! Спасибо!

По донату, есть информация на странице «О нас»: modx.pro/about
hidestm
29 августа 2024, 20:33
0
Друг! Я решил эту задачку =)

Так и не понял что он передает из этого поля, ничего не работало. Перекрыл сверху: Чанк: tplMeta (84), если любое значение пустое, эту мету не выводим:

[[+value:escape:ne=``:then=`/>`]]
Артур Шевченко
29 августа 2024, 16:19
0
Так есть отдельный тип содержимого PDF и тип ресурса Статичный.
Вячеслав Варов
29 августа 2024, 13:43
0
А нашел, для этого можно использовать тип ресурса Ссылка
Артур Шевченко
28 августа 2024, 22:33
0
Возможно всё, вопрос только зачем?
Николай Савин
28 августа 2024, 19:22
+2
Спасибо за обратную связь. На данный момент идет работа с полями админки, я перестраиваю полностью принцип их работы (описывал в свежей заметке). Так что да — вполне возможно. что этот кусок сейчас недоступен
Альберт
28 августа 2024, 19:20
0
Спасибо за ваш энтузиазм!

Тестировал modx 3 + minishop 3 и столкнулся с тем, что не редактируются поля в свойствах товара – содержимое ms3_product_extra_fields не повлияло на содержимое вкладки. Возможно, случай единичный — но установка была чистая, ранее за минишопом такой проблемы не замечал. В кеше конфига тоже посмотрел — там значение было корректное, то есть изменённое.
Денис Мавлютов
28 августа 2024, 17:52
0
Добрый вечер. Да, он выводится. Выше есть скриншот кода, где по заголовку H5, виден момент который меня беспокоит,

Просто иногда случается так, что при одних и тех же условиях я получаю рекурсию на последнем элементе.

Item 1
Item 2
Item 3
— item 1
— item 2
— item 3
— — item 1
Игорь
28 августа 2024, 17:47
0
а вы смогли вывести migx на фронтенд?
Вячеслав Варов
28 августа 2024, 17:00
0
и далее создал копию файла
assets/components/msearch2/action.php

Назвал ее
assets/filters/action.php

Заменил
'results' => !empty($results) ? $results : $modx->lexicon('mse2_err_no_results'),
На
'results' => !empty($results) ? $results : $pdoFetch->getChunk($scriptProperties['tplEmpty'], []),
Далее в файле js который указывается в системных настройках, у меня он assets/js/filters.min.js

Поменял assets/components/msearch2/action.php на assets/filters/action.php

PS может как-то могу поспособствовать добавив это изменение в будущие версии mFilter2?

тут правда не реализована проверка запыленности этого банка, но вроде как это не сложный функционал, на msearch2 он есть
Вячеслав Варов
28 августа 2024, 16:44
0
Еще не совсем понимаю как ловится событие post в mfilter2 я думал плагином, а в итоге нет, как оно работает?

Понял, в файле assets/components/msearch2/action.php вся логика
Вячеслав Варов
28 августа 2024, 16:37
0
в итоге вот к чему пришел

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

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

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

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

Штанов по вашим критериям не найдено и тд, я вот пока склоняюсь к добавлению поля tplEmpty и настроить обработку чтобы отдавал чанк если пусто а не запись словаря
Наумов Алексей
28 августа 2024, 15:04
+1
Запихнуть в mse2_err_no_results html код (а может и вызов чанка)...?..
Вячеслав Варов
28 августа 2024, 14:27
0
Судя по сниппету 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);
}
Скаут
28 августа 2024, 11:17
0
авторизации нет, но обязательный ввод почты и телефона есть в корзине, так что клиента определить возможно.
Артур Шевченко
28 августа 2024, 10:30
0
Авторизация на сайте есть? Если нет, то как искать клиента и его заказы?
Pandemic
28 августа 2024, 09:02
1
0
Вывел 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();

}
Скаут
27 августа 2024, 21:06
0
речь именно про первый заказ.

Получается нужен сниппет: определяем клиента, ищем его заказы, если ничего не нашли — присуждаем скидку.
Присуждение скидки — просто в массиве корзины изменяем значение итога, добавив ключ «старый итог» для визуальной составляющей. Получается так?
Артур Шевченко
27 августа 2024, 18:20
0
Первая покупка понятие неоднозначное. Это может быть как первый товар в корзине, так и первый заказ. На первый заказ, пожалуй, ни один компонент не умеет делать скидки.