catalogFill: фильтр категорий и доступ к полной ссылке



  • Сделал в таблице MIGX дополнительные поля:
    category1 - название категории верхнего уровня
    category2 - название подкатегории.
    url - полная ссылка на товар

    1. Как при импорте записать туда значения категорий 1-го и 2-го уровней.
      Пытыюсь воспользоваться фильтром в конфиге, но не пойму как прописать категории

    Для названия товара все понятно -> $output_arr['content']['pagetitle']
    А вот как для категории не пойму.

    //разбивка по столбцам при импорте и экспорте (content|tv|category)
    $cf_config['content_row'] = array(
        array('Код',array('articul','content')),
        array('Категория',array(2,'category')),//2 - ID шаблона категории
        array('Подкатегория',array(2,'category')),//2 - ID шаблона подкатегории
        array('Наименование',array('pagetitle','content')),
        array('Описание',array('content','content')),
        array('Цена',array('price','content')),
        array('Ед. имз',array('unit','content'))
      );
    

    как в фильтре обратиться к этому массиву -> array('Категория',array(2,'category'))

    1. Как в фильтре получить доступ к столбцу таблицы migx

    2. Как получить в фильтре значение полной ссылки. Пытался в фильтре прописать так:

     $output_arr['content']['url'] = $output_arr['content']['uri'];
    

    не работает



  • как в фильтре обратиться к этому массиву -> array('Категория',array(2,'category'))

    1. Как в фильтре получить доступ к столбцу таблицы migx

    2. Как получить в фильтре значение полной ссылки. Пытался в фильтре прописать так:

     $output_arr['content']['url'] = $output_arr['content']['uri'];
    

    не работает



  • Покопался в коде и нашел:

    Данная строка вставляет в таблицу MIGX в поле category1 значение категории нулевого уровня

    $output_arr['content']['category1'] =  $output_arr['category'][0][1]; 
    

    а вот так вставляется значение 1 уровня, т.е. подкатегории:

     $output_arr['content']['category2'] =  $output_arr['category'][1][1];
    

    Осталось ответить на 3 вопрос:

    Как получить в фильтре значение полной ссылке.


  • Администраторы

    Как получить в фильтре значение полной ссылке.

    https://rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/class-reference/modx/modx.makeurl



  • Как в моем случае будет выглядеть функция, у меня таблица migx:
    Вот мои настройки:
    //Название класса таблицы товаров в БД
    $cf_config['className'] = 'ShopContent';
    //Название пакета таблицы товаров в БД
    $cf_config['packageName'] = 'shop';
    //Название поля ID родителя
    $cf_config['parent_field'] = 'resource_id';

    @Andchir сказал catalogFill: фильтр категорий и доступ к полной ссылке:

    Как получить в фильтре значение полной ссылке.

    https://rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/class-reference/modx/modx.makeurl



  • Эта функция выдает url из таблицы Ресурсов, а у меня таблица MIGX



  • Все я туплю. ссылку можно сформировать, просто добавим alias товара.
    Как теперь мне узнать id категории в конфиге?


  • Администраторы

    Как теперь мне узнать id категории в конфиге?

    Видимо так

    $output_arr['content']['resource_id'];
    


  • Andchir - Огромное спасибо.
    $output_arr['content']['resource_id']; - не работает
    Сделал по другому.
    Немного передел catalogfill.class.php

    добавил вот такие строчки:

    $tempArr['content']['url'] = $this->makeAlias($tempArr['category'][0][1]).'/'.$this->makeAlias($tempArr['category'][1][1]);
    $tempArr['content']['url'] = preg_replace('/-{2,}/','-',$tempArr['content']['url']); //Удаляем дублирующие дефисы
    

    А потом в фильтре формирую вот такую ссылку:

     $output_arr['content']['url'] ='/catalog/'.$output_arr['content']['url'].'/'.$output_arr['content']['articul'].'.html';
    


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