Как декодировать json tvsuperselect
Всем Привет, мне нужна помощь — установил компонент на добавление доп тв типа tvsuperselect, до этого у меня в карточке на страницах категорий и иных типах страниц выводилась информация из карточки всех tv полей кроме исключенных. Так вот — тв с типом tvsuperselect выводит информацию в формате json, а мне ее соответственно нужно как-то в человеческий вид преобразовать — помогите дополнить сниппет, ниже в примере видно что я пытался сделать, а именно добавить условный оператор прям в массив @ 'value' => ($tv->get('tmplvarid') == 48? json_decode($tv->get('value')): $tv->get('value')) @
1
[[ReturnAllTv?
&id=`[[+id]]`
&tpl=`row_par`
&exclude=``
&limit=`5`
]]
row_par - <li><b>[[+caption]]:</b> [[+value]]</li><?php
$out = '';
$ex = explode(',', $exclude);
if(!$id) $id = $modx->resource->get('id');
if(!$limit) $limit = 100;
$i = 0;
foreach ($modx->getIterator('modTemplateVarResource', array('contentid' => $id)) as $tv) {
$tvo = $modx->getObject('modTemplateVar', $tv->get('tmplvarid'));
if(!$tvo) continue;
if(in_array($tvo->get('name'), $ex)) continue;
$out .= $modx->getChunk($tpl, array(
'name' =>$tvo->get('name'),
'caption' => $tvo->get('caption'),
'value' => $tv->get('value')
));
$i++;
if($i > $limit) break;
}
return $out;Делал вот так:<?php
$out = '';
$ex = explode(',', $exclude);
if(!$id) $id = $modx->resource->get('id');
if(!$limit) $limit = 100;
$i = 0;
foreach ($modx->getIterator('modTemplateVarResource', array('contentid' => $id)) as $tv) {
$tvo = $modx->getObject('modTemplateVar', $tv->get('tmplvarid'));
if(!$tvo) continue;
if(in_array($tvo->get('name'), $ex)) continue;
$out .= $modx->getChunk($tpl, array(
'name' =>$tvo->get('name'),
'caption' => $tvo->get('caption'),
'value' => ($tv->get('tmplvarid') == 48 ? json_decode($tv->get('value')) : $tv->get('value'))
));
$i++;
if($i > $limit) break;
}
return $out;
Комментарии: 1