dotCMS: как разбить содержимое на страницы в списке? - PullRequest
1 голос
/ 08 сентября 2010

Я работаю над проектом dotCMS, в котором мы пишем HTML, Javascript и Velocity, но без Java (пока в этом не было необходимости).

В dotCMS мне нужно пройти через два отношения, чтобы составить список всех элементов структуры C, относящихся к экземпляру структуры A, где структура A относится к структуре C, которая относится к структуре D. Хорошо, я сделал это и у меня есть список контента, который я могу перебрать: http://pastebin.com/52uStcUA.

Проблема в том, что мне нужно разбить этот список на страницы, и макрос #pageContent () only принимает запрос, а не список. Я посмотрел на источник макроса #pageContent () в dotCMS_library.vm и обнаружил, что он вызывает Java: ContentsWebAPI.pageContent () - который, в свою очередь, принимает только запрос.

Насколько я понимаю, это оставляет мне два варианта:

1) Каким-то образом сформулируйте запрос для макроса #pageContent (), который выражает обход транзитивных отношений. Я знаю, как написать запрос для одного отношения (http://pastebin.com/cwLY0Av4), но не для двух.

2) Напишите мою собственную реализацию ContentsWebAPI.pageContent () на Java, которая откровенно звучит как излишнее (и, возможно, просто первый шаг по долгому и мучительному пути).

Итак, есть еще идеи, как это решить?

1 Ответ

2 голосов
/ 08 сентября 2010

Должно быть довольно легко написать необходимую для скорости логику подкачки - список $ в Velocity - это просто java.util.ArrayList.

Полезным инструментом, включенным в dotCMS, является $ listTool, см .: http://velocity.apache.org/tools/releases/velocity-tools-1.2/javadoc/org/apache/velocity/tools/generic/ListTool.html

Это может дать вам конкретные элементы в вашем списке. Все, что вам нужно, это некоторые переменные, такие как $ page, $ numShow и т. Д. Вы можете передать переменную $ page в URL и использовать ее для получения подсписков и т. Д. *

...