2 часа назад
Спасибо!
Подскажите еще один момент! нам надо куда то пристроть код отправки уведомления на почту администратора, в момент появления нового заказа. ...
MiniShop3: итоги февраля и версия 1.6.0 26
6 часов назад
Я потому и задал вопрос о том как реализовано в Minishop3?
Новости MiniShop3, mSearch, mFilter 7
22 апреля 2026, 06:21
Мне лично документация вообще не понятна :-). Все просто в доке, но вот вопрос, что за канал создается через ваш бот? Это наш канал или ваш? В доке ма...
[MAX bot] отправляем сообщение в бот MAX на изи 8
22 апреля 2026, 00:22
Оказалось, что Localizator конфликтовал с плагином prettyTags. Ошибки в журнале с этим не связаны.
Localizator 1.0.9 и 1.1.0 8
21 апреля 2026, 19:25
Всё же разобрался.
Браузеры игнорируют CSS-файлы, если сервер отправляет неправильный MIME-тип. Например, вместо text/css может возвращаться text/ht...
pdoTools и sql_mode=only_full_group_by - ошибки при работе PdoPage 3
18 апреля 2026, 15:34
открыл, не знаю, почему он закрыт оказался) но, стоит учесть, что код там очень старый
msProductKits - удобное управление товарами-комплектами (наборами товаров) 31
15 апреля 2026, 13:43
Несколько корзин на странице это исключительно визуализация. miniShop2 только одна корзина. Из коробки показать её можно всего двумя способами, мой па...
[MsAltCart 1.0.7] Теперь с документацией. 3
14 апреля 2026, 19:53
У стрелок есть срок жизни. Кажется месяц. Вася так сделал, потому что на тот момент гонялись за рейтингом и накручивали, лайкая старые заметки.
ms3Favorites — избранное для MODX Revolution 3 и MiniShop3 3
13 апреля 2026, 11:00
Делал такие «Спецификации», получилось настолько уникальное и заточенное под сайт решение, что прям и в отдельный пакет то не оформить — куча специфич...
Несколько корзин на сайте, списки желаний/покупок, возможность поделиться, списки товаров для расчет... 1
В нем около 30000 товаров сейчас, около 500 стандартных опций товаров.
Работает на выделенном сервере с 16 гигами оперативной памяти, процессоре coreI7 последнего поколения. И разрабатывал его не я, а умные ребята…
Компонент для импорта экспорта товаров задыхается настолько, что менеджерам приходится готовить excel файлы с 5 товарами. То есть если товаров 1000 то они делают 200 файлов, иначе сайт падает при импорте. Компонент seoFilter сразу после установки «убил» сайт наповал, потому что он как-то генерирует сразу очень очень много своих страниц, компонент mFilter2 справляется со своими задачами, однако количество товаров растет, количество опций растет и он уже тоже задыхается — страницы открываются по 4-7 секунд.
Мой вам совет, выбирайте правильные инструменты для решения задач. MODX прекрасен, но я лично не видел ни одного реально большого магазина на нем. Все только бьют себя в грудь, но по факту, пока не видел.
Какое наиболее грамотное решение, если сайт продолжает работать со своей базой, но часть информации должен отправлять в базу данных на другом сервере?
Я когда начинаю что то разрабатывать совсем с нуля, иду от простого к сложного, сначала делаю наброски, пишу так как легче мне и проверяю саму идею. Если уже заработало и идея жизнеспособна, начинаю как-то код улучшать. Поэтому наброски как правило (если код использует js ) делаю на jquery.
А на днях посмотрел, ну реально же всего 4 места где используется jquery (а тут еще месяцок назад на этом сайте под одним постом была долгая дискуссия, мол что js сейчас сам по себе идеален для работы c DOM) и стало интересно смогу или нет избавиться от него, просто для прокачки навыков скорее всего.
matches
classList
closest
Просто это очень похоже на методы jquery а вот у ванильного js я нигде не находил их описания.
максимум
learn.javascript.ru/dom-navigation
но там эти методы не перечислены.
На мой взгляд, такого масштаба проекты не делаются на cms.
а на данный момент я посещаю максимум 10-15 сайтов, поэтому и не знал, что подобные «явления» все еще живы.
Как будто назад в 1998 попал, думал такого уже и нет в современном интернете)
но для меня проблемой стало то, что таргет как ему и положено всегда указывает на инициатора события, тоесть на input например, если мы изменили текст в нем. Но как определить, что этот инпут именно из той формы, за которой мы хотим следить?
К примеру форма имеет атрибут id = «filter», но на странице есть еще 20 форм, формы заказа обратного звонка, калькулятора какого-то, еще что то.
если наш листенер повешен на весь объект документ, то он будет следить за всеми элементами всех форм и единственный способ решить задачу, который я вижу, это всем input задавать определенный класс и проверять на его наличие.
Пока сделал так
по крайней мере под мою задачу так оказалось удобнее. теперь событие возникает только если изменена конкретная форма и что важно для меня — target тоже всегда сама форма, а нее ее отдельный инпут.
Насчет FormData нужно будет присмотреться. Я использовал ее несколько раз, но когда нужно было подготовить данные для отправки ajax-ом (хотя это можно сделать и вручную если заранее знаешь какие в форме input и их названия), я чаще пользовался formData чтобы передать через ajax файл. Но наверное вы и Сергей правы — собирать данные из формы эта штука должна уметь.
Это конечно субъективный опыт, но при подходе — просто накупить компонентов и думать что все они друг с другом будут работать хорошо и быстро — дает ужасный результат. Даже если вы и заставите все эти компоненты работать совместно, то уже при 500 посетителей в сутки все будет тормозить.
На modx можно сделать все что вы описали, если взять чистой modx, pdoTools а все остальное продумать и разработать самому, аккуратно оптимизируя все запросы, кеширование и так далее.
спасибо за подсказки.
А у меня другое. Я наверное запутал всех, акцентируя внимание на слове — форма.
Это некий фильтр и в момент изменения любого его поля нужно собрать все текущие данные в виде массива объектов. Теоретически это может быть и вовсе не форма, а какие-то дивы. Ведь форма никогда и не отправляется по сути. Отслеживается событие change, все данные (выбранные чекбоксы например) собираются и далее уже пошла логика работы с этими данными. Форма здесь скорее дань традициям.
Очень удобным для меня открытием оказались коллекции данных js — form
learn.javascript.ru/form-elements
сделал пока некий метод на них, но не уверен что смог учесть все нюансы. В форме могут содержаться элементы разных типов. Так например у инпутов нужно получать value, у textarea получать innerHtml, checkbox нужно проверять на наличие атрибута checked и так далее и это чтобы получить то, что мне давала даже не одна строка, а одно слово в jquery — serializeArray()
А что нет никакого метода для получения данных из формы?
давал мне массив объектов в виде name — value
а javascript не подскажите, имеет метод получения сразу всех заполненных полей формы?
Я вот для себя открыл, что оказывается существует некая коллекция форм
learn.javascript.ru/form-elements
которая содержит в себе все формы, все элементы всех форм и так далее
Могу делать цикл, сам создавать сам объекты и наполнить ими какой-то массив. Но тогда нужно еще и проверять какой элемент выбран (например если есть input type radio), ну тоесть я то нагорожу 30 строчек кода). Но может я просто не нашел удобного метода в языке js для работы с данными с формы?
Мне кажется что я один использую компонент tickets исключительно как способ оставлять комментарии о товаре.
И каждый раз с ужасом читаю — «сделал сайт на tickets» или «создаю ticket»… Сколь многогранен и непознан мной этот компонент.
Поскольку база теперь — это файл, лежащий в корне сайта, то среди выгод вижу например — сильно облегченный деплой сайта и плюс контроль версий, который включает и базу.
Ну это конечно не мое дело, просто удивлен.
А по поводу «тормозит», тут ничего умного не скажу. Проекты которые планируются как большие и нагруженные, нужно изначально правильно планировать — не использовать TB, создавать свои таблицы для данных, подбирать сервер с учетом этих нагрузок и пятое десятое. Не обрадую вас, скорее всего у вас вряд ли получится существенно улучшить работу сайта.
Я так понимаю, что вы говорите о странице, которую видит покупатель после оформленного заказа.
Хотите забирать из url номер заказа?
Он и так доступен на этой странице и обратиться к нему можно через {$order.num}