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


Получить имена и значения всех 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 чтобы не создавался вовсе? Спасибо 🙂

 

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

  • Что нового в Shopkeeper 4.0.3:

    Исправлено некорректное определение языка по умолчанию В настройках в админке скрываются пароли. Добавлена возможность загружать картинки для категорий. shopkeeper.js - добавлена функция updateProductsPrice() для поддержки текстовых полей для цены. Twig-функции contentList() и includeContent() вынесены в отдельный класс. Добавлено событие "order.before_create". Сортировка всех полей типа контента перетаскиванием. Автоматическое сохранение сортировки полей при сохранении типа контента (не нужно нажимать на отдельную кнопку). В интерфейсе админа добавлено поле поиска для списка Composer-пакетов.

    Скачать можно на главной странице https://modx-shopkeeper.ru/

    Читать далее
  • Вот этот плагин:
    0_1550334109280_screenshot_022.png

    Вроде по умолчанию он выключен. Надо включить. Но плагин работает только на редактирование товаров, при удалении он делалать ничего не будет. Только что проверил кнопку, всё работает корректно, фильтры удаляются и добавляются, когда нужно. Но нужно очищать корзину после удаления товаров (возможно баг).

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

    @Andchir Если нажимаю кнопочку "Обновить значения", то в фильтрах появляются как раз те самые удаленные значения фильтра.. Потом приходится Ручками выбирать эти удаленные значения.
    вот так выглядит Управление фильтрами когда удаляешь ручками: https://yadi.sk/i/_zw64CGkZ_sAYg
    А вот так выглядит когда просто нажимаешь "Обновить значения": https://yadi.sk/i/7WFbXC6xV5sQAw (красным выделено, то что приходится постоянно удалять

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

    Участник @Jokerit написал в TagManager2 отображает в фильтре удаленные значения TV-полей:

    tmRefresh

    Так и не смог найти как включить

    Читать далее