&where в getresources
Здравствуйте!
Интересует такой вопрос:
Как при работе с getresources, устроить фильтрацию по TV параметрам. Вот пример моего запроса:
Где
Вот только с TV не работает :( Префиксы отключил с помощью &tvPrefix=``
В чем может быть причина?
Интересует такой вопрос:
Как при работе с getresources, устроить фильтрацию по TV параметрам. Вот пример моего запроса:
&where=`{"ModGoods.price:<=":[[!Get? &var=`vmax`]], "ModGoods.price:>=":[[!Get? &var=`vmin`]], "D:=":[[!Get? &var=`D`]]}Где
- ModGoods.price — параметр компонента MiniShop
- D — TV рессурса.
Вот только с TV не работает :( Префиксы отключил с помощью &tvPrefix=``
В чем может быть причина?
Комментарии: 35
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
ТВ лежат в отдельной таблице, на которую where не распространяется. А использование ТВ очень медленное, это не новость.
Вроде как в сниппете getProducts, автор улучшил работу с ними.
getProducts я попробовал… но там всплывают ошибки другого рода… но даже с ним, при 6 TV будет медленно :(
Если у кого то есть опыт в данной проблеме — отпишитесь пожалуйста…
Выход есть — пиши свой сниппет, который будет фильтровать ресурсы через SQL и возвращать id подходящих, для вывода через getResources.
P.S. Ну и хостинг у тебя, подозреваю, не очень быстрый, да?
Попробуй поразбираться с новым сниппетом от MS2, который быстро работает через pdoTools и умеет выбирать ТВ.
Думаю, он и фильтровать по ТВ сможет, но пока не проверял.
Этот сниппет использует мою билиотеку pdoTools и выбирает ресурсы напрямую из БД, без xPDO.
Если разобраться с этой библиотекой — можно делать любые выборки и сортировки, очень быстро. На сайте есть подробная заметка, для подписчиков.
Просто объясняю, что реальный выход у тебя один — работать с фильтрацией самостоятельно, в чём очень помогает pdoTools.
Лично я использую его во всех новых компонентах, то есть: Tickets и miniShop2.
Но у меня переживания на счет «самостоятельно»… я писал раньше админки для сайтов сам, и работал с сложными фильтрами для контент проектов… но я и обучался сам исходя от задачи… на чистом ПХП :)
А тут все темный лес… вот к примеру pdoTools для меня ничего пока что не говорит…
Буду разбираться..)
Не в коем случае не хочу обидеть автора, компонент шикарный, но так странно что только мне стало так тесно в рамках существующего функционала…
И тоже вслух, но громко-громко: modx.pro/help/829/#comment-7266
Хотя… Ты обещал по-разбираться — зер гут)
MIGX — мне тоже мало о чем сейчас говорит. Есть компонент, есть его сниппеты… в их рамках я и пытаюсь решить свою задачу.
Теперь, когда я знаю что этого функционала мало, я ищу способы альтернативных решений…
И да, я тут много чего не понимаю еще. Для этого и пишу сюда…
Нельзя так — можно так = нет ограничения — вот в чём суть моего коммента.
Но суть в другом — ограничения вызваны стандартным функционалом. И не просто МодХа, а компонентом интернет магазинов… так как я уже говорил — я половины магазинов без сложных фильтров не вижу — Подарки, Запчасти, Диски, Шины, одежда…
Мне очень нравится МиниШоп, и огромное спасибо автору. Это лишь мое искрение удивление.
2. Затем, что то, как происходит их вызов и, что накодировано в вызываемом так же влияет на скорость.
3. Затем, что есть в порядки большее кол-во задач, помимо магазина, которые требуют лишь 1-2-3 из них — всё прекрасно работает.
Есть и ещё аргументы.
П.С.
"… ограничения вызваны стандартным функционалом. И не просто МодХа, а компонентом интернет магазинов…" — иногда ограничения и «ограничения» вызваны бюджетом и сроком выполнения работ или вышеописанным, а бывает и тем, что автор вынес некоторую часть работ «на завтра», а так же тем, что задел есть, как решать известно — всё в наших руках.
Не стоит забывать, что для нас это бесплатно.
Я как человек новый в МодХ, выбрал для магазина именно его, потому что на поверхности была информация — 1) Позволяет создавать свои TV и по ним делать выборку.
2) Есть МиниШоп, отличный удобный компонент для своих магазинов с богатым функционалом.
Казалось бы — выбор сделан. Но вот информация которая лежала уже намного глубже —
1) выборка по большому количеству TV на большом количестве ресурсов — не реальна без серьезных доработок.
2) МиниШоп использует TV по мимо основных параметров, что возвращает нас к пункту 1.
Я не вижу смысла разводить тут флуд. Сейчас я ищу варианты решения своих задач. Надеюсь мне тут помогут :)
Всё бы ничего, но ключевой + MODX не в том, что много чего есть готового — это к Joomla и иже с нею, а в том, что в MODX нет ограничений для тех, кто умеет больше, чем жмакнуть кнопочку «создать документ.
В Joomla и иже с нею многое просто не получится сделать. В отличие от MODX. В этом ключевое преимущество MODX.
Ну, и, конечно, Вам помогут, если что, если немного и ненавящиво)
Юрий НовыйТакой разве есть?)Нашел… попробую, спасибо!Что же не так? Мне 6 TV для отбора нужны…
Если выводить через снипет snippet.ms_products — ничего не выводит…
Это адаптация сниппета от MS2, на скорую руку. Пример вызова:
Обрати внимание на ТВ в where.
Без фильтров выводится все, но в виде массива, шаблон полностью игнорируется, как и страницы так и вывода.
С фильтрами либо вобще ничего не выводит, либо вот такую ошибку —
а следом вывод, но без учета фильтров…
сам вывод:
На что конкретно обратить внимание в TV?
А там было вот это, в середине:
Вот, еще немного переделал. Дальше сам.
Да, я не изучал ваш код. При такой постановки вопроса, мне наверно надо было вас не отвлекать и самому написать, если я правильно вас понимаю… Я же «админки писал», а тут такое спрашиваю… детский сад…
Спасибо, буду разбираться.
Нужна помощь за которую я готов платить. Можете кого нибудь порекомендовать? Если у вас нет на это времени…
Сниппет работает очень просто — создаётся один запрос в БД, выбирающий все подходящие товары с джоином их свойств. Ты его можешь увидеть установкой параметра &showLog=`1`, и самостоятельно проверить в PhpMyAdmin.
Если у тебя и сейчас ничего не работает, ничем помочь уже не могу.
Работать с первым miniShop сразу после выпуска второго у меня нет ни времени ни желания. Порекомендовать тоже некого, разве что разместить объявление вот тут.