&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
Для фильтрации по ТВ там есть отдельные параметры.
&tvFilters работает ОЧЕНЬ медленно, у меня более 700 товаров.
Василий, если я правильно понял, то через &where нельзя по TV отбирать?
По моему, да.
ТВ лежат в отдельной таблице, на которую where не распространяется. А использование ТВ очень медленное, это не новость.
Вроде как в сниппете getProducts, автор улучшил работу с ними.
ТВ лежат в отдельной таблице, на которую where не распространяется. А использование ТВ очень медленное, это не новость.
Вроде как в сниппете getProducts, автор улучшил работу с ними.
Я просто не могу поверить, что оказывается фильтр в магазине по 6 TV параметрам — это уже не реально… Никто нигде не писал что Модх так сильно ограничен в ресурсах… Есть же куча ниш магазинов, где 2-3 параметра, кроме цены — это очень мало…
getProducts я попробовал… но там всплывают ошибки другого рода… но даже с ним, при 6 TV будет медленно :(
Если у кого то есть опыт в данной проблеме — отпишитесь пожалуйста…
getProducts я попробовал… но там всплывают ошибки другого рода… но даже с ним, при 6 TV будет медленно :(
Если у кого то есть опыт в данной проблеме — отпишитесь пожалуйста…
Так всегда. Чем проще и универсальнее разработка, тем она медленее.
Выход есть — пиши свой сниппет, который будет фильтровать ресурсы через SQL и возвращать id подходящих, для вывода через getResources.
P.S. Ну и хостинг у тебя, подозреваю, не очень быстрый, да?
Выход есть — пиши свой сниппет, который будет фильтровать ресурсы через SQL и возвращать id подходящих, для вывода через getResources.
P.S. Ну и хостинг у тебя, подозреваю, не очень быстрый, да?
Агава :( Думаю вот куда переехать…
Василий, а getProducts параметры Минишопа не выводит?
Скорее всего — нет. Он не знает про дополнительную таблицу с параметрами.
Попробуй поразбираться с новым сниппетом от MS2, который быстро работает через pdoTools и умеет выбирать ТВ.
Думаю, он и фильтровать по ТВ сможет, но пока не проверял.
Попробуй поразбираться с новым сниппетом от MS2, который быстро работает через pdoTools и умеет выбирать ТВ.
Думаю, он и фильтровать по ТВ сможет, но пока не проверял.
А для этого мне нужно перейти на MS2?
Нет.
Этот сниппет использует мою билиотеку pdoTools и выбирает ресурсы напрямую из БД, без xPDO.
Если разобраться с этой библиотекой — можно делать любые выборки и сортировки, очень быстро. На сайте есть подробная заметка, для подписчиков.
Этот сниппет использует мою билиотеку pdoTools и выбирает ресурсы напрямую из БД, без xPDO.
Если разобраться с этой библиотекой — можно делать любые выборки и сортировки, очень быстро. На сайте есть подробная заметка, для подписчиков.
Подписка — не вопрос! главное чтобы мне это помогло… Я сравнительно плохо разбираюсь в этом…
Да я не агитирую на подписку.
Просто объясняю, что реальный выход у тебя один — работать с фильтрацией самостоятельно, в чём очень помогает pdoTools.
Лично я использую его во всех новых компонентах, то есть: Tickets и miniShop2.
Просто объясняю, что реальный выход у тебя один — работать с фильтрацией самостоятельно, в чём очень помогает pdoTools.
Лично я использую его во всех новых компонентах, то есть: Tickets и miniShop2.
Я понимаю :) Я даже за!
Но у меня переживания на счет «самостоятельно»… я писал раньше админки для сайтов сам, и работал с сложными фильтрами для контент проектов… но я и обучался сам исходя от задачи… на чистом ПХП :)
А тут все темный лес… вот к примеру pdoTools для меня ничего пока что не говорит…
Буду разбираться..)
Но у меня переживания на счет «самостоятельно»… я писал раньше админки для сайтов сам, и работал с сложными фильтрами для контент проектов… но я и обучался сам исходя от задачи… на чистом ПХП :)
А тут все темный лес… вот к примеру pdoTools для меня ничего пока что не говорит…
Буду разбираться..)
А вообще, очень странно, что компонент Минишоп… да и сам Модх, так изначально ограничен по функционалу. Мне какой магазин в голову не приходит — сложные фильтры нужны везде почти…
Не в коем случае не хочу обидеть автора, компонент шикарный, но так странно что только мне стало так тесно в рамках существующего функционала…
Не в коем случае не хочу обидеть автора, компонент шикарный, но так странно что только мне стало так тесно в рамках существующего функционала…
А тебе не приходило в голову часть параметров через простые TV, а часть через MIGX выводить? Или же все через MIGX… Это так, мысли вслух, тихонько-тихонько.
И тоже вслух, но громко-громко: modx.pro/help/829/#comment-7266
Хотя… Ты обещал по-разбираться — зер гут)
И тоже вслух, но громко-громко: modx.pro/help/829/#comment-7266
Хотя… Ты обещал по-разбираться — зер гут)
Станислав, я вас не понял…
MIGX — мне тоже мало о чем сейчас говорит. Есть компонент, есть его сниппеты… в их рамках я и пытаюсь решить свою задачу.
Теперь, когда я знаю что этого функционала мало, я ищу способы альтернативных решений…
И да, я тут много чего не понимаю еще. Для этого и пишу сюда…
MIGX — мне тоже мало о чем сейчас говорит. Есть компонент, есть его сниппеты… в их рамках я и пытаюсь решить свою задачу.
Теперь, когда я знаю что этого функционала мало, я ищу способы альтернативных решений…
И да, я тут много чего не понимаю еще. Для этого и пишу сюда…
"… очень странно, что компонент Минишоп… да и сам Модх, так изначально ограничен по функционалу..." — вот это вызвало мою такую реакцию, а не уровень знаний (мне не известный и который может быть выше моих).
Нельзя так — можно так = нет ограничения — вот в чём суть моего коммента.
Нельзя так — можно так = нет ограничения — вот в чём суть моего коммента.
Станислав, я прекрасно понимаю что при умелых руках ограничений обычно нет.
Но суть в другом — ограничения вызваны стандартным функционалом. И не просто МодХа, а компонентом интернет магазинов… так как я уже говорил — я половины магазинов без сложных фильтров не вижу — Подарки, Запчасти, Диски, Шины, одежда…
Мне очень нравится МиниШоп, и огромное спасибо автору. Это лишь мое искрение удивление.
Но суть в другом — ограничения вызваны стандартным функционалом. И не просто МодХа, а компонентом интернет магазинов… так как я уже говорил — я половины магазинов без сложных фильтров не вижу — Подарки, Запчасти, Диски, Шины, одежда…
Мне очень нравится МиниШоп, и огромное спасибо автору. Это лишь мое искрение удивление.
И за чем вобще в модХ фильтры по TV если они так безбожно виснут.
1. Затем, что великое множество магазинов в них вообще не нуждается или нужна пара-тройка.
2. Затем, что то, как происходит их вызов и, что накодировано в вызываемом так же влияет на скорость.
3. Затем, что есть в порядки большее кол-во задач, помимо магазина, которые требуют лишь 1-2-3 из них — всё прекрасно работает.
Есть и ещё аргументы.
П.С.
"… ограничения вызваны стандартным функционалом. И не просто МодХа, а компонентом интернет магазинов…" — иногда ограничения и «ограничения» вызваны бюджетом и сроком выполнения работ или вышеописанным, а бывает и тем, что автор вынес некоторую часть работ «на завтра», а так же тем, что задел есть, как решать известно — всё в наших руках.
Не стоит забывать, что для нас это бесплатно.
2. Затем, что то, как происходит их вызов и, что накодировано в вызываемом так же влияет на скорость.
3. Затем, что есть в порядки большее кол-во задач, помимо магазина, которые требуют лишь 1-2-3 из них — всё прекрасно работает.
Есть и ещё аргументы.
П.С.
"… ограничения вызваны стандартным функционалом. И не просто МодХа, а компонентом интернет магазинов…" — иногда ограничения и «ограничения» вызваны бюджетом и сроком выполнения работ или вышеописанным, а бывает и тем, что автор вынес некоторую часть работ «на завтра», а так же тем, что задел есть, как решать известно — всё в наших руках.
Не стоит забывать, что для нас это бесплатно.
Станислав, вы все не о том. Я все это понимаю. Вы не поняли моей мысли.
Я как человек новый в МодХ, выбрал для магазина именно его, потому что на поверхности была информация — 1) Позволяет создавать свои TV и по ним делать выборку.
2) Есть МиниШоп, отличный удобный компонент для своих магазинов с богатым функционалом.
Казалось бы — выбор сделан. Но вот информация которая лежала уже намного глубже —
1) выборка по большому количеству TV на большом количестве ресурсов — не реальна без серьезных доработок.
2) МиниШоп использует TV по мимо основных параметров, что возвращает нас к пункту 1.
Я не вижу смысла разводить тут флуд. Сейчас я ищу варианты решения своих задач. Надеюсь мне тут помогут :)
Я как человек новый в МодХ, выбрал для магазина именно его, потому что на поверхности была информация — 1) Позволяет создавать свои TV и по ним делать выборку.
2) Есть МиниШоп, отличный удобный компонент для своих магазинов с богатым функционалом.
Казалось бы — выбор сделан. Но вот информация которая лежала уже намного глубже —
1) выборка по большому количеству TV на большом количестве ресурсов — не реальна без серьезных доработок.
2) МиниШоп использует TV по мимо основных параметров, что возвращает нас к пункту 1.
Я не вижу смысла разводить тут флуд. Сейчас я ищу варианты решения своих задач. Надеюсь мне тут помогут :)
То есть мы таки приходим к тому, что корень не в MODX, а в том, что Вы хотели «взять и съесть»?
Всё бы ничего, но ключевой + MODX не в том, что много чего есть готового — это к Joomla и иже с нею, а в том, что в MODX нет ограничений для тех, кто умеет больше, чем жмакнуть кнопочку «создать документ.
В Joomla и иже с нею многое просто не получится сделать. В отличие от MODX. В этом ключевое преимущество MODX.
Ну, и, конечно, Вам помогут, если что, если немного и ненавящиво)
Всё бы ничего, но ключевой + MODX не в том, что много чего есть готового — это к Joomla и иже с нею, а в том, что в MODX нет ограничений для тех, кто умеет больше, чем жмакнуть кнопочку «создать документ.
В Joomla и иже с нею многое просто не получится сделать. В отличие от MODX. В этом ключевое преимущество MODX.
Ну, и, конечно, Вам помогут, если что, если немного и ненавящиво)
Используйте сниппет getProducts ;)
504 Gateway Time-out — получаю при использовании getPage на msGetResources при поптыки отобрать по одному TV :(
Что же не так? Мне 6 TV для отбора нужны…
Что же не так? Мне 6 TV для отбора нужны…
Василий, вывожу ресурсы через pdoTools — выводится быстро, но без параметров магазина.
Если выводить через снипет snippet.ms_products — ничего не выводит…
Если выводить через снипет snippet.ms_products — ничего не выводит…
Держи сыренький, плохенький сниппет. Но вроде работает с MS1 и фильтрует по ТВ.
Это адаптация сниппета от MS2, на скорую руку. Пример вызова:
Это адаптация сниппета от MS2, на скорую руку. Пример вызова:
[[!ms1Products?
&limit=`10`
&parents=`0`
&includeTVList=`popular,new`
&where=`{"Data.price:>=":100,"TVnew.value":1,"TVpopular.value":1}`
]]
Обрати внимание на ТВ в where.
Спасибо большое! Сейчас буду побывать!
Василий, я потестил сниппет, и вот что у меня получается:
Без фильтров выводится все, но в виде массива, шаблон полностью игнорируется, как и страницы так и вывода.
С фильтрами либо вобще ничего не выводит, либо вот такую ошибку —
сам вывод:
Без фильтров выводится все, но в виде массива, шаблон полностью игнорируется, как и страницы так и вывода.
С фильтрами либо вобще ничего не выводит, либо вот такую ошибку —
Warning: Invalid argument supplied for foreach() in /home/kolesni9/public_html/core/components/pdotools/model/pdotools/pdofetch.class.php on line 103
а следом вывод, но без учета фильтров… сам вывод:
[[!ms1Products? &limit=`10` &parents=`3` &includeTVList=`d` &where=`{"TVd.value":15}` ]]
На что конкретно обратить внимание в TV?
Как ты писал админки для сайтов, если не смотришь в код?
А там было вот это, в середине:
А там было вот это, в середине:
echo '<pre>';
print_r($pdoFetch->getTime());
print_r($rows);
die;
Вот, еще немного переделал. Дальше сам.
У меня все было намного проще. Все когда то начинали с простых самописных систем.
Да, я не изучал ваш код. При такой постановки вопроса, мне наверно надо было вас не отвлекать и самому написать, если я правильно вас понимаю… Я же «админки писал», а тут такое спрашиваю… детский сад…
Спасибо, буду разбираться.
Да, я не изучал ваш код. При такой постановки вопроса, мне наверно надо было вас не отвлекать и самому написать, если я правильно вас понимаю… Я же «админки писал», а тут такое спрашиваю… детский сад…
Спасибо, буду разбираться.
Василий, фильтры не работают даже на цену.
Нужна помощь за которую я готов платить. Можете кого нибудь порекомендовать? Если у вас нет на это времени…
Нужна помощь за которую я готов платить. Можете кого нибудь порекомендовать? Если у вас нет на это времени…
У меня фильтруются товары при использовании этого сниппета. И по цене и по ТВ, всё через параметр &where=``.
Сниппет работает очень просто — создаётся один запрос в БД, выбирающий все подходящие товары с джоином их свойств. Ты его можешь увидеть установкой параметра &showLog=`1`, и самостоятельно проверить в PhpMyAdmin.
Если у тебя и сейчас ничего не работает, ничем помочь уже не могу.
Работать с первым miniShop сразу после выпуска второго у меня нет ни времени ни желания. Порекомендовать тоже некого, разве что разместить объявление вот тут.
Сниппет работает очень просто — создаётся один запрос в БД, выбирающий все подходящие товары с джоином их свойств. Ты его можешь увидеть установкой параметра &showLog=`1`, и самостоятельно проверить в PhpMyAdmin.
Если у тебя и сейчас ничего не работает, ничем помочь уже не могу.
Работать с первым miniShop сразу после выпуска второго у меня нет ни времени ни желания. Порекомендовать тоже некого, разве что разместить объявление вот тут.
А второй miniShop без серьезных доработок мои задачи не решит?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.