Алексей Суслов

Алексей Суслов

Был в сети 01 мая 2026, 05:20
Заказы не принимаю
А я просто хочу сказать спасибо за такие посты и за ваш вклад в Modx.
Я вообще был бы только за то, чтобы каждое более-менее важное изменение или починка бага были так подробно расписаны — это позволяет лучше понять как и что работает в системе.
Javascript без разницы с чем работать, лишь бы код подходил к вашему коду формы.
Вот например переменные с того сайта, они разумеется должны соответствовать классам вашей формы:

var $frm=$element.find('.js-from-main__frm');
var $body=$element.find('.js-from-main__body');
var $errors=$element.find('.js-from-main__errors');
var isCompleted=true;
Так вроде там ничего особенного нет, это проста форма с одним полем, можно отправить тестовую заявку и увидеть, что все данные отправляются одной строкой в переменной body.
И лишь 2 простых функции javascript, которые проверяют ваше сообщение с помощью регулярных выражений: на ввод телефона или на ввод почты и еще проверка на отправку пустой формы.

function checkIfEmailInString(StrObj){var emailsArray=StrObj.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);if(emailsArray!==null&&emailsArray.length){return true;}
return false;}

function checkIfPhoneInString(string){return string.match(/([0-9]+)/)!==null;}

$frm.on('submit',function(e){e.preventDefault;if(!isCompleted){return false;}
isCompleted=false;$errors.hide().html('');if(!$body.val()){$errors.html('Укажите имя и контактные данные').show();isCompleted=true;return false;}

if(!checkIfEmailInString($body.val())&&!checkIfPhoneInString($body.val())){$errors.html('Укажите email или телефон').show();isCompleted=true;return false;}
return true;});}

Эта форма пропустит довольно много ошибочных или мусорных заявок, можно написать просто любое число, например 77, и она отправится, так как нет проверки на минимальную длину или на правильность ввода телефона. Все проверки сводятся к тому, чтобы хоть что-то было введено в форму и чтобы в этом что-то было что-то похожее на телефон или почту.
Так мы получим изображения товаров только с одним конкретным цветом, а нужно получить все изображения товаров, для которых есть уникальное значение цвета. То есть например у футболки есть 6 изображений (2 на каждый цвет), так вот в итоге нужно получить 3 изображения, по одному на каждый уникальный цвет.
С моим кодом я получаю все 6 изображений, с вамим кодом я буду получать 2 изображения какого-то одного цвета.
Я абсолютно согласен, что при желании и умении в modx и minishop2 можно сделать очень многое, но согласитесь явно не из коробки же.
При большом желании можно и свой фильтр сделать к minishop2, но зачем, когда есть готовое дополнение.
Расскажите, пожалуйста, как человеку, который не первый раз делает магазины на minishop2, где вы нашли пункты 1,2,5 из коробки?
1) Как минимум title и h1 придется через тв поля делать, либо извращаться со стандартными longtitle и pagetitle, что далеко не всегда подходит.
2) Мало того, что фильтра из коробки нет (но есть хорошее платное дополнение mSearch2), так даже в нём нет ЧПУ, но сейчас полегче с этим, появилось хорошее дополнение SeoFilter, которое позволяет это реализовать. Явно не из коробки это всё.
5) Встраивание видео из коробки? Неужто видео в msgallery добавлять будете?

Может я реально чего-то не знаю, буду рад увидеть ответ поразвернутее, мне не нужно «расскажите, как мне сделать такой магазин подробно», но сейчас ваш ответ звучит неправдоподобно.
Ну самый простой вариант, который приходит в голову — проверять get:
{if $.get.min?}
Если пусто, то $.get.min = 0
Для $.get.max так же, но поставить например 999999, чтобы наверняка выводить все товары.

Еще пару вопросов и я тоже соглашусь с человеком выше, что лучше использовать mSearch2 :)
Так как у вас уже не просто фильтр по производителю получается.