Применение первого фильтра по умолчанию в mFilter
Доброго времени суток!
Знает ли кто-нибудь, как по умолчанию применять первое значение из фильтра?
То есть выводится список значений, при клике по каждому из них изменяется список доступных товаров.
Как можно сделать, чтобы первый пункт был по-умолчанию отмечен и давалась выборка по этому пункту?
Пока приходит в голову только такой вариант — вклиниться в mfilter и там, где выполняется проверка на get параметры вставить свое условие — если параметры пустые, то передать в фильтр свои значения.
UPD:
Пока ждал ответов — сам решил :)
Решение под катом.
Немного модифицировал mFilter2, после строки:
Если страница загружается без указанного параметра covering — он добавляется принудительно из сниппета getFirstColor.
Сниппет getFirstColor делает примерно такой же запрос, как getMsValues в filters.class.php и возвращает мне первое из значений фильтра.
Знает ли кто-нибудь, как по умолчанию применять первое значение из фильтра?
То есть выводится список значений, при клике по каждому из них изменяется список доступных товаров.
Как можно сделать, чтобы первый пункт был по-умолчанию отмечен и давалась выборка по этому пункту?
Пока приходит в голову только такой вариант — вклиниться в mfilter и там, где выполняется проверка на get параметры вставить свое условие — если параметры пустые, то передать в фильтр свои значения.
UPD:
Пока ждал ответов — сам решил :)
Решение под катом.
Немного модифицировал mFilter2, после строки:
if (strpos(implode(array_keys($_GET)), $mSearch2->config['filter_delimeter']) !== false || !empty($mSearch2->aliases)) {
Добавил:if(!$_REQUEST['covering']) {
$firstColor = $modx->runSnippet('getFirstColor',array(
'ids' => $ids
));
$_REQUEST['covering'] = $firstColor;
};
Собственно что тут происходит (у меня лично это обычно самый популярный вопрос): Если страница загружается без указанного параметра covering — он добавляется принудительно из сниппета getFirstColor.
Сниппет getFirstColor делает примерно такой же запрос, как getMsValues в filters.class.php и возвращает мне первое из значений фильтра.