Последние темы


Получить имена и значения всех 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;
    }
  • @rpa, данное решение создает один столбец из array('FIELD',array('id','tv'))), и заполняет его значениями полей MIGX с разделением ||. А возможно ли под каждое поле создать свой столбец с заданным заголовком, при этом столбец FIELD чтобы не создавался вовсе? Спасибо 🙂

 

Последние комментарии

  • @Yiliy

    то есть без имени

    Видимо потому что у вас отключено, а в XML алиаса я не увидел

    //автоматически генерировать псевдоним (alias) при импорте //false - выключено; true - генерировать с переводом в транслит; 'notranslit' - генерировать без перевода в транслит. $cf_config['imp_autoalias'] = false;

    Читать далее
  • Y

    Проблема была оказывается в том, что оно не видело
    <Title>pagetitle</Title>
    Я поменял на
    <Title><item>pagetitle</item></Title>
    и все импортировалось успешно но теперь в каталогах вместо url ресурсов отображается /сайт/каталог/.html
    то есть без имени и после перехода на страницу товара появляется ошибка 403

    Читать далее
  • M

    Поменялся дизайн.
    Новая корзина, всплывающие окна и прочие фишки сверстаны. Нужно переподключить, разобраться с возможным конфликтом JS.
    Что, где и как лежит -- покажу.

    Скайп mas_hate

    Читать далее
  • В $cf_config['imp_xml_structure'] должен быть XML, который в файле повторяется. Также нужно настроить
    параметр $cf_config['imp_xml_itemsparent_path']. Покажите полный файл, который импортируете.

    Читать далее