Всего 125 521 комментарий

Михаил
7 минут назад
0
Оказалось не так просто…
[[!mFilter2@mikmFilter?
                    	&paginator=`pdoPage@pdoPage_m`
                    	&limit=`30`
                    	&parents=`3`
                    	&showEmptyFilters=`false`
                    	[[$pdoPage-prefix?]]
                    	&hideContainers=`1`
                    	&element=`msProducts`
                    	&where=`{ [[!+modx.user.id:is=`235`:then=`"Data.remains:>":0.001`:else=`"Data.remains:>":0.001,"Data.image:IS NOT":null`]]}`
                    	&class=`msProduct`
                    	&sort=`ms|remains:desc`
                    	&filters=`
                    		ms|mat
                    		,ms|cattools
                    		,ms|color
                    		,ms|application
                    		,msoption|ms_SlabsBackLight
                    		,ms|weight
                    		,ms|made_in
                    		,ms|price:number
                    		,ms|remains:number
                    	`
                    	&aliases=`
                            ms|mat==poroda
                    		,ms|cattools==vidprodukcii
                    		,ms|color==cvet
                    		,ms|application==obrabotka
                    		,msoption|ms_SlabsBackLight==backlight
                    		,ms|weight==tolschina
                    		,ms|made_in==country
            		
                        `
                    	&showLog=`0`
                    	&tplFilter.outer.poroda=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.poroda=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.vidprodukcii=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.vidprodukcii=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.cvet=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.cvet=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.obrabotka=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.obrabotka=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.backlight=`tpl.mFilter2.filter.checkbox`
                    	&tplFilter.row.backlight=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.tolschina=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.tolschina=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.country=`tpl.mFilter2.filter.select`
                    	&tplFilter.row.country=`tpl.mFilter2.filter.option`
                    	&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
                    	&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
                    	&tplFilter.outer.ms|remains=`tpl.mFilter2.filter.slider`
                    	&tplFilter.row.ms|remains=`tpl.mFilter2.filter.number`
                    	&tpls=`tpl.msProducts.row_m`
                    ]]
Вот так у меня формируется список фильтров. Мне нужно на странице каталога в верхней части (как в modstore) поставить 2-3 кнопки, нажатие на которые, отфильтрует результаты по конечному значению фильтра ms|made_in (страна). То есть кнопка «Россия» покажет товары российского производства, а кнопка «Импорт» покажет всю остальную продукцию. И, желательно, чтобы это и выглядело как в modstore, то есть без селектов, а именно кнопкой.
FastDevLab
Вчера в 21:17
0
Приветствую.
Есть несколько вопросов:
1. Без редактора Markdown — пост наверное будет простыней текста (как его преображать: тегами **Жирный текст** __курсивный текст__ ~~перечеркнутый текст ~~ `моноширный текст` ||скрытый текст|| или
<b> ...</b> <i>...</i>
и т.п.)
2. Можно его как то к страницам привязать? Например к разделу блога, чтобы он сам забирал TV с изображением и анонс к примеру (introtext например) и публиковал с ссылкой на полный пост?
Сергей Карпович
Вчера в 20:20
0
два mFilter2 — это если нужна логика по сложнее, а тут просто открытие страницы со значением фильтра, поэтому лучше не городить костыли
Михаил
Вчера в 19:07
0
Точнее, я думал об этом. Что-то вроде применения двух mFilter2 на одной странице. Показалось некорректным. Но попробую как вариант, спасибо
Дмитрий Суворов
Вчера в 19:07
+1
Это отличные новости. Если и будет жизнь для интернет-магазинов на MODX — то только благодаря Вам
Михаил
Вчера в 18:56
0
Да, можно и так, попробую
Сергей Карпович
Вчера в 10:41
0
Сделай фильтр чекбоксы, кнопки над карточками — это ссылки на выбранный фильтр, а из основного блока можно скрыть
FastDevLab
26 января 2026, 13:18
0
Это все понятно. Амнезия не совсем стандартный ВПН (она не меняет местоположение, там своеобразная система обфускации — она подменяет провайдера на Cloudflare) — в общем при ее включении, пакеты обновляются из админки MODX. Она не разблокирует все, к примеру с ней на зайти к примеру на gemini.google.com, но зато полезные сайты типа swiperjs.com начинают работать стабильно. В общем я до конца не понимаю как это работает — но работает.
FastDevLab
26 января 2026, 12:13
0
ИИ всего лишь помог красиво сформулировать, не более.

