Задача - вывести списосок всех или почти всех TV-параметров данного ресурса в связке Название tv-парметра — Значение tv-параметра чтобы получить симпатичную табличку в частности с характеристиками товара в магазине. Возможно кто-то может вопросить "А зачем такое городить, когда можно просто использовать MIGX-таблицы
?". Все верно, отличный, экономичный способ, но это магазин, и товары фильтруются с помощью mFilter2
, а дзен кастомных методов фильтрации на данный момент не освоен. В любом случае сниппет имеет право на жизнь.
Код сниппета print_props
if(empty($tpl) || !$modx->getChunk($tpl)){ return echo "Не указан или не существует чанк"; } $q = $modx->newQuery('modTemplateVarResource'); $q->select(array( 'modTemplateVarResource.value as value', 'tv.caption as name' )); $q->innerJoin('modTemplateVar', 'tv', 'tv.id = modTemplateVarResource.tmplvarid'); $q->where(array( "modTemplateVarResource.contentid" => $modx->resource->get('id'), "tv.category" => "0" // Выведуться только TV, которые без категории (можно удалить или заменить категорию) )); $q->limit(50); $q->prepare(); $q->stmt->execute(); $result = $q->stmt->fetchAll(PDO::FETCH_ASSOC); $output = ""; foreach($result as $v){ $output .= $modx->getChunk($tpl,$v); } echo $output;
Доступные плейсхолдеры - [[+name]]
,[[+value]]
.
- Пример чанка print_props_tpl:
<li>[[+name]]: [[+value]]</li>
- Пример вызова:
[[!print_props?tpl=`print_props_tpl`]]
Комментарии (1)
Не писать ответ