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

Всего 126 101 комментарий

Дима Касаткин
Дима Касаткин
Как будто мы вообще про разное говорим. Если у тебя при подключении к VPN начинают скачиваться пакеты в modx, значит твой сайт подключается к vpn и использует шлюз из другой сети для выхода в интернет, а так это работает только если сайт тоже работает на твоём же компе, как делают некоторые локальную разработку на базе XAMPP, open server и прочих Denwer-ов. В статье речь о том, чтобы заставить сайт, лежащий на внешнем хостинге, с которого не работает скачивание пакетов, подключить к прокси, через который дополнения (пакеты) для CMS MODX начнут скачиваться нормально.

Кстати говоря, я пока не встречал проблем скачивания на своих сайтах. Кроме случаев, когда изредка лагает репозиторий, и повторная попытка через пару минут пока помогает.
Михаил
Михаил
Оказалось не так просто…
[[!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
FastDevLab
Приветствую.
Есть несколько вопросов:
1. Без редактора Markdown — пост наверное будет простыней текста (как его преображать: тегами **Жирный текст** __курсивный текст__ ~~перечеркнутый текст ~~ `моноширный текст` ||скрытый текст|| или
<b> ...</b> <i>...</i>
и т.п.)
2. Можно его как то к страницам привязать? Например к разделу блога, чтобы он сам забирал TV с изображением и анонс к примеру (introtext например) и публиковал с ссылкой на полный пост?
FastDevLab
FastDevLab
Это все понятно. Амнезия не совсем стандартный ВПН (она не меняет местоположение, там своеобразная система обфускации — она подменяет провайдера на Cloudflare) — в общем при ее включении, пакеты обновляются из админки MODX. Она не разблокирует все, к примеру с ней на зайти к примеру на gemini.google.com, но зато полезные сайты типа swiperjs.com начинают работать стабильно. В общем я до конца не понимаю как это работает — но работает.
FastDevLab
FastDevLab
ИИ всего лишь помог красиво сформулировать, не более.

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

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

На этом спор думаю можно завершить. Каждый сам выберет то что ему ближе)
FastDevLab
FastDevLab
Согласен, не стоит спорить — оба подхода работают, просто решают задачу по-разному.

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

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

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

Спасибо, что поделились инструкцией, она реально полезна.