Петропавловский Артем

Петропавловский Артем

С нами с 19 июня 2015; Место в рейтинге пользователей: #524

Давайте пофильтруем данные с помощью микросервиса

Драма по поводу хорош или плох mSearch2 не утихает. Многие пользователи системы видят ее исключительно в монолитом виде что очень сильно ограничивает кейс системы. Причем любой.

Давайте представим что у вас есть интернет-магазин на MODX + miniShop2 с очень большим кол-вом товаров и каким-никаким хайлоадом :)

Использование встроенных фильтров в mSearch вас немного ограничивает. Как минимум тем, что не кеширует результат.

Предлагаю припилить к нашему любимому MODX небольшой микросервис на Laravel который будет фильтровать данные по входному запросу, а также отдавать нам список айдишников которые подходят под выборку.

Павел Бигель
20 декабря 2022, 16:23
modx.pro
4
1 395
+15

Кешируем mFilter2

Как кол-во товаров на сайте переваливает какую-то границу, то mFilter2 начинает жестко тупить. Переодически мне приходиться бороться с этой проблемой. В итоге изучения mFilter2 выработал пару решений.
Александр Туниеков
22 сентября 2022, 08:35
modx.pro
7
1 262
+8

Оптимизации и тонкости работы с БД для больших магазинов на MODX Revolution

Небольшое вступление

Данная статья не претендует на универсальное решение. Всегда пользуйтесь собственной головой. Всё описанное ниже актуально для MODX Revolution 2.8.3-pl, miniShop2 2.9.1-pl.

wfoojjaec
16 сентября 2021, 19:09
modx.pro
30
2 557
+26

Hybridauth. Google не отдает email

Собственно, Google не отдает email
Ключ выглядит так
{«keys»:{«id»:«ID»,«secret»:«secret»},«scope»:«profile www.googleapis.com/auth/plus.profile.emails.read»}
Версия HybridAuth 3.0.0
Игорь Павлов
29 августа 2019, 00:58
modx.pro
1
545
0

Сборка элементов сайта в компонент (пакет), пошаговая инструкция

Привет, давно не виделись :)

Я в прошлой заметке, когда писал об уходе, обещал опубликовать свои черновики, так что выполняю обещание и сегодня рассмотрим пример с разработкой отдельных страниц сайта и сборкой их в компонент (или транспортный пакет), которые можно затем установить через обычный пакетный менеджер. Я буду все показывать на реальном случае, который я недавно закончил.

Итак, сначала описание задачи, которая стояла. Был сайт, на котором нужно было реализовать обновленный раздел с готовыми решениями. Был представлен новый дизайн с версткой, были описаны требования к некоторым аспектам работы этих новых страниц. В частности, автоматический расчет цены товаров с конвертация валют, автоматический расчет цены монтажа в зависимости от количества оборудования и прочее. Но не суть, задача была безболезненно все делать локально, пока основной сайт работает и выкладывать решение или по частям или сразу, в виде готового пакета.

Какие-то отдельные подзадачи я все же сделал руками, так как это было просто быстрее и проще. Например, нужно было в некоторых шаблонах (уже существующего сайта) добавить вызов нового снипета или настроить формы редактирования ресурса под клиента. Эти манипуляции были сделаны прямо на боевом сайте. Повторюсь, потому что так быстрее и проще и не влияет на остальной процесс. По методологии LEAN.

Вводная закончилась. Продолжаем внутри заметки.

Іван Клімчук
27 августа 2019, 19:57
modx.pro
25
3 441
+38

Curl клиент modx

Встроенный curl клиент для отправки запросов на сторонние сервисы (RESTful и другие).
Так как все чаще используются сторонние сервисы в повседневной разработке сайтов, для этих целей в modx есть встроенный клиент, с помощью которого можно отправлять запросы:

/* @var modRest $client */
$client = $modx->getService('rest', 'rest.modRest');
$response = $client->get('GET запрос');
или
$response = $client->post('POST запрос');

// Обработка полученных данных в json или xml формате и преобразование их в массив
$array = $response->process();
В заметке перечислены способы работы с клиентом
Андрей Степаненко
12 августа 2019, 07:56
modx.pro
34
4 896
+39

Запрос через XPDO к тв параметрам с использование having

Запрос на XPDO для выборки ресурсов у которых совпадают значения тв параметров.

Функция having посчитает количество совпадений по групперуемому полю contentid
Андрей Степаненко
26 апреля 2019, 14:36
modx.pro
11
1 248
+10

Вывод всех опций minishop2 и автоматическое их добавление в словарь одной кнопкой.

Всем привет, как всегда возникла задача максимально упростить и автоматизировать рутинные процессы в MODX. Будем делать автоматическое добавление опций в словарь и автоматически подтягивать список опций, куда вам угодно будет.
Vlad Brise
14 марта 2019, 19:47
modx.pro
22
3 794
+14

[mFilter2] Вывод товаров со смежными значениями

Небольшая заготовка из вчерашнего рукоделия.

Имеем сайт с подбором товаров по характеристикам, реализованным на mFilter2.
Один из параметров «Мощность активная» выглядит так (увеличение по клику):


Как видно, есть большое разнообразие товаров с близкими значениями мощностей, но общее количество товаров не столь велико.
Это приводит к тому, что когда посетитель выбирает, к примеру, мощность 10 кВт, то он видит 1 товар в результатах подбора. А специфика продукции такова, что логично предложить пользователю аналогичные изделия как с чуть меньшей мощностью, например 9 кВт, так и с большей, до 12-15 кВт.

Нет, конечно можно сказать, что пусть нащелкает нужные цифры в подборе, но всегда есть «но». На страницу «Товары с мощностью 10 кВт» (где уже стоит галочка в фильтре) пользователь приходит из поисковых систем, фильтра он не видел и не нажимал. Если на странице будет 1 товар, пользователь может быстро уйти, решив, что мы предлагаем крайне скудный ассортимент, так и не увидев, что есть фильтр.

В общем, небольшая зарисовка на тему того, как при выборе в фильтре параметра со значением 10, показать все товары в диапазоне -x%....+y%.

Наумов Алексей
26 февраля 2019, 10:29
modx.pro
15
1 309
+10