форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Есть проблемы с созданием навигации по списку статей.
Использую <txp:newer> и <txp:older> для создания ссылок на более старые или более новые страницы.
Между ссылками стоит разделитель "|". Если открыть главную страницу, то ссылки на более новое нет, а разделитель стоит...
Вопрос: как показывать какой-либо текст, если есть более новые или более старые статьи, и не показывать, если таких нет?
Неактивен
Стандартных методов, по-моему, нет. Однако если на страницах разрешён php (в настройках TxP), то можно извратится, вставив вот такую строку:
<txp:php>global $thispage; if ($thispage['numPages']>1) echo 'ТЕКСТ';</txp:php>
Строка ТЕКСТ будет выводится если количество страниц в текущем отборе больше 1.
Если нужно что-то выводить в зависимости от того, есть ли страницы с более новыми или более старыми заметками, то в $thispage['pg'] хранится номер текущей страницы — можно его в условие вставить.
Неактивен
К сожалению этот метод не позволит решить проблему...
Если количество страниц больше 1, то мне нужно вставить ссылки с помощью тегов <txp:older> и/или <txp:newer>, а внутри <txp:php> они работать вроде как не будут.
Неактивен
Olegus t.Gl. написал:
Стандартных методов, по-моему, нет.
Есть хороший плагин chh_if_data. Выводит свое содержимое, если txp теги внутри плагина "сработали".
Неактивен
kr4shr написал:
К сожалению этот метод не позволит решить проблему...
Если количество страниц больше 1, то мне нужно вставить ссылки с помощью тегов <txp:older> и/или <txp:newer>, а внутри <txp:php> они работать вроде как не будут.
Может я не совсем понял задачу… Но если в шаблон вставить что-то типа этого:
<txp:older>««</txp:older><txp:php>global $thispage; if ($thispage['numPages']>1) echo '|';</txp:php><txp:newer>»»</txp:newer>
То символ "|" появится только если страниц больше 1. Ссылка «« на предыдущую страницу появится только если страниц больше 1 и текущая страница ≠ последней, а ссылка »» на следующую страницу появится только если страниц больше 1 и текущая ≠ первой. В итоге если страница всего одна, то не покажется вообще ничего.
Неактивен
the_ghost написал:
Есть хороший плагин chh_if_data. Выводит свое содержимое, если txp теги внутри плагина "сработали".
Но по текущей задаче получается, что содержимое нужно вставить в такое место и в такой момент, когда одна часть тегов уже сработала, а другая — ещё нет…
Неактивен
Как то вы намудрили с решением достаточно тривиальной задачи:
<txp:chh_if_data> <txp:newer>»»</txp:newer> </txp:chh_if_data>
Неактивен
the_ghost написал:
Есть хороший плагин chh_if_data. Выводит свое содержимое, если txp теги внутри плагина "сработали".
Хм… Насколько я понял, с помощью этого плагина можно вывести какое-либо содержимое, если теги "НЕ сработали".
Таким образом код
<txp:chh_if_data> <txp:newer>»»</txp:newer> </txp:chh_if_data>
Сработает точно также, как и
<txp:newer>»»</txp:newer>
т.е. выведет »», если есть страница с более новыми статьями, и не выведет ничего — если такой страницы нет. Тогда зачем вообще в данной ситуации этот плагин? Ведь согласно условиям "тривиальной" задачи между тегами пролистывания страниц нужно вывести какой-нибудь символ в зависимости от того, есть или нет последующие или предыдущие страницы.
Неактивен
<txp:chh_if_data> <txp:older>ТУДА</txp:older> --- <txp:newer>СЮДА</txp:newer> </txp:chh_if_data>
Вот что я имел в виду Очень нужный тег - редкий мой сайт обходиться без него - иногда надо обрамить вывод какого-нибудь тхп-тега в какой-нить нибудь хтмл-тег. В таких случаях chh_if_data почти незаменим.
Неактивен
the_ghost написал:
Код:
<txp:chh_if_data> <txp:older>ТУДА</txp:older> --- <txp:newer>СЮДА</txp:newer> </txp:chh_if_data>Вот что я имел в виду Очень нужный тег - редкий мой сайт обходиться без него - иногда надо обрамить вывод какого-нибудь тхп-тега в какой-нить нибудь хтмл-тег. В таких случаях chh_if_data почти незаменим.
Круто! Спасибо за наводку, действительно решает вопрос (и не только этот). Я как-то пропустил момент, что он не выводит вообще ничего из содержимого, если ни один из txp-тегов, включённых в в блок "<txp:chh_if_data>…</txp:chh_if_data>", ничего не "возвращает".
Неактивен
Спасибо за полезные советы, но у меня возник ещё один вопрос -- а можно ли сделать ссылки на все страницы (как в WP pagenavi), и если можно, то как?
Неактивен
О, вроде как нашёл подходящий плагин http://textpattern.org/plugins/54/ob1_googlenav obl_pagination
Неактивен