Получить имена и значения всех TV

Есть Шаблон товара, там куча ТВ полей.
Как вывести в табличном виде на страницу товара, типо так:
Артикул: Н45Г
Цвет: Жёлтый
Скажем у меня параметров (ТВ) 200, что бы руками не прописывать, как это сделать?
И выводить только те поля, которые заполнены.
Помогите пожалуйста! Заранее Благодарю!

@CSite
Если у вас 200 TV, то вам нужно сесть и подумать над структурой и уйти от того, чтобы было 200 TV.
Даже если вы настроите вывод, то со временем сайт будет сильно тормозить.

Я бы на вашем месте заменил их все одним migx полем, где в форму "по умолчанию" ввёл все нужные названия.
И тогда у каждого товара бы уже было migx тв, со всему нужными параметрами. Например, Цвет - ... (пустое значение по умолчанию). И так было бы даже удобнее.

Как тогда с импоот-эуспорт поступать?

@CSite насколько я помню, http://e-store.modx-shopkeeper.ru/katalog/dopolneniya-dlya-modx/import-eksport-tovarov.html вот это замечательное дополнение умеет экспорт/импорт делать. В том числе и migx полей.

А catalogfill можно настроить для импорта в minishop2?

@pooding то что оно это умеет я знаю, я не вижу всю картину пока что.
как же тогда тегМанагер2, сможет он с такой таблицей мигс работать?

@CSite Не пойму, вы хотите скрестить minishop и TagManager?
Не уверен, что эта связка работает.

Мне больше SHK нравится. Ну да ладно, можете привести пример ваших товаров из разных категорий, чтобы понять почему у вас 200 ТВ.

Что касается catalogFill и MIGX, то можно добавить пользовательские функции (на импорт и на экспорт), которые будут принимать понятный клиенту формат данных и преобразовывать его в JSON, которым оперирует MIGX (и обратно).
К примеру, имеем галерею товара (TV с ID=37). В таблице MIGX есть поля image и title.
В поле Excel-файла можно указывать так:

/images/catalog/image1.jpg||Заголовок1,/images/catalog/image2.jpg||Заголовок2

и т. д.
Функция для импорта тогда будет примерно такая:

//функция для фильтрации значений при ИМПОРТЕ
function filter_import($value_arr){
$output_arr = $value_arr;
 if(!function_exists("clrMIGX")) {
     function clrMIGX($inp){
        $arr = explode(',', $inp);
	    $count = 1;
	    foreach($arr as $item){
                $a_item = explode('||', $item);
                $image = $a_item[0];
                $image = str_replace('/', '\/', $image);
                $title = $a_item[1];
                $out .= '{"MIGX_id":"'.$count.'","image":"'.$image.'","title":"'.$title.'"},';
                $count++;
            }
        $out = str_replace("\n", "", $out);
        return '['.mb_substr($out, 0, -1).']';
    }
 }
//применяем функцию к TV с ID=37:
if(isset($output_arr['tv']['37'])) $output_arr['tv']['37'] = clrMIGX($output_arr['tv']['37']);	
return $output_arr;
}

Для экспорта можно сделать типа этого:

//функция для фильтрации значений при ЭКСПОРТЕ
function filter_export($value_arr,$doc_id=0){
$output_arr = $value_arr;    
if(!function_exists("clearMIGX")) {
function clearMIGX($input){
    $items = json_decode($input, true);
        foreach($items as $item){
	$image = $item['image'];
	$title = $item['title'];
	$out .= $image.'||'.$title.',';
        }
    return mb_substr($out, 0, -1);
}
}
//применяем функцию к TV с ID=37:
if(isset($output_arr[37])) $output_arr[37] = clearMIGX($output_arr[37]);    
return $output_arr;
}

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.