[mSearch] Производитель +фильтрация товаров в MS2

как в выводе mFilter выводить имя вендора а не ID?
[[!mFilter?
  &resources=`[[!getCatIds]]`
  &includeTVs=`0`
  &includeMS=`1`
  &includeMSList=`price,new,favorite,popular,size,color,vendor`
  &sortFilters=`ms_new,ms_favorite,ms_popular,ms_size,ms_color,ms_price`
  &tpl=`tpl.msProducts.row`
]]
просто vendor выводит id

Ну на странице товара в чанке msProduct.content было проще, просто указал ".name" к [[+vendor]] =
[[+vendor.name]] и все пучком (:

Саша Иващенко
12 июня 2013, 02:10
modx.pro
2 033
0

Комментарии: 9

    Саша Иващенко
    12 июня 2013, 09:02
    0
    Спасибо, но мне сегодня не везет и все с 1го раза не получается :)
    modx.pro/help/1258/#comment-10843
    или там ошибка или ошибка.

    создал сниппет с именем, вставил туда код, добавил: имя к vendor и производители вообще не выводятся, конфликт версий?

    вот вызов в mFilter
    &includeMSList=`price,new,favorite,popular,size,color,vendor:extra_filter_vendor`
      Саша Иващенко
      12 июня 2013, 09:16
      0
      и это, в журнале ошибок нет и в консоли тоже, но vendor:extra_filter_vendor не выводится и следующие параметры которые я за ним пишу тоже не выводятся
      Саша Иващенко
      12 июня 2013, 14:23
      0
      дописываю :vendor_extra_filter и ничего не выводит
      код чанка mFilter
      <form action="[[~[[*id]]]]" method="post" id="mFilter">
        [[!mFilter?
          &resources=`[[!getCatIds]]`
          &includeTVs=`0`
          &includeMS=`1`
          &includeMSList=`price,new,favorite,popular,size,color,<b>vendor:vendor_extra_filter</b>`
          &sortFilters=`ms_new,ms_favorite,ms_popular,ms_size,ms_color,ms_price`
          &tpl=`tpl.msProducts.row`
        ]]
      </form>
      Код сниппета vendor_extra_filter
      $ids = $scriptProperties['ids'];
      $param = $scriptProperties['param'];
      if (empty($ids) || empty($param)) {return false;}
      
      $q = $modx->newQuery('msVendor');
      $q->leftJoin('msProductData', 'Data', 'Data.vendor = msVendor.id');
      $q->select('Data.id,msVendor.name');
      $q->where(array('Data.id:IN' => $ids));
      
      if ($q->prepare() && $q->stmt->execute()) {
      	$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
      	$arr = array(
      		'name' => 'Производитель'
      		,'type' => 'text'
      		,'values' => array()
      	);
      	foreach ($res as $v) {
      		$arr['values'][$v['name']][] = $v['id'];
      	}
      	return json_encode($arr);
      }
      не пашет, может снова что то не так в обновлении?
        Василий Наумкин
        12 июня 2013, 14:24
        0
        Ты в курсе, что если нечего фильтровать — фильтр не выводится?

        Судя по картинке в посте, вендоры товарам у тебя не назначены.
          Саша Иващенко
          12 июня 2013, 14:27
          0
          Назначены, в товарах выбран производитель и в списке производителей они добавлены и выводятся.

            Саша Иващенко
            12 июня 2013, 14:43
            0
            во блин, там поле есть «Ресурс» я для одного производителя его указал и все появились не понятно… потом снова его убрал и производители появились…

            кеш сайта чистил постоянно
              Petruha
              14 июня 2015, 00:11
              0
              аналогично, что то сразу не пошло, только после ресурсов…
            Petruha
            14 июня 2015, 00:11
            0
            Привет Василий.
            Удели плз минутку…

            Погуглил, инфы не нашёл…

            Есть ли возможность показывать «железно» филд vendor?
            Т.е.: к примеру у меня в разделе только телефоны nokia, и было бы круто выводить эту выборку (просто как неактивную). Сейчас просто если производитель в разделе только один, поле для фильтра по производителю не выводится, оно рендерится только если производителей как минимум 2.

            Можно ли это как то обойти (проблему думаю понятно обрисовал)?

            Спасибо.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        9