Навигация по ресурсам в рамках директории
Для создания навигации в рамках директории для MODx существует несколько решений.
Воспользуемся одних из них - сниппет PrevJumpNext
Вольный перевод описания:
Генерирует ссылки для перехода между документами в директории (внутри дерева документов modx)
Способен отображать:
- Номер статьи из общего количества статей в директории (ресурсе контейнере)
- Ссылки на 'Предыдущий' и 'Следующий' с или без названия документов (ресурсов)
- Ссылки на 'Первый' и 'Последний' документы.
- Ссылку на 'Index' - родительский документ (ресурс)
- Выпадающий список для быстрого перехода к конкретному документу.
Плейсхолдеры:
[+PJN_first+] - первый документ ( ресурс );
[+PJN_prev+] - предыдущий документ (ресурс);[+PJN_jump+] - выпадающий список для быстрого перехода на выбранный документ;[+PJN_index+] - ссылка на корень директории (родительский ресурс , index page);[+PJN_next+] - следующий документ;[+PJN_last+] - последний документ;Параметры вызова:
- startID : Int - id документа (ресурса) контейнера - корень директории (по умолчанию - id родительского ресурса);
- sortBy : String - Переменная документа по которой производится сортировка: 'menuindex' , 'id' , 'createdon' и пр (по умолчанию: createdon);
- sortHow : [ASC|DESC] - Порядок сортировки 'ASC' или 'DESC' (по умолчанию ASC);
- displayTitle : Boolean - Показывать или нет заголовок документа в ссылках , зависит от &prevText и &nextText (по умолчанию: true);
- displayFixed : Boolean - Показывает ссылки 'Первый' и 'Последний' (по умолчанию: false);
- usePlaceHolder : Boolean : Генерирует плейсхолдеры и отключает вывод собственного html кода (
[+PJN_first+] , [+PJN_prev+] , [+PJN_jump+] , [+PJN_index+] , [+PJN_next+] , [+PJN_index+]) (по умолчанию: false); - useJump : Boolean : Замена ссылки на index выпадающим списком при использовании плейсхолдеров или без них (по умолчанию: false);
- indexDocumentID : Int : ID документа который используется в качестве "index". (по умолчанию &startID);
- displayNoPrevNext : Boolean : Выводит содержимое параметра &noPrevNextText в место "previous" или "next" когда нет предидущего или следующего ресурса (по умолчанию false);
- noPrevNextText : String : Текст показываемый если нет 'Prev' или 'Next' элементов и параметр &displayNoPrevNext == 1 :(по умолчанию "No more records");
- indexText : String : Название для "index" элемента (по умолчанию: "Index");
- jumpText : String : Название для выпадающего списка (по умолчанию: "Please Select");
- firstText : String : Название для элемента "первый" (по умолчанию: "First");
- prevText : String : Название для элемента "предыдущий" когда $displayTitle установлено в 'false' (по умолчанию: "Prev");
- nextText : String : Название для элемента "следующий" когда $displayTitle установлено в false (по умолчанию: "Next");
- lastText : String : Название для элемента "последний" (по умолчанию: "Last");
- exclude : Array : Список ID ресурсов разделённый запятыми для исключения из навигации (по умолчанию: пусто)
- separator : String : Разделитель вставляемый между элементами (по умолчанию " | ");
- displayIndex : Boolean: Отображать или нет элемент "index" (по умолчанию - true);
- firstSymbol : String : Префикс для элемента "Первый" (по умолчанию - [empty]);
- prevSymbol : String : Префикс для элемента "Предыдущий" (по умолчанию- [empty]);
- nextSymbol : String : Суффикс для элемента "Следующий" (по умолчанию- [empty]);
- lastSymbol : String : Суффикс для элемента "Последний" (по умолчанию- [empty]);
- displayTotal : Boolean : Показывать или нет элемент "Showing article X of Y" - "Текущая статья X из Y " (по умолчанию- true);
- recordTypeName : String : Название для записей типа документов (ресурсов) Т.е. если = "article" ,то "Showing article 3 of 25" (по умолчанию- "article");
- includeFolders : Boolean : Включать или нет ресурсы с типом контейнер в список элементов (по умолчанию- [true);
- maxTitleChars : Int : Обрезать заголовки документов ( ресурсов ) до указанного количества символов (по умолчанию- 0 = показывать полный заголовок )
Вывод:
Html код выдаваемый сниппетом не содержит дополнительных элементов. Мы получаем обычный список ссылок с соответствующими каждому элементу классами.
Т.е.:
Т.е.:
<a href="url" class="previous">Previous Title</a> | <a href="url" class="index">Index</a> | <a href="url" class="next">Next Title</a>
Имена классов: total, currentNumber, totalNumber, first, previous, index, next, last
Примеры:
1) [[PrevJumpNext? sortBy=`menuindex` &sortHow=`ASC` &displayTitle=`1`]] 2) [[PrevJumpNext? &sortBy=`pub_date` &usePlaceHolder=`true` &indexDocumentID=`XX` &firstText=`First` &lastText=`Last` &prevText=`Previous` &nextText=`Next` &indexText=`List of Articles` &jumpText=`Quick Access` &displayNoPrevNext=`1` &noPrevNextText=`It's the end`]]
Для отображения результатов работы этого примера необходимо разместить плейсхолдеры в соответствующих местах шаблона и вместо XX указать ID родительского документа.[+PJN_first+] [+PJN_prev+] [+PJN_jump+] [+PJN_index+] [+PJN_next+] [+PJN_last+]3) Можно комбинировать этот сниппет с PHx и UltimateParent:
[+phx:if=`[[UltimateParent]]`:is=`XX`:and:isnot=`[*id*]`:then=`[!PrevJumpNext!]`:else=` `+]
Последнее изменение документа: 17 Ноябрь 2009
Posts: 2
Reply #2 on : Втр Август 17, 2010, 15:54:25
Posts: 2
Reply #1 on : Срд Июль 07, 2010, 18:21:19
Write a comment