25 октября 2022, 16:38 В общем. Думаю надо тв позиции в каталоге email при выводе <a data-email="[[+email]]">запросить цену</a>js берем data-email и подставляем в скрытое поле добавить в форму скрытое поле в котором будет указан адрес получателя Вопросы / Вызов Formit для множества адресов почты, каждый адрес для определенного контента 24 +1
25 октября 2022, 16:24 А если феном использовать? {switch каталог} {case 'поставщик1'} {'!formit' | snippet : ['emailto'=>'a1@b.ru']} {case 'поставщик2'} {'!formit' | snippet : ['emailto'=>'a2@b.ru']} {/switch}или заводишь тв email в каталоге. Когда показываешь каталог цепляешь тв и в формит на каждую позицию с отдельным емаил. Хотя так конечно ерунда получается. Вопросы / Вызов Formit для множества адресов почты, каждый адрес для определенного контента 24 0
20 октября 2022, 17:51 Чтобы решать вопросы надо их вообще знать :-). Я тоже предпочитаю без решений не выступать, но эту тему поднял уже для того что разобраться в проблеме. Какие вопросы возникают? И обзор их решений. Исследование в общем. Так что ваши вопросы к mFilter2 мне интересны Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
20 октября 2022, 17:30 39с это из-за того что на тестовой инсталяции значения из msProductData брал. {'!mFilter2' | snippet : [ 'showLog'=>1, 'suggestions'=>1, 'parents' => $_modx->resource.id, 'cacheTime'=>600, 'limit'=>100, 'suggestionsMaxFilters'=>10000, 'filters'=>' ms|size:default, ms|insert:default, ms|material:default, ms|style:default, ms|metal_color:default, ms|sample_material:default, ms|insert_color:default, ms|insert_form:default, ms|cover:default, ms|appointment:default, ms|weaving_type:default, ms|for_whom:default', ]}В коде msearch foreach ($filters as $table => &$fields) { $method = 'get' . ucfirst($table) . 'Values'; $keys = !empty($duplicates[$table]) ? array_diff(array_keys($fields), array_keys($duplicates[$table])) : array_keys($fields); if (method_exists($this->filtersHandler, $method)) { $fields = call_user_func_array(array($this->filtersHandler, $method), array($keys, $ids));То есть, значения собираются для каждой опции отдельно. 12 раз пробегается по каталогу из 11к товаров. Блин 1 раз пробегается :-( Вот я повернут на объективности. Обманывая других часто обманываешь и себя. А это уже чревато. Лучше честно признать ошибку и придумать новое лучшее. Это не к Вам если что. Просто лирика про себя :-). Скорость отдачи страницы больше секунды это уже плохо. Тем более если страница для покупателей. Спасибо что поделились своим опытом. Будет интересно взглянуть на результаты Ваших тестов. Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
20 октября 2022, 16:40 Так есть один вариант. mFilter2 при запросе собирает информацию с выбранного каталога товаров, а не со всей базы данных. Если 200к товаров разбросанны по каталогам с 4000 товаров, то фильтрация как раз и 1-3сек будет :-) Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
20 октября 2022, 16:28 200к товаров на 200 значений это 40 000 000 записей в базе. В станданртной ситуации mFilter2 не может обработать 40 000 000 записей быстро. Колитесь что Вы сделали? :-) Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
20 октября 2022, 16:22 Просто следую правилам :-) Могу Вас на Вы называть. Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
20 октября 2022, 16:20 Интересно что тогда влияет??? Вообще тестовая база у меня от людей которые расширили msProductData через msfieldsmanager в том числе и json полями. У меня собрать с каталога с msProductData на тестовой инсталяции уходит 39с. У них фильтр работает по полям msOption и собрать данные уходит примерно в течении 10с. У них шаред хостинг бегет. То есть никаких 1-3с на 200к товаров не может быть на шаред хостингах. Что за различия? Как-то оптимизировали базу? Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
20 октября 2022, 16:10 как вы выражаетесьИз правил modx.pro Здесь все друзья и обращение на «ты» говорит только об этом. Не нужно вычурной вежливости, мы люди простые. Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
20 октября 2022, 16:02 Я писал свой магаз тестовый с нуля и делал другую структуру данныхПоделись структурой плиз. Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
20 октября 2022, 15:57 я тестировал 200к ресурсов с 20ю опциямиС 20 опциями или с 20 флажками? У меня 400 флажков. А у тебя сколько? у вас что-то не то с БД.БД стандартное. Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
20 октября 2022, 14:40 Manticore Search вариация Sphinx. Вчера пробовал установить OpenSearch вариацию ElasticSearch. Не поднял. Не справился с настройкой Docker :-(. Дальше без докера попробую, но пока некогда. Через неделю две пробовать буду. Вариации Sphinx, ElasticSearch требуют vds или отдельного выделенного сервера или даже кластера серверов. Они прожорливы. ElasticSearch требует минимум 60гб на сервере. OpenSearch у меня не запускался пока размер диска на виртуалке до 100гб не поднял. OpenSearch можно на https://aws.amazon.com/ru/opensearch-service/ подключить. Есть бесплатный тариф, но не понятно насколько его хватает. Платный тариф 1604,83 USD Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
20 октября 2022, 05:20 заранее просчитывать все возможные пересечения для фасетного фильтраТут одна проблема. Не знаю точную формулу, но знаю что кол-ко комбинаций пропорционально n!.. То есть, если кол-во флажков в фильтре около 200, то кол-во всех возможных комбинаций(ты назвал пересечения, но правильней комбинации. Если я правильно понял твою мысль :-)) около 200!.. Это 7886578673 6479050355 2363213932 1850622951 3597768717 3263294742 5332443594 4996340334 2920304284 0119846239 0417721213 8919638830 2576427902 4263710506 1926624952 8299311134 6285727076 3317237396 9889439224 4562145166 4240254033 2918641312 2742829485 3277524242 4075739032 4032125740 5579568660 2260319041 7032406235 1700858796 1789222227 8962370389 7374720000 0000000000 0000000000 0000000000 0000000000 00000 комбинаций. Не знаю как это работает в Битрих, но наверно до 200 флажков они не доходят. Максимум 50. И кеш по отзывам строится у них в течении 8 часов. Тот же подход но для Redis habr.com/ru/company/oleg-bunin/blog/316652/Там не тот же подход. Там вариация на тему массива значений опций, как в mFilter2, только в базе Redis. Допустим, у нас в Redis-е для Samsung-а есть вот 4 товара — 201, 202, 203, 204, а для Philips — 301, 302, 303. Ключ, соответственно, содержит ID рубрики, фильтр и вариант фильтра. Если пользователь выбирает в панели фильтров Samsung, мы запрашиваем в Redis, получаем ID товаров, отдаем их в компонент списка товаров, и наш компонент отображает 4 товара. Если пользователь выбирает еще производителя Philips, мы и делаем два запроса в Redis, берем объединение этих множеств и, соответственно, показываем семь элементов в нашем каталоге. Для разработчиков / Обзор фильтров для интернет-магазинов 31 +1
19 октября 2022, 06:54 Для поиска советую яндекс поиск для интернет магазиновУ яндекса нет фасетного поиска. То есть фильтров нет Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
18 октября 2022, 18:36 modx.pro/components/23283#comment-135724 Кажется ошибся. Тема для minishop2 Для разработчиков / Обзор фильтров для интернет-магазинов 31 0
29 сентября 2022, 10:50 Выяви на каком именно плагине и его код сюда. Вопросы / PHP warning: Invalid argument supplied for foreach() 24 0
29 сентября 2022, 10:40 можно. Вы наверно так и делали. Я просто подсказал с чем может быть связана ошибка. Что именно у вас мне не известно Вопросы / PHP warning: Invalid argument supplied for foreach() 24 0
29 сентября 2022, 10:11 Так плагин не надо было создовать. Надо было проверить что похожего плагина нет Вопросы / PHP warning: Invalid argument supplied for foreach() 24 0
26 сентября 2022, 20:48 resourceMap либо не генерируется либо его что-то прибивает. Не генерируется значит что то не так с модекс. Что-то прибивает вот здесь modx.pro/solutions/22267 рекомендуют плагин который прибивает Костыль OnMODXInit ниже может послужить хорошим решением данной проблемы, и будет надёжным подспорьем довольно долгое время. // Resource map patch to reduce parse time if( ! empty( $modx->context->resourceMap ) ) { $options = [ xPDO::OPT_CACHE_KEY => 'context_settings/' . $modx->context->key ]; if( $val = $modx->getCacheManager()->get( 'context', $options ) ) { $val[ 'resourceMap' ] = []; $modx->getCacheManager()->set( 'context', $val, 0, $options ); } } //--//Искушённый читатель предложит расширить стандартный класс менеджера кеширования и подменить его. На мой взгляд избавиться от плагина потом проще Вопросы / PHP warning: Invalid argument supplied for foreach() 24 0
gtsAPI 1.1.7 — таблицы на TanStack, инлайн-редактирование как в Excel Prime Vue datatable тупит на 200+ строк и в виртуальном скролинге высота полей фиксирована. Вот нам в итоге и не подошло. Директор сказал расчет должен сразу показываться без пагин...
mxApi — быстрый внешний API для MODX Revolution • зафиксировать публичный контракт EndpointInterface / метаданных по semver, чтобы наш провайдер не ломался на обновлениях;Фактически это уже так, beta стоит просто на всякий случа...
YaSmartCaptcha - защитите ваши формы от спама умной капчей от Яндекс Вообще не понял о чем речь) В системной настройке service_js сейчас указана ссылка smartcaptcha.cloud.yandex.ru/captcha.js Я предложил очистить эту настройку, тогда компонент н...
mxBackup — обезличенные копии MODX в пару кликов Ещё нет, я там разом почти полтора десятка пакетов выложил модератор, вероятно, а шоке.
Gallery3x 3.4.0 - вставка галерей прямо из визуального редактора (CKEditor и TinyMCE RTE) Здравствуйте. Есть консольный скрипт Вот почитайте: docs.ivan345.com/books/gallery3x/page/import-ms2galleryphp
[mSync] Новая версия синхронизации с 1С Всем привет. В какой то момент начали сыпаться ошибки: Error 23000 executing statement: INSERT INTO `modx_msync_products` (`product_id`, `uuid_1c`) VALUES ...
при выводе
js берем data-email и подставляем в скрытое поле
или заводишь тв email в каталоге. Когда показываешь каталог цепляешь тв и в формит на каждую позицию с отдельным емаил. Хотя так конечно ерунда получается.
В коде msearch
То есть, значения собираются для каждой опции отдельно. 12 раз пробегается по каталогу из 11к товаров.Блин 1 раз пробегается :-(
Вот я повернут на объективности. Обманывая других часто обманываешь и себя. А это уже чревато. Лучше честно признать ошибку и придумать новое лучшее. Это не к Вам если что. Просто лирика про себя :-).
Скорость отдачи страницы больше секунды это уже плохо. Тем более если страница для покупателей.
Спасибо что поделились своим опытом. Будет интересно взглянуть на результаты Ваших тестов.
В станданртной ситуации mFilter2 не может обработать 40 000 000 записей быстро.
Колитесь что Вы сделали? :-)
Вообще тестовая база у меня от людей которые расширили msProductData через msfieldsmanager в том числе и json полями. У меня собрать с каталога с msProductData на тестовой инсталяции уходит 39с.
У них фильтр работает по полям msOption и собрать данные уходит примерно в течении 10с.
У них шаред хостинг бегет.
То есть никаких 1-3с на 200к товаров не может быть на шаред хостингах.
Что за различия? Как-то оптимизировали базу?
У меня 400 флажков. А у тебя сколько?
БД стандартное.
Вариации Sphinx, ElasticSearch требуют vds или отдельного выделенного сервера или даже кластера серверов. Они прожорливы. ElasticSearch требует минимум 60гб на сервере. OpenSearch у меня не запускался пока размер диска на виртуалке до 100гб не поднял.
OpenSearch можно на https://aws.amazon.com/ru/opensearch-service/ подключить. Есть бесплатный тариф, но не понятно насколько его хватает. Платный тариф 1604,83 USD
Там не тот же подход. Там вариация на тему массива значений опций, как в mFilter2, только в базе Redis.
Кажется ошибся. Тема для minishop2