Получение всех значений 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);
Теперь повторы исключаться. Можно добавлять и другие критерии выборки.
E-mail:
Telegram:
Оставить комментарий