2013-07-18 3 views
1

я смог получить organizationId регулярных организаций, используя следующий код:Liferay: Получение Id организации для организации верхнего уровня

ThemeDisplay themeDisplay = LiferayFacesContext.getInstance().getThemeDisplay(); 
long liferayOrganizationId = themeDisplay.getScopeGroup().getOrganizationId(); 

Но этот код не работает для Оргам верхнего уровня. Как я могу получить organizationId для организации верхнего уровня?

ответ

3

Это работает и для организаций верхнего уровня. Однако, когда вы используете это на сайте, который не связан с какой-либо организацией, он, естественно, не обнаружит действительного идентификатора организации.

Обратите внимание, что Liferay 6.1 теперь содержит сайты, содержащие все страницы. Организации могут иметь сайтов, но не нужно. Сайты могут существовать без какой-либо организации, связанной с ними. И вот тогда, когда вы получаете 0 в качестве организационного результата в результате кода в вашем ответе

+0

Это именно то, что я получаю. У меня есть определенные пользовательские поля, определенные для организации верхнего уровня. Как получить значения этих полей в этом случае? Я имею в виду, есть ли getOrgByName() или что-то подобное? –

+1

Если вы работаете на сайте (= scopeGroup), который не принадлежит организации, я не уверен, чего вы хотите достичь. Вы хотите получить доступ к любой общей (известной по имени) организации? Вы можете использовать http://docs.liferay.com/portal/6.1/javadocs/com/liferay/portal/service/OrganizationLocalService.html#getOrganization(long,%20java.lang.String), чтобы получить его, но в целом я «Я озадачен тем, чего вы пытаетесь достичь. –

+0

Ссылка, которую вы дали, - это то, что я использовал в конечном итоге. В принципе, во всех моих организациях есть связанные с ними сайты, за исключением организации верхнего уровня. Таким образом, мой код работал повсюду, кроме случаев, когда на главном сайте, который Liferay создает по умолчанию. Этот ответ решил эту проблему. Благодаря! –

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