Всем доброго времени суток.
Есть два сайта: один на Wordpress, другой на Modx Revo. Но у них одинаковая проблема:
Подскажите пожалуйста, как правильно реализовать постраничную навигацию у ресурсов?
Как это сделано сейчас у меня: в шаблоне категории я прописал "page.nav". На странице категории навигация работает. А если указать page.nav в самом ресурсе, то он не работает.
Следовательно, на WP плагин WP-PageNavi тоже не работает.
Что хочу получить в итоге:
Чтобы работала навигация на странице материала (записи блога), не выходя на страницу категории. Чтобы пользователь просто переходил по полнотекстовым ресурсам в рамках одной категории.
Категория 1
...Страница 1
...Страница 2
...Страница 3
...Страница 4
Вот как раз "page.nav" не работает на страницах.
Плейсхолдер page.nav не может работать на странице записи, потому что он работает тогда, когда выводится коллекция записей через pdoPage. Если на странице нет вызова pdoPage, плейсхолдера попросту не будет.
Но тут вопрос в другом: чего конкретно вы хотите добиться, размещая пагинацию на странице записи? Куда будут вести ссылки на номера страниц?
Вот чего хочу добиться:
сайт.ру/категория1
На этой странице десять цитат.
Дальше идет пагинация. При клике на страницу 2 будет переход на вторую страницу сайт.ру/категория1/2.html затем сайт.ру/категория1/3.html и т.д.
Антон Пархоменко, тогда нужно определиться точнее, потому что вы пишете в вопросе:
Чтобы работала навигация на странице материала (записи блога), не выходя на страницу категории.
Так на странице материала или на странице категории?
Потому что на странице категории все вполне будет работать вот так:
<div id = "pdopage">
<div class = "rows">
[[!pdoPage?
...
]]
</div>
<div class = "pages">[[!+page.nav]]</div>
</div>
А на странице материала будет работать только в том случае, если pdoPage будет вызывать коллекцию ресурсов, и навигация будет осущесвляться по страницам этой коллекции.
Дмитрий, может быть я неправильно объясняю.
пожалуйста, посмотрите сайт-пример, где я такое нашел: https://toko-tebe.ru/pozdravleniya/
Там внизу пагинация. Если нажимать на 1-2-3-4, то будет осуществляться переход по страницам, в рамках одной категории.
Антон Пархоменко, ну так это самая обычная постраничная навигация! При условии, что каждая запись - это отдельный ресурс, реализуется все очень просто через pdoPage. Вот пример из документации:
В значении параметра parents должен находиться ID текущей категории, что, в принципе, по умолчанию и настроено, но можно прописать &parents=`[[*id]]`
Таким образом, находясь на странице категории, вы будете видеть все записи этой категории, разбитые на страницы.
Не забудьте только прописать параметр &tpl.
Дмитрий, Если каждая запись - это отдельный ресурс, то это все работает. Я пробовал.
Но если страница состоит из 1 ресурса с 10 блоками текста, то как реализовать навигацию без pdoPage?
Это если на каждой странице вручную прописывать ссылки на следующие страницы и предыдущие.
Антон Пархоменко, а как реализованы эти 10 блоков текста? MIGX? Одно текстовое поле? 10 TV-полей? Сколько таких страниц с блоками текста в категории? Или одна такая страница - это одна категория?
Пока чувствуется, что вы очень усложняете простую задачу)
Дмитрий, так блоки текста размечены с помощью <p>текст</p>. А между блоками можно <hr> вставить.
В категории может быть много страниц.
Я раньше так делал:
Антон Пархоменко, вы собираетесь постранично разбивать HTML-код при помощи pdoPage?
Я пока совершенно не понимаю, что вы хотите сделать.
Покажите структуру ваших категорий и записей.
Дмитрий, есть такая структура блога на примере WP:
Рубрика 1
Запись 1
Запись 2
Запись 3
Запись 4
Рубрика 2
Запись 1
Запись 2
Запись 3
Запись 4
Пагинация у WP работает на странице Категории, где выводится интротексты записей. Например, 2 страницы по 2 записи. Это все правильно.
А я хочу сделать вот как: захожу в Запись 1 читаю и в конце записи вижу пагинацию. На запись 2, Запись 3, Запись 4.
Сейчас я в каждой записи вручную прописываю ссылки на остальные записи этой же категории, чтобы посетитель из Записи 1 мог сразу уйти на Запись 2, Запись 3 и т.д.