2016-10-12 10 views
0

Мне нужно получить доступ к объекту themeDisplay в настраиваемом шаблоне freemarker.Вызов объекта темы Liferay в шаблоне freemarker

Я попытался сделать это следующим образом:

${themeDisplay.getLanguageId()} 

Но я получаю следующее сообщение об ошибке:

Expression themeDisplay is undefined on line 208, column 18 

Я также попытался добавить эти две строки в моих portal-ext.properties но без успеха:

freemarker.engine.restricted.classes= 
freemarker.engine.restricted.variables= 

Есть ли успешный подход для этого?

спасибо.

+0

Надеюсь, что вы пробовали с $ themeDisplay.getLanguageId() –

+0

'$ themeDisplay.getLanguageId()' не оценивает переменную. Он просто печатает его, как будто это была простая строка, вроде «hello my name is gustav». – HelmutSteiner

+0

Google 'liferay freemarker themeDisplay', самый первый результат говорит о том, что вы должны использовать' <#assign themeDisplay = objectUtil ("com.liferay.portal.theme.ThemeDisplay") /> ' –

ответ

0

Вы можете получить версию дисплея темы из запроса, например: < #assign themeDisplay = request ['theme-display'] />.

Но будьте осторожны, это только облегченная версия, поэтому вы можете получить значение plid: themeDisplay ['plid'], но вы не можете получить объект макета (themeDisplay.getLayout()).

Все зависит от того, что вы хотите сделать с объектом. С уважением

Примечание: это только в 6.2 CE, кажется, что в Liferay 7 темаDisplay является полной и неявной переменной.