Привет всем. Подскажите пожалуйста, как можно получить TV поля по id категории в которое они лежат. Перекопал все доки, но там нет такого.
Вот держи кусок сниппета, как раз то что нужно (не забываем ставить лайки через carmabot, цитируя комментарий с надписью ++) 😀
if (!isset($tvs) || empty($tvs)) {
return '';
}
$tvs = explode(',',$tvs);
$q = $modx->newQuery('modTemplateVarResource');
$q->select(array(
'modTemplateVarResource.value as value',
'tv.caption as caption',
'tv.name as name',
'tv.type as type'
));
$q->innerJoin('modTemplateVar', 'tv', 'tv.id = modTemplateVarResource.tmplvarid');
$q->where(array(
"modTemplateVarResource.contentid" => $modx->resource->get('id'),
"tv.name:IN" => $tvs,
"tv.category:IN" => [9,68] // Выведутся только TV, которые в категории Характеристики
));
$q->limit(50);
$q->sortby('FIELD(tv.name, "'.implode('","',$tvs).'")');
$q->prepare();
$q->stmt->execute();
$result = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
$output = "";
foreach ($result as $v) {//ну дальше ты понял}