Сниппет для получения id родителей
        Здравствуйте,
В php и MODX api не силен, а возникла необходимость в своем сниппете для вывода id родителе по нескольким условиям.
Ситуация следующая
Меню состоит из двух уровней
-1. Основной родитель (категория деталей)
--1.2. Родитель (тип деталей). В тип деталей вложены сами товары, у них свой шаблон
У товаров есть тв поле применяемости, в ней указаны модели авто. (имеет множественный выбор с разделителем ||)
Меню выводится на странице модели авто.
В меню список деталей строиться из того какие товары есть для этого авто, т.е. если для какой то модели авто нет товаров в каком то конкретном типе деталей, то и этот тип не выводится в меню.
Вот мне как раз нужно получить id этих типов деталей, чтобы вставить во входные параметры getProducts.
Если я все правильно понял то сниппет получает на вход id основного родителя, перебирает товары внутри него, где у товаров в тв полей есть совпадение по заголовку текущей страницы и возвращает id родителей этих товаров (id типов деталей)
Добавлено: 05.05.17
В общем имею след код
Вопрос в следующем, как сделать чтобы и с множественным значением попадали документы
    
    
                                                                                
            В php и MODX api не силен, а возникла необходимость в своем сниппете для вывода id родителе по нескольким условиям.
Ситуация следующая
Меню состоит из двух уровней
-1. Основной родитель (категория деталей)
--1.2. Родитель (тип деталей). В тип деталей вложены сами товары, у них свой шаблон
У товаров есть тв поле применяемости, в ней указаны модели авто. (имеет множественный выбор с разделителем ||)
Меню выводится на странице модели авто.
В меню список деталей строиться из того какие товары есть для этого авто, т.е. если для какой то модели авто нет товаров в каком то конкретном типе деталей, то и этот тип не выводится в меню.
Вот мне как раз нужно получить id этих типов деталей, чтобы вставить во входные параметры getProducts.
Если я все правильно понял то сниппет получает на вход id основного родителя, перебирает товары внутри него, где у товаров в тв полей есть совпадение по заголовку текущей страницы и возвращает id родителей этих товаров (id типов деталей)
Добавлено: 05.05.17
В общем имею след код
<?php
$pagetitle = 'F10/F11 2009>'; //значение ТВшки, которое ищем
$TV_ID=6;//id твшки, которую провереяем на соответствие $pagetitle
   $q = $modx->newQuery('modResource');
   $q->innerJoin('modTemplateVarResource', 'tv', array('modResource.id = tv.contentid', 'tv.tmplvarid = ' . $TV_ID));
   $q->select(array('modResource.parent'));
   $q->where(array(
       'tv.value'=> $pagetitle
           ));
   
   if ($q->prepare() && $q->stmt->execute()){
       $results = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
                $ids_array=array();
           foreach($results as $result){
                   $ids_array[]=$result['parent']; 
                   
               }
   }
  //print_r ($ids_array); //для консоли
  return implode(',',$ids_array);но так как $TV_ID=6 имеет множественное значение, в выборку попадают только товары у которого этот ТВ имеет одно значение (если там указано несколько значений, то игнорируется)Вопрос в следующем, как сделать чтобы и с множественным значением попадали документы
Комментарии: 4
                Не стал вникать в суть вопроса, много написано))) pdoField не подходит?            
                    
                Думаю скорости мне это не прибавит. а необходима именно скорость работы.
Потому что товаров уже больше 12 тыс. И грубо говоря идет перебор всех товаров, с проверкой по ТВ, потом получение их родителя, и список родителей подставляется в getProduct.
Нужно именно получение списка этих родителей товара, и если делать сниппет только для этого, он справится быстрее чем любой многофункциональный компонент мне кажется
                    Потому что товаров уже больше 12 тыс. И грубо говоря идет перебор всех товаров, с проверкой по ТВ, потом получение их родителя, и список родителей подставляется в getProduct.
Нужно именно получение списка этих родителей товара, и если делать сниппет только для этого, он справится быстрее чем любой многофункциональный компонент мне кажется
                «больше 12 тыс» и «У товаров есть тв поле применяемости, в ней указаны модели авто. (имеет множественный выбор с разделителем ||)» 
— не совместимые вещи. если делать так, то будут тормоза дикие.
Делайте отдельную таблицу
id_товара
id_авто
            
                    — не совместимые вещи. если делать так, то будут тормоза дикие.
Делайте отдельную таблицу
id_товара
id_авто
                Здесь pdoField самое оно, нужно только с настройками поработать. Могу помочь, пишите в ВК, контакты в моем профиле.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.