2016-02-19 7 views
0

Я новичок в Liferay, и я пытаюсь выяснить, можно ли динамически добавлять или вычитать дочерние страницы на лету. Из того, что я сделал до сих пор, я смог использовать панель управления администратора, чтобы добавить статичное количество дочерних страниц на главную страницу.Liferay 6 - Динамическое количество детских страниц с навигацией

Мой вариант использования У меня есть главная страница, в которой хранятся все графические диаграммы, а затем у меня есть куча дочерних страниц для каждого типа графиков. Количество графиков динамическое в зависимости от компании, хотя некоторые могут иметь 10 дочерних страниц, а другие могут иметь только три. Это возможно? Единственная вещь, которую я смог найти, - это статья о пользовательской навигации, https://liferayinfo.wordpress.com/2012/09/24/liferay-custom-navigation/.

+1

Вы можете добавить страницы программно, используя 'LayoutLocalServiceUtil'. –

ответ

0

Это зависит от того, что вы считаете «динамическим»: если это буквально «на лету»: Да, есть варианты динамического управления страницами - этот подход довольно сложный. Путь слишком сложный для простого ответа на stackoverflow.

Но не все потеряно: вы можете сойти с создания собственного портлета навигации, который определяет, сколько (и каких) дочерних страниц, которые вы статически создали, будет отображаться на основе критериев, которые вы знаете.

Когда каждая из ваших компаний (осторожно: вводящий в заблуждение термин - Liferay использует «компанию» в качестве технического имени для «экземпляра портала») использует другой сайт, вы также можете использовать шаблоны сайтов или шаблоны страниц - включая эту настраиваемую навигацию портлет.

Также вы всегда можете создавать страницы и иерархии страниц с помощью API Liferay. Комментарий Торстера Лауса уже упоминает LayoutLocalService. Для удобства обслуживания вам будет проще, если вы будете использовать его статически при создании страниц, а не динамически, когда у вас есть данные (там мы снова: динамическое использование слишком сложно для этого ответа).

Если это достаточно, чтобы скрыть определенные страницы: Идите с пользовательским портлетом навигации вместо собственного Лиферэй. В зависимости от сложности, которую вы готовы в итоге: вы можете либо создать свой собственный портлет, либо использовать структуру и шаблон WebContent, чтобы динамически решать, какие страницы ссылаться и которые не связывать (что эффективно скроет их).