PdoPage ЧПУ не переходит при клике на пагинацию, как исправить?

При клике на ссылку допустим следующей странице, не переходит, но если ввести адрес что в этой ссылке оно переходит, а при клике на ссылку ничего не происходит, НЕТ ошибок как в консоли, так и в модиксе. Плагин делал.
Migx обернут в PdoPage

[[!pdoPage?
        &element=`getImageList`
        &limit=`5`
        &ajaxMode=`default`
        &ajaxElemWrapper=`#pdopage`
        &ajaxElemRows=`#pdopage .rows`
        &ajaxElemPagination=`#pdopage .pagination`
        &ajaxElemLink=`#pdopage .pagination a`
        &pageVarKey=`refresher`
        &pageNavVar=`refresher.nav`
        &totalVar=`refresher.total`
        &pageLinkScheme=`/[[+pageVarKey]]-[[+page]]`
        &tvname=`refresherCourses`
        &tpl=`refresherCoursesTpl`
        &docid=`[[*id]]`
    ]]
Вот плагин на обработку не найденных страниц. ИВЕНТ СТАВИЛ.

<?php
    if ($modx->event->name == 'OnPageNotFound') {
        $req = $modx->getOption('request_param_alias');
        if (strpos($_REQUEST[$req], 'refresher') !== false) {
            $pageVarKey = 'refresher';
        } else if(strpos($_REQUEST[$req], 'proffesions') !== false){
            $pageVarKey = 'proffesions';
        } else {
            $pageVarKey = 'page';
        }
        
        if (preg_match("#.*?({$pageVarKey}-(\d+))#", $_REQUEST[$req], $matches)) {
            $uri = str_replace($matches[1], '', $matches[0]);
            $id = 0;
            if (!$id = $modx->findResource($uri)) {
                $id = $modx->findResource(rtrim($uri, '/'));
            }

            if ($id) {
                $_GET[$pageVarKey] = $_REQUEST[$pageVarKey] = $matches[2];
                $modx->sendForward($id);
            }
        }
    }
Alex
10 марта 2021, 15:20
modx.pro
238
0

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

Alex
10 марта 2021, 15:21
0
Может дело в том что migx обернут в pdopage?
    Alex
    10 марта 2021, 17:21
    0
    Решил
    Для начало скопируем существующий js от pdopage
    В скопированном js Делаем следующие действия:
    1)Меняем в строке 22. выглядеть строка должна так
    var match = href.match(new RegExp(key + '=(\\d+)'));
    Меняем знак "=" в регулярном выражении на ваш, в данном случае это "-".
    Будет вот так
    var match = href.match(new RegExp(key + '-(\\d+)'));
    2)Повторяем шаг выше только на строке 127, так же меняем знак "=" в регулярном выражении на свой в данном случае на "-".

    Затем загружаем модифицированную копию pdopage js на сайт, копируем путь к файлу.

    Далее в вызове pdopage добавим данный параметр
    &frontend_js
    и в значение этого параметра ставим путь вашего модифицированного файла. Будет примерно так
    &frontend_js=`/assets/static/js/pdotools/pdopage.edited.min.js`
    Чистим кэш, и радуемся!

    Довольно странно что такое не ввели изначально, вроде поменять 1 символ 2 раза, при том что остальная часть реализовано на 99%, почему не генерить регулярку на основе нового параметра с использованием pageLinkScheme, добавить новый параметр типо «pageLinkSchemeSeparator» и как бы все, далее тоже не сложно.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2