PdoPage ЧПУ не переходит при клике на пагинацию, как исправить?
При клике на ссылку допустим следующей странице, не переходит, но если ввести адрес что в этой ссылке оно переходит, а при клике на ссылку ничего не происходит, НЕТ ошибок как в консоли, так и в модиксе. Плагин делал.
Migx обернут в 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);
}
}
}
Комментарии: 2
Может дело в том что migx обернут в pdopage?
Решил
Для начало скопируем существующий js от pdopage
В скопированном js Делаем следующие действия:
1)Меняем в строке 22. выглядеть строка должна так
Будет вот так
Затем загружаем модифицированную копию pdopage js на сайт, копируем путь к файлу.
Далее в вызове pdopage добавим данный параметр
Довольно странно что такое не ввели изначально, вроде поменять 1 символ 2 раза, при том что остальная часть реализовано на 99%, почему не генерить регулярку на основе нового параметра с использованием pageLinkScheme, добавить новый параметр типо «pageLinkSchemeSeparator» и как бы все, далее тоже не сложно.
Для начало скопируем существующий 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» и как бы все, далее тоже не сложно.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.