Саша, привет!
У тебя есть процессор, который получает данные товаров. Как правило это web/catalog/products/getdata. Вот тебе там и надо в метод setSelection() добавить дополнительные колонки. Или в методе afterIteration() уже в конечном массиве данных добавить элементы.
Ты скорее всего добавил в исходный TV сразу набор значений, к примеру X==1||XL==2 и т.п. Я же обычно делаю это на документах (там специально заведен контекст spravochniki). Вот если у тебя это было бы сделано на документах, то тебе бы только оставалось в setSelection() приджоинить таблицу документов по значениям-ключам TV-шек и все, получил бы названия размеров, цветов и т.п.
Но у тебя скорее всего готовый набор значений. Значит тебе надо сделать так: я специально для таких случаев вот написал сниппет на скорую руку:
<?php $elements = array(); if($id AND $doc = $modx->getObject('modTemplateVar', $id)){ if($els = $doc->elements){ $els = explode('||', $els); foreach($els as $el){ $a = explode('==', $el); if(isset($a[1])){ $el_value = $a[1]; } else{ $el_value = $a[0]; } $title = $a[0]; $elements[$el_value] = $title; } } } return isset($elements[$value]) ? $elements[$value] : null;
Пример вызова: [[getListValue?id=`10`&value=`[[*color]]` ]]
Параметры:
id — id TV-параметра.
value = значение TV-параметра.
Это для тех TV-шек, где данные четко перечислены в самом TV-параметре, к примеру Выберите цвет==0||Черный==1||Красный||Белый==3