Почему в ModX 3 при формировании блока постраничного вывода через pdoPage генерируются некорректные ссылки?

Пытаюсь сделать вывод новостей на сайте (через Collections).
<div class="container">
        <div class="row">

            [[!pdoPage?
                &tpl=`listItem`
                &parents=`[[*id]]`
                &limit=`10`
                &pageLinkScheme=`/[[+pageVarKey]]-[[+page]]`
            ]]
        </div>
        
        <div class="row mt-3">
            <div class="col">
                [[!+page.nav]]
            </div>
        </div>
    </div>
Пагинация выводится правильно, но вот ссылки на страницы из Пагинации почему-то формируются некорректно. Они формируются не относительно родителя, а относительно текущий страницы. Например, если открыть страницу page-3, то ссылка на страницу 2 будет иметь вид novosti/page-3/page-2. В чём может быть причина?
Markus
03 мая 2022, 18:54
modx.pro
674
0

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

Роман
04 мая 2022, 09:06
0
Может следуют тут прописать полную ссылку:
&pageLinkScheme=`/[[+uri]]/[[+pageVarKey]]-[[+page]]`
    Markus
    04 мая 2022, 11:20
    0
    [[+uri]] — пустая переменная
      Роман
      04 мая 2022, 12:12
      0
      Ну так, опечатался:
      [[*uri]]
        Markus
        04 мая 2022, 15:12
        0
        При использовании &pageLinkScheme=`/[[*uri]]/[[+pageVarKey]]-[[+page]]` дублируется алиас родителя: novosti/novosti/page-3

        Проблема вообще странная: каждый новый переход по ссылкам пагинации подставляет page-N к текущему адресу, а не к родительском. В итоге URL получается novosti/page-3/page-2/page-4/page-5 и т.д.
          Роман
          04 мая 2022, 16:01
          0
          Уберите вообще pageLinkScheme
            Markus
            04 мая 2022, 16:09
            0
            Нельзя, т.к. используется ЧПУ
    Пётр Марков
    28 сентября 2022, 14:48
    0
    Решается добавлением в плагин обработки OnPageNotFound костыля:
    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, '/'));
    }
    $_REQUEST[$req] = str_replace('/', '', $uri); // КОСТЫЛЬ
    if ($id) {
    $_GET[$pageVarKey] = $_REQUEST[$pageVarKey] = $matches[2];
    $modx->sendForward($id);
    }
    }
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7