Проблема с предварительными подсчётами в mFilter2

Александр, здравствуйте! Не так давно вышла новая версия mSearh2, там затронуты изменения касаемо кэширования предварительных результатов в mFilter2 и если расширен класс и фильтруешь по своей таблице, возникают проблемы с подсчётами, до выхода новой версии это решалось добавление кода в файл custom.class.php:
//Правильные подсчёты в mFilter2
public function filterDefault(array $requested, array $values, array $ids) {
     return array_unique(parent::filterDefault($requested,$values,$ids));
}
но с выходом новой версии mSearh2 это уже не работает, код который был изменён и конкретно в нём проблема, находится в файле: msearch2.class.php начиная со строки 1257 по 1259 и 1308 по 1408, я скинул файл на яндекс диск, посмотрите пожалуйста и второй файл где конкретно указаны куски кода которые были изменены в новой версии с сравнением со старым файлом: https://yadi.sk/d/htWmAXJ-XjXSyw?w=1 подскажите пожалуйста для правильной работы подсчётов в mFilter2, что нужно изменить в файле custom.class.php учитывая эти изменения?

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

Александр Мальцев
Александр Мальцев
Здравствуйте! Напишите автору компонента об этой проблеме. Сейчас, как вариант, можете изменить код в «msearch2.class.php».
На 1257 строчке поменяйте код на тот, который был до версии 1.14:
//if (!isset($methods[$filter])) {
if (!preg_match('/(.*?)' . preg_quote($this->config['filter_delimeter'], '/') . '(.*?)/', $filter)) {
Четыре строчки, начиная с 1325, закомментируйте:
/*$cache_key = sha1(json_encode($key));
if ($res = $this->modx->cacheManager->get('msearch2/sugg_' . $cache_key)) {
  return $res;
}*/
Александр
Александр
При таком варианте подсчёты работают. Огромное Вам спасибо! Обязательно сообщу Василию по этой проблеме.