Почему в 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. В чём может быть причина?    Комментарии: 7
                Может следуют тут прописать полную ссылку:
                    &pageLinkScheme=`/[[+uri]]/[[+pageVarKey]]-[[+page]]`            
                [[+uri]] — пустая переменная            
                    
                Ну так, опечатался:
                    [[*uri]]            
                При использовании &pageLinkScheme=`/[[*uri]]/[[+pageVarKey]]-[[+page]]` дублируется алиас родителя: novosti/novosti/page-3
Проблема вообще странная: каждый новый переход по ссылкам пагинации подставляет page-N к текущему адресу, а не к родительском. В итоге URL получается novosti/page-3/page-2/page-4/page-5 и т.д.
                    Проблема вообще странная: каждый новый переход по ссылкам пагинации подставляет page-N к текущему адресу, а не к родительском. В итоге URL получается novosti/page-3/page-2/page-4/page-5 и т.д.
                Уберите вообще pageLinkScheme            
                    
                Нельзя, т.к. используется ЧПУ            
                    
                Решается добавлением в плагин обработки 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);
}
}
                    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);
}
}
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.