Получить значения tv параметров

В сниппете надо получить значения 10 tv параметров.

$1 = $modx->resource->getTVValue('tv1');
$2 = $modx->resource->getTVValue('tv2');
$3 = $modx->resource->getTVValue('tv3');
$4 = $modx->resource->getTVValue('tv4');

Существует ли решение, чтобы одним запросом получить эти значения, а потом уже разбирать в сниппете? Спасибо
Николаевич
24 апреля 2015, 09:42
modx.pro
2
6 637
0

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

Сергей Скат
24 апреля 2015, 17:38
0
можно получать в виде параметра из сниппета, там задавать ТВ через запятую, а в самом сниппете ловить массив из них и потом обрабатывать
    but1head
    24 апреля 2015, 18:46
    +1
    [[snippet? &tvs=`tv1,tv2,tv3,tv4`]]
    ...
    $alltvs = explode(',',$tvs);
    
    foreach($tvs as $tv){
    	... $modx->resource->getTVValue(tv);
    }
    Сергей Шлоков
    24 апреля 2015, 22:59
    +2
    Ну как-то типа так
    [[!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);
    }
      Сергей Шлоков
      25 апреля 2015, 08:06
      0
      Поправочка. Правильно вызывать сниппет так
      [[!snippet? &resId=`[[*id]]`]]
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5