5 часов назад
самый просто вариант это хукЯ тоже так думаю
Этот хук обрабатывает форму "Купить в 1 клик", создает заказ в miniShop2 1
04 сентября 2025, 12:45
Нет, данную проблему не решил, потому как она мне и не мешала… Так как с сам minishop3 использовал на паре проектов где доставка и не требовалась. Буд...
[MiniShop3] - Новости, Планы 34
04 сентября 2025, 12:35
казалось бы чего, открой другой браузер, где не выполнен вход и заноси заказаМожно установить adminTools и запретить автоматическое залогинивание в ко...
Оформление заказа minishop2 1
04 сентября 2025, 12:27
modx.pro/help/12408#comment-81924
minishop2 отправить фотографию товара заказчику 11
03 сентября 2025, 19:36
Если ты просто скачал компонент из репозитория и не запускал composer install — запусти.
MiniShop3 - 1.0.0-alpha 20
31 августа 2025, 21:09
Экранировать, то есть так: $c->sortby($this->modx->escape('rank'), 'ASC');
Во всех файлах?
/core/components/pageblocks/processors/mgr/co...
PageBlocks. Удобное управление контентом сайта. 46
29 августа 2025, 18:05
Василий, здравствуйте! Очень интересное (и правильное) направление для развития modx экосистемы как мне кажется. В последнее время для разработки боль...
Новый тип дополнений: mmxDatabase и mmxForms 41
29 августа 2025, 17:29
Пересобрал шаблон для новостей которые через Collections.
В какой TV была ошибка так и не нашел (((
Мodx revo 3.1.2 при запросе страницы, связанной с Collections сервер возвращает ошибку 500 3
28 августа 2025, 21:34
Добро. Сейчас, сейчас… прольётся чья-то кровь )))
Доработки сайта сообщества modx.pro 11
Смотрите с чем столкнулся я касательно яндекса.
Покупаем на той самой бирже о которой вы говорите аккаунт. На нем к примеру 5000 лимитов и при покупке мы указали ip адрес сервера, с которого будем слать запросы яндексу. Получаем токен для подключение.
На этом сервере работает мое программное обеспечение (там много всего, включая построитель очереди задач на сутки в редис и прочее), но суть сбора данных с яндекса заключается в отправке запросов на определенный url яндекса (передаем фразу которую ищем, регион, токен и прочее если нужно) и получение в формате xml результатов. Парсю этот xml и нахожу на какой позиции находится (если находится) домен, статистику для которого я снимаю.
Так вот. Яндекс во первых вводит ограничения на то, сколько мы можем использовать лимитов в час (ночью больше, а днем на час дается очень мало) и плюс ограничивает частоту запросов С ОДНОГО IP. Если пытаешься отсылать запросы чаще чем… ну к примеру раз в секунду, то яндекс временно тебя отключит.
И исходя из этого возникают проблемы.
Первая — купили мы на бирже аккаунт на 5000 лимитов, а что если у нас запросов наши сеошники набросали 24 000 штук. Мы физически не можем за сутки их обработать, потому что в идеальном варианте (если нигде ничего не сбоило) у нас всего 5000 лимитов. Вроде бы логично иметь несколько аккаунтов (купленных на бирже или же своих) и если на одном закончились лимиты, просто переключиться на другой. И изначально такую систему балансировки между несколькими аккаунтами я и разработал. Но оказалось что яндекс не позволяет иметь два аккаунта, которые работают с одного IP. Тоесть вы не можете на бирже купить один акаунт и указать 123.123.123.123 и купить второй аккаунт и указать такой же IP.
Один аккаунт = один IP и именно это я имел ввиду под «ограничением на один IP»
Я по прежнему не понимаю о каком прокси все говорят и как он может отправлять запросы с одного сервера но при этом чтобы все запросы шли с разных IP (причем не случайных, а заранее определенных IP)
Мне кажется это называется не прокси, а VPN.
Я же понимаю проксирование как например работает nginx. Он может принять запрос слушая определенный порт, проанализировать его и понять куда его направить. Но как он может отправить первый запрос на яндекс с одного IP а другой — с другого. а третий снова с первого — не понимаю.
Разве что где то в сети интернет стоят сервера, суть которых просто принять запрос и в таком же виде передать его…
Ну в общем пока я не пойму теорию, я не моги понять о чем речь, нельзя же просто так сказать — тебе поможет прокси) Это все равно что раненому больному сказать — тебе поможет скальпель. Оно вроде как и логично, но без теории проведения хирургических операций — скальпель не поможет.
Поэтому буду благодарен за ссылки где изучить, что такое — прокси, о котором все говорят)
Но и кстати, я так понимаю что это тоже чей то чужой платный сервис и если он перестал рабоать — то мой сервис тоже лег? В таком случае содержать свои vps ки мне кажется более правильным, я моги следить за ними, администрировать. И что важно — регулировать их количество в зависимости от нагрузки на систему. К примеру в этом месяце сешники хотят в день снимать 50 000 запросов, я могу просчитать сколько серверов мне для этого нужно и за 20 минут установить на них убунту, свое программное обеспечение и они сразу включаться в работу. Если нагрузка упала — я пошел их удалил и не платим за них.
Во первых я когда то несколько лет назад, когда только столкнулся впервые с modx и с такой проблемой в работе pdoPage, я общался с Василием Наумкиным и он сказал, что нормального решения нет, можно там как то сбрасывать какие-то хеши… Для меня это было и есть темный лес. Хорошо если решение этого пофиксили, правда в документации мне не попадалось описание.
Во вторых, я очень люблю что то писать сам, а не пользоваться чужим кодом. Когда говорят мол иди изучи как там в сниппете сделано, это всегда скучно и ты зажат рамками чужой идеи. Я же почти всегда могу придумать свою идею и именно за это я обожаю программирование, за возможность каждый день строит свои мир.
Обычно отказываюсь от использования pdoPage и придумываю что-то сам.
Вот недавно делал такое.
В шаблоне
на ссылке при клике по которой идет загрузке висят два дата атрибута. С идентификатором родителя и с числом, по сколько данных подгружать.
Есть javascript
Он навешивает функцию на событие click, собирает данные о родителе, сколько загружать и высчитывает, а сколько данных уже отображено на странице, чтобы создать offset
И есть php файл
К этому скрипту отправляет запрос javascript и получает назад html нужных элементов которые потом подставляются на страницу.
Такой способ позволяет на странице иметь сколько угодно блоков, потому что каждый из них имеет свой уникальный идентификатор, в которые информация будет погружать отдельно.
Я помню, как изучив учебник php, я открыл код modx и ужаснулся. Какие -то квадратные скобки, какие то чанки, код хранится непосредственно в базе данных — ничего этого в учебнике не было и это неимоверно сбивало с толку.
Ну и плюс, лично из моего опыта, единственный способ действительно понять, как что то работает — это разобрать это по винтикам.
В случае с программированием это означает, что я открываю текст программ в редакторе, который умеет индексировать код (это vscode, netbeans, phpstorm) открываю index.php и начинаю пошагово и построчно изучать код, пока не пойму что делает каждая точка и запятая.
Не могу пользоваться allposition или ему подобными, поскольку задача от руководство стоит так «разработать сервис статистики для нашей компании, который будет независим от других сервисов».
В случае с яндекс я пользуюсь yandex XML. Для обхода ограничений на запросы с одного IP разработал кластерную архитектуру приложения, где к программе можно добавлять дешевые виртуальные сервера и запросы на яндекс идут с их IP.
Похоже, парсить выдачу google — это единственный вариант.
Роман, к своему стыду я не совсем понимаю фразу «купить прокси чтобы парсить». Не понимаю саму технологию процесса, можете дать ссылку почитать как это работает?
Я подозреваю, что гугл, если напрямую быстро отсылать get запросы на сайт и парсить html быстро заблокирует мой IP или включит каптчу. Но не понимаю как использование прокси может это решить, ведь это не позволит на одном сервере иметь 10 IP адресов, чтобы отсылать запросы каждый раз с разного IP и не быть забаненым?
наверное условия можно переписать короче, но во первых так нагляднее, а во вторых — я ненавижу тернарный оператор)
2. Вы наверное не так поняли Артура. Это очень плохая практика, когда у каждой услуги (товаре или что там еще) создается своя форма при помощи ajaxform. А если их будет 1000? 1000 раз будете на одной странице запускать сниппет ajaxform? Более экономично и разумно, иметь один вызов ajaxform где то в футере, он реализует одну форму. А дополнительно на js вы пишите просто скрипт который при клике на кнопку берет данные конкретно той вакансии, по которой кликнули и вставляет данные в ту форму, которая у вас в футере. И открывает модальное окно с этой формой. Тогда имея всего одну форму вы сможете сделать заказ любой вакансии, потому что данные в форме будут заполнены при клике и будут каждый раз разные.
Вы можете написать свою функцию, указав ее в качестве функции обратного вызова при событии pdopage_load
Ваша функция может получить количество карточек товаров (услуг или чего вы там выводите) и вставить это число в нужное вам место страницы.
Таким образом у вас общее число будет браться с [[+page.total]] а реальное количество на странице динамически подставляться через javascript
готовых решений наверняка нет.
Вы можете или разработать этот функционал самостоятельно или же оставить запрос на платную разработку
modx.pro/work
По сути использование const не дает никакой выгоды перед let, как это например наблюдается в других языках, где если объявляется константа, то под нее в памяти резервируется минимально необходимое количество байт.
В javascript использование const не более чем попытка пойти по модному течению «сейчас в моде снова языки строгой типизации». Раньше был турбо паскаль, фортран, позже с++, джава в которых нельзя было обьявить переменную не указав точно тип данных, которые мы планируем в ней хранить.
int var x = 5;
Потом мода менялась и стали говорить мол, вот вам новые языки, здесь не нужно думать о типе переменной, творите что хотите, теперь вы свободны и появились php, javascript и прочее.
Сейчас же (лично по моим наблюдениям) новый виток спирали — снова в моду входит строгая типизация. Javascript разрабатывает typescript, php вводит typehinting, позволяет указывать что должна вернуть функция, в общем становится очень похож на с++.
И const в javascript (на мой взгляд) не более чем баловство, ведь работает это только на примитивных данных, а для ссылочных типов данных работает некорректно, тоесть позволяет мутировать объект. Поэтому мне кажется, кому нужна строгая типизация тот пойдет писать на typescript, а остальным без разницы let или const, хотя может я и ошибаюсь.
Честь и хвала Артуру, что ему хватает нервов и времени попытаться разобраться и найти хоть крупицу логики, написать вам ответ. А потом вы вдруг все переворачиваете с ног на голову, говоря про админку.
Если бы вы описали задачу кратко, но полностью — вероятность что вам бы помогли была бы больше.
Артур вам правильно написал, formit это лишь программа для отправки форм, а форма передает информацию, данные, а не теги. Есть множество способов передать данные в форму. К примеру используя возможности javascript работать с DOM деревом, как описал Артут. Либо можно просто информацию которую лежит у вас в теге p продублировать уже в виде тега input type=hidden value=название категории name=categoryName
Если этот тег будет размешен внутри формы, то название категории отправится.
Если вы хотите чтобы отправляемые пользователем данные просто сохранялись в админке, то ознакомьтесь с документацией на formit
docs.modx.com/current/en/extras/formit/index
и особенно
docs.modx.com/current/en/extras/formit/formit.hooks/formitsaveform
Расскажите, продолжаете ли вы с командой пользоваться для разработки на modx докером?
Обнаружились какие-то минусы?
Указав base href = site.com/ Можно на любой странице подключить скрипт используя относительный путь относительно base href.
и на любой странице он будет подключен, вне зависимости от url
А как поступаете вы? Для каждого скрипта указываете абсолютный путь?
Та проблема которая описана на stackoverflow решается элементарно, нужно просто в якорной ссылке указывать не #id, а site.com#id
Но даже если у использование base href и создаст какие то проблемы у кого-то, то мне кажется это еще не причина так негативно отзываться о таком замечательном теге, решающим куда больше проблем чем создающим)
Я использую данный тег на всех проектах, не только modx и он прекрасен.
Не вижу никаких минусов и переходы по якорным ссылкам работают.