Вопрос по SeoFilter и pdoFetch. + migx

Всем доброго дня. В modx не особо силён, буду очень признателен, если кто сможет помочь.
Каким образом можно добавить фильтр на страницы, если вывод идёт следующим образом:
$sql = "SELECT c.`id`, c.`pagetitle`, c.`uri`, c.`introtext`, t.`value` as `img`, t1.`value` as `price`, t2.`value` as `smena`, t3.`value` as `price2`, t4.`value` as `alt`, t5.`value` as `hit` FROM `modx_site_content` c LEFT JOIN `modx_site_tmplvar_contentvalues` t ON t.`contentid` = c.`id` AND t.`tmplvarid`=8 LEFT JOIN `modx_site_tmplvar_contentvalues` t1 ON t1.`contentid` = c.`id` AND t1.`tmplvarid`=9 LEFT JOIN `modx_site_tmplvar_contentvalues` t3 ON t3.`contentid` = c.`id` AND t3.`tmplvarid`=60 LEFT JOIN `modx_site_tmplvar_contentvalues` t4 ON t4.`contentid` = c.`id` AND t4.`tmplvarid`=52 LEFT JOIN `modx_site_tmplvar_contentvalues` t5 ON t5.`contentid` = c.`id` AND t5.`tmplvarid`=105 LEFT JOIN `modx_site_tmplvar_contentvalues` t2 ON t2.`contentid` = c.`id` AND t2.`tmplvarid`=17  WHERE c.`parent`=".$ttypeid." ORDER BY c.`menuindex`";

foreach ($modx->query($sql) as $k => $val) {
            if(($cnt%4) == 0) $first = 'f'; else $first = '';
            $cnt++;
            $price = number_format($val['price'], 0, ' ', ' ');
            $pdo = $modx->getService('pdoFetch');
            $parameters = array(
                'resources' => $val['id'],
                'includeTVs' => 'specifications',
            );
            $specifications = $pdo->getCollection('modResource', null, $parameters);
А характеристики сделаны с помощью таблицы migx. Будет ли это работать в связке? И, если да, то каким образом это можно вывести?…
Вячеслав
17 мая 2022, 14:35
modx.pro
405
0

Комментарии: 6

Артур Шевченко
17 мая 2022, 14:57
0
MIIGX это json, фильтровать по нему не лучшая затея. А в целом, хорошо бы узнать задачу целиком.
    Вячеслав
    17 мая 2022, 15:09
    0
    Сайт аренды техники: все товары сделаны обычными ресурсами с доп. полями.
    Доп. поле — это migx, где каждая характеристика задаётся самостоятельно, т.е. просто текст, куда пишем, что душе угодно.
    gyazo.com/916ae191a827f9d9266ad5b7e6284131
    Именно по этим критериям и надо фильтровать товары в каталоге. Для чего и был выбран SeoFilter. Перед покупкой уточнили момент с обычными страницами, а не miniShop2
    Вывод товаров осуществляется способом, который указал выше (в сниппете через PdoFetch).
    Надеюсь, всё ясно )))
      Артур Шевченко
      17 мая 2022, 16:58
      0
      Меня тут считают любителем велосипедов, но у вас ВЕЛОСИПЕДИЩЕ))) SeoFilter несмотря на название фильтрацией не занимается. Для фильтрации в вашем случае нужно писать подобие mFilter2, которое будет получать все migx с опциями и формировать из них фильтры. В общем, велосипедить дальше. Либо переделать всё на minishop2 и подключить mFilter2.
        Вячеслав
        17 мая 2022, 17:00
        0
        Уже досталось это чудо от предыдущего разработчика… Судя по всему, так и придётся всё переделывать. Спасибо за обратную связь))
Александр Мельник
17 мая 2022, 16:07
+1
мне кажется, раз вы предварительно уточняли у разработчика компонента seofilter и купили его — вам нужно ему и писать в техподдержку.
уверен, что тот код который у вас приведен выше, вам не пригодится больше для вывода товаров.
ну и в целом, фильтровать что то у вас будет или невозможно или очень сложно.
Ваши значения заполняются вручную, в одном поле храниться как величина (10) так и единица измерения (кг), менеджер может в одном месте написать 3.4, а в другом 3,4 и так далее.
Мой совет — переделайте сайт используя минишоп и избавьтесь от характеристик на migx/
Это будет быстрее и правильнее.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    6