2013-03-11 2 views
2

Я пытаюсь создать список всех дочерних страниц для отображения в виде списка гиперссылок. У меня пользователь выбирает родительскую папку, и любые дочерние страницы должны быть перечислены соответственно. Однако он заканчивается пустым (children пуст).Итерация над дочерними страницами с использованием поля типа xtype

Диалог Элемент:

<listRoot 
    name (String): ./listRoot 
    jcr:primaryType (Name): cq:Widget 
    xtype (String): pathfield 
> 

Исходный код:

<%@include file="/libs/foundation/global.jsp"%> 
<%@page 
import="java.util.Iterator, 
     com.day.cq.wcm.api.PageFilter" 
%> 
<%@page session="false" %> 

<% 
    String listroot = properties.get("listRoot", currentPage.getPath()); 
    Page rootPage = pageManager.getPage(listroot); 
    if (rootPage != null) { 
     Iterator<Page> children = rootPage.listChildren(new PageFilter(request)); 
     while (children.hasNext()) { 
      Page child = children.next(); 
      String title = child.getTitle() == null ? child.getName() : child.getTitle(); 
      String date = child.getProperties().get("date",""); 
      %><div class="item"> 
      <a href="<%= child.getPath() %>.html"><b><%= title %></b></a> 
      <span><%= date %></span><br> 
      <%= child.getProperties().get("jcr:description","") %><br> 
      </div><% 
     } 
    } 
%> 

ответ

0

Не могли бы вы проверить, если ребенок страницы были скрыты от навигации («шкура навигации» свойство был бы выбран свойства страницы).

Потому что, используя новый PageFilter(request), исключить все скрытые страницы.

В противном случае этот код работает только для меня.

С уважением, Ракеш

+0

Благодарим Вас за это немного информации. Я не вручную настраивал страницы для скрытия от навигации, но, видимо, они были. Есть ли что-то с шаблоном, связанным с этим, чтобы определить, скрыты ли они по умолчанию? Потому что все созданные мной страницы появляются после создания. –

+0

Вы можете скрыть по умолчанию, настроив в шаблоне, но не уверен, что это так. – rakhi4110

Смежные вопросы