Получить значения tv параметров
В сниппете надо получить значения 10 tv параметров.
Существует ли решение, чтобы одним запросом получить эти значения, а потом уже разбирать в сниппете? Спасибо
$1 = $modx->resource->getTVValue('tv1');
$2 = $modx->resource->getTVValue('tv2');
$3 = $modx->resource->getTVValue('tv3');
$4 = $modx->resource->getTVValue('tv4');
…Существует ли решение, чтобы одним запросом получить эти значения, а потом уже разбирать в сниппете? Спасибо
Комментарии: 5
можно получать в виде параметра из сниппета, там задавать ТВ через запятую, а в самом сниппете ловить массив из них и потом обрабатывать
[[snippet? &tvs=`tv1,tv2,tv3,tv4`]]
...
$alltvs = explode(',',$tvs);
foreach($tvs as $tv){
... $modx->resource->getTVValue(tv);
}
Во, типа того =)
Ну как-то типа так
[[!snippet& ?resId=`[[*id]]`]]
А в сниппете написать
[[!snippet& ?resId=`[[*id]]`]]
А в сниппете написать
/* Получаем значения TV указанного ресурса */
$query = $modx->newQuery('modTemplateVarResource', array(
'contentid' => $resId,
));
$query->select('value');
$results = array();
if ($query->prepare() && $query->stmt->execute()) {
$results = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
}
Поправочка. Правильно вызывать сниппет так
[[!snippet? &resId=`[[*id]]`]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.