Получение всех значений TV у ресурсов в MODX XPDO
Готовый скрипт на XPDO для MODX Revo, который получает все значения конкретного TV по его id у всех ресурсов.
На выходе мы получаем массив с результатами выборки.
<?php $tv_id = 5; // id нужного ТВ $res = array(); // Сюда записываются результаты $q = $modx->newQuery('modTemplateVarResource', array('tmplvarid' => $tv_id)); $q->select('contentid,value'); if ($q->prepare() && $q->stmt->execute()) { while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) { $res[$row['contentid']] = $row['value'].'
'; } } print_r($res);
Если встречаются одинаковые значения TV, то они выводится. Чтобы исключить повторы, нужно использовать sql-метод «groupby». Стоит только добавить его к параметры выборки.
<?php $tv_id = 5; // id нужного ТВ $res = array(); // Сюда записываются результаты $q = $modx->newQuery('modTemplateVarResource', array('tmplvarid' => $tv_id)); $q->select('contentid,value'); $q->groupby('value'); if ($q->prepare() && $q->stmt->execute()) { while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) { $res[$row['contentid']] = $row['value'].'
'; } } print_r($res);
Теперь повторы исключаться. Можно добавлять и другие критерии выборки.
Оставить комментарий