TV-JSON to templated output

     [[good_prop_or_content?
        &content=`[[+content]]`
        &tvname=`good_prop`
        &tpl =`good_prop.tpl`
        &docid = `[[+id]]`
        &outputSeparator=`, `
     ]]
_____________________________________________________
tv  "good_prop":
Тип ввода: MIGX
Вкладки формы:
[
{"caption":"Свойства товара", "fields": [
    {"field":"prop_name","caption":"Свойство"},
    {"field":"prop_value","caption":"Значение"}
]}
]
Разметка колонок:
[
{"header": "Свойство", "width": "100", "sortable": "true", "dataIndex": "prop_name"},
{"header": "Значение", "width": "200", "sortable": "true", "dataIndex": "prop_value"}
]
_____________________________________________________
chunk  "good_prop.tpl":
[[+prop_name]]: [[+prop_value]]

_____________________________________________________
snippet "good_prop_or_content":

$output = '';
$outArr = array();
$page = $modx->getObject('modResource', $docid);
$TVValue = $page->getTVValue($tvname);
$tvArr = json_decode($TVValue,1);
if(is_array($tvArr)){
    foreach($tvArr as $arr){
        $outArr[] = $modx->getChunk($tpl, $arr);
    }
    $output = implode($outputSeparator,$outArr);
} else {
    $output = $content;
}
return $output; //print_r($tvArr,1);