Нужна подсказка по where в MsProduct
        В снипете вызываю .$modx->runSnippet('msProducts',$option_par). и в
$option_par указываю
'where' => '{«Data.is_general:=»:1,«OR:id:IN»:'.$dop.'}',
где .$dop. это строка с id через запятую. И само собой одиночкая ковычка не дает записи работать. 'where' => '{«Data.is_general:=»:1,«OR:id:IN»:"'.$dop.'"}', тоже неработает. Само собой если прописать id просто руками без переменной, 'where' => '{«Data.is_general:=»:1,«OR:id:IN»:1234,5678,89654,4848}' то все работает. Прошу помощи. Вроде все где-то на поверхности но всю голову уже сломал.
    
    
                                                                                
            $option_par указываю
'where' => '{«Data.is_general:=»:1,«OR:id:IN»:'.$dop.'}',
где .$dop. это строка с id через запятую. И само собой одиночкая ковычка не дает записи работать. 'where' => '{«Data.is_general:=»:1,«OR:id:IN»:"'.$dop.'"}', тоже неработает. Само собой если прописать id просто руками без переменной, 'where' => '{«Data.is_general:=»:1,«OR:id:IN»:1234,5678,89654,4848}' то все работает. Прошу помощи. Вроде все где-то на поверхности но всю голову уже сломал.
Комментарии: 9
                Просто удали одинарные кавычки. А ещё конкатенация строк в Fenom делается через '~', а не через точку.            
                    
                Но это не феном. Это в сниппете там php.            
                    
                Тогда код спиппета покажи            
                    
                ну там огромный сниппет для ajax в нем подгружается список товаров. То есть внутри сниппета мы вызываем сниппет. И передаем параметры, а в выборке 'where' => '{«Data.is_general:=»:1,«OR:id:IN»:'.$dop.'}', 
Смысл его весь скидывать если загвоздка в паре строк:
$dop = '83595,5693,4659';
$option_par = array(
'parents' => $parent,
'where' => '{«Data.is_general:=»:1,«OR:id:IN»:'.$dop.'}',
'limit' => 0,
'tpl' => 'tpl.checkbox',
);
$content = $modx->runSnippet('msProducts',$option_par);
                    Смысл его весь скидывать если загвоздка в паре строк:
$dop = '83595,5693,4659';
$option_par = array(
'parents' => $parent,
'where' => '{«Data.is_general:=»:1,«OR:id:IN»:'.$dop.'}',
'limit' => 0,
'tpl' => 'tpl.checkbox',
);
$content = $modx->runSnippet('msProducts',$option_par);
                Скорее всего тут 
                    'where' => '{«Data.is_general:=»:1,«OR:id:IN»:'.$dop.'}',получается не валидный json. Думаю должно быть так'where' => '{"Data.is_general:=":1,"OR:id:IN":"'.$dop.'"}',            
                Так пробовал. не работает в самом начале оба эти варианта указал.            
                    
                Во первых, $dop должна быть не строка, а массив и where вы можете указать тоже в виде массива:
                    //как должен выглядеть $dop = [1234,5678,89654,4848];
$option_par['where'] = [
    'Data.is_general' => 1,
    'OR:id:IN' => $dop
]
$modx->runSnippet('msProducts',$option_par);            
                Попробую. Спасибо. Where уже в массив перевёл т.к. там несколько условий and, OR.            
                    $dop = [83595,5693,4659];
$option_par = array(
    'parents' => $parent,
    'limit' => 0,
    'tpl' => 'tpl.checkbox',
    'where' => [
        "Data.is_general" => 1,
        "OR:id:IN" => $dop
    ]
);
$content = $modx->runSnippet('msProducts',$option_par);            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.