К содержанию

Получить значения 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
7 391
Реклама

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

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