Но по сути согласен:
  • SOCKS5 — работает у ВСЕХ (проверено)
  • Amnezia — у меня работает, но регионально блокируется
Ваше решение объективно стабильнее для публичной инструкции.

Моё больше как «лайфхак»

На этом спор думаю можно завершить. Каждый сам выберет то что ему ближе)
Ivan K.
26 января 2026, 11:51
0
Ну зачем — это генеретика ИИ ??

По Amnezia WG: не у всех работает, возможно только у вас)
Подход с прокси: будет работать у всех!

Вот правильное заключение)
FastDevLab
26 января 2026, 11:46
0
Согласен, не стоит спорить — оба подхода работают, просто решают задачу по-разному.

Ваше решение действительно работает, это главное. Но если позволите, поделюсь замечаниями по коду (не критика, а предложения по улучшению безопасности):
  • `verify => false` — отключает проверку SSL сертификатов (потенциально небезопасно);
  • `CURLOPT_SSL_VERIFYPEER` внутри блока прокси — без прокси SSL работает, с прокси отключен;
  • Порт 9858 захардкожен, хотя стандартный SOCKS5 — 1080;
  • Нет обработки ошибок cURL и логирования для диагностики;
  • Нет timeout на подключение к прокси.
Это не баги, просто можно сделать код более универсальным и безопасным.

По Amnezia WG — она тоже работает и обходит блокировки благодаря обфускации. Главное отличие — она поднимает VPN для всей системы, а не только для MODX.

Плюсы SOCKS5 (ваш подход):
  • Более стабильное решение;
  • Работает точечно для MODX.
Плюсы Amnezia (мой подход):
  • Проще для неопытных пользователей;
  • Работает для всех приложений;
  • Не требует правки системных файлов.
Минусы обоих:
  • SOCKS5 — требует платную подписку.
  • Amnezia — периодически блокируется, нужно обновлять конфиги.
Вывод: ваше решение идеально для тех, кто хочет минимального вмешательства в систему и готов платить за стабильность. Мое — для тех, кому нужен VPN для всего сразу.

Спасибо, что поделились инструкцией, она реально полезна.
Ivan K.
26 января 2026, 11:08
0
Я устал спорить ни о чем. Если у вас работает, то и хорошо.
FastDevLab
26 января 2026, 11:03
0
Как с вами сложно, до включения впн, 5 раз пытался обновить компонент и он не обновился, включил он обновился. Типа совпадение (уже раз 20й примерно так)?
Ivan K.
26 января 2026, 10:43
0
То что у вас работает, не имеет отношение, к тому, что вы используете впн.
MODX обращается к репозиторию не через ваш впн! обращение идет от сервера, где у вас установлен MODX!!! Использование впн на вашем локальном компьютере не подменит ip сервера, где находится MODX.

Репозиторий MODX за Cloudflare — вы жмете «скачать компонент» идет обращение СЕРВЕРА где MODX к серверам Cloudflare, ip у них динамические, один раз нажмете попадете на тот который замедляется второй раз на тот, что еще не замедляют.
FastDevLab
26 января 2026, 10:16
0
Вот работает (ссылка на запись gif) и сомневаюсь, что перестанет работать) Не знаю почему у вас не работает. И утверждение что «Соединение с репозиторием идет с ip сервера, где у вас MODX», получается ошибочно
Futuris
25 января 2026, 10:20
+1
Энергично ты за дело взялся! С огоньком. Это правильно, иначе не сдвинуть ничего))
Николай Савин
25 января 2026, 10:10
+2
Давай давай, дня через три жду обратную связь.
Futuris
25 января 2026, 09:18
+1
Отличная новость, вернее целая череда новостей! Сейчас немного работа оживится и буду приобретать необходимый обвес для MS3 впрок)
Николай Савин
24 января 2026, 23:55
+2
Спасибо Иван, Да, займусь на днях демкой.
Ivan K.
24 января 2026, 23:49
+2
Привет Николай.
Отличная новость о выходе компонента, очень ждал. Приобрету обязательно.
Демо-сайта с товарами на мой взгляд не хватает, чтобы оценить скорость фильтрации)