Проблема с радиокнопкой в MsSearch2
Вообщем проблема в след.
У товара есть тв параметр amount, в котором хранится количество товара на складе
По инструкции добавлен свой класс фильтрации
www.eurosvet-nn.ru/%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3/
Значения для данной радиокнопки выводятся правильные, фильтр работает. Но вот только при выборе например пункта «В наличии», пункт «Нет в наличии» становится недоступным.
У товара есть тв параметр amount, в котором хранится количество товара на складе
По инструкции добавлен свой класс фильтрации
<?php
class myCustomFilter extends mse2FiltersHandler {
// За образец берем стандартный buildBooleanFilter и немного его меняем
public function buildAmountFilter(array $values) {
if (count($values) < 2 && empty($this->config['showEmptyFilters'])) {
return array();
}
$results = array();
foreach ($values as $value => $ids) {
$title = ($value <= 0)
? $this->modx->lexicon('mse2_filter_availability_no')
: $this->modx->lexicon('mse2_filter_availability_yes');
$value = $value <= 0 ? '0' : '1';
if (!isset($results[$value])) {
$results[$value] = array(
'title' => $title
,'value' => $value
,'type' => 'number'
,'resource' => array()
);
}
foreach ($ids as $id) {
$results[$value]['resources'][] = $id;
}
}
ksort($results);
return $results;
}
// Собственно фильтрация, берём за основу filterNumber
public function filterAmount(array $requested, array $values, array $ids) {
$matched = array();
$value = $requested[0];
$tmp = array_flip($ids);
foreach ($values as $number => $resources) {
if ($value && $number > 0) {
foreach ($resources as $id) {
if (isset($tmp[$id])) {
$matched[] = $id;
}
}
}
elseif (!$value && $number <= 0) {
foreach ($resources as $id) {
if (isset($tmp[$id])) {
$matched[] = $id;
}
}
}
}
return $matched;
}
}
На страницу вывода каталога добавляю след. код[[!mFilter2?
&paginator=`pdoPage`
&limit=`5`
&parents=`342`
&hideContainers=`1`
&element=`msProducts`
&filters=`
ms|price:number
,parent:parents
,msoption|tags
,ms|vendor:vendors
,tv|amount:amount
`
&suggestionsRadion=`tv|amount`
&class=`msProduct`
&sort=`product|pagetitle:asc`
&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
&tplFilter.row.tv|amount=`tpl.mFilter2.filter.radio`
&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
&tpls=`tpl.msProducts.row,tpl.msProducts.row2`
&showLog=`0`
&fastMode=`0`
&includeContent=`0`
]]
Ссылка на каталог:www.eurosvet-nn.ru/%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3/
Значения для данной радиокнопки выводятся правильные, фильтр работает. Но вот только при выборе например пункта «В наличии», пункт «Нет в наличии» становится недоступным.
Комментарии: 1
Надо менять родной javascript.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.