pdoPage и массивы параметров в $_GET

Пишу фильтрацию для каталога, и возникла следующая проблема:
— при передаче массивов GET-параметров, ссылки, формируемые pdoPage, не дополняются условиями выборки.

Т.е. при URL
site.ru/catalog/?filter_price[]=500&filter_price[]=10000
ссылки, сгенерированные pdoPage, выглядят как
site/ru/catalog/?page=2&
Хотя по логике должны выглядеть как
site/ru/catalog/?page=2&filter_price[]=500&filter_price[]=10000
Может быть, есть какое-то решение данной проблемы, кроме правки сниппета pdoPage, или придётся переписывать фильтрацию без использования массивов GET-параметров?
Сергей С.
29 июля 2017, 19:27
modx.pro
985
0

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

Сергей С.
30 июля 2017, 14:58
+1
Временно отредактировал pdopage.class.php:
Строка 222, было:
foreach ($_GET as $key => $val) {
                    $request[$key] = rawurldecode($val);
            }
Стало:
foreach ($_GET as $key => $val) {
                if (count($_GET[$key])<2){
                    $request[$key] = rawurldecode($val);
                } else {
                    foreach($_GET[$key] as $arr_key => $arr_val){
                        $request[$key][$arr_key] = rawurldecode($arr_val);
                    }
                }
            }
    Сергей С.
    02 августа 2017, 12:42
    0
    Чтобы избежать лишних дубликатов, надо немного подредактировать вышеуказанный код:
    $request[$key][] = rawurldecode($arr_val);
    Иначе у элементов массивов указывается индекс:
    site/ru/catalog/?page=2&filter_price[0]=500&filter_price[1]=10000
    ©Тихо сам с собою я веду беседу
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2