#liferay #liferay-6
#liferay #liferay-6
Вопрос:
Я хочу получить список всех шаблонов (шаблонов статей в виртуальной машине или FTL) сайта Liferay в шаблоне WCM или шаблоне темы.
Это то, что я пробовал:
<#assign DDMTemplateLocalServiceUtil = objectUtil("com.liferay.portlet.dynamicdatamapping.service.DDMTemplateLocalServiceUtil") />
<#assign ClassNameLocalServiceUtil = objectUtil("com.liferay.portal.service.ClassNameLocalServiceUtil")/>
<#assign className = ClassNameLocalServiceUtil.getClassName("com.liferay.portlet.journal.model.JournalArticle") />
<#assign classNameId = className.getClassNameId() />
<#assign groupId = themeDisplay.getScopeGroupId() />
<#assign ddmTemplates = DDMTemplateLocalServiceUtil.getTemplates(groupId, classNameId) />
<#list ddmTemplates as template>
${template.getName()}
</#list>
Но я не получаю никакого значения и никакой ошибки.
Когда я пытаюсь получить имя шаблона на основе его идентификатора, это работает:
<#assign ddmTemplate = DDMTemplateLocalServiceUtil.getTemplate(50367) />
${ddmTemplates.getName()}
Я не знаю идентификатора шаблонов, так как я могу получить все шаблоны сайта Liferay, не зная их идентификатора?
Комментарии:
1. Просто замечание:
${template.getName()}
вернет фрагмент XML для имени, которое вам нужно использовать${template.getName(locale)}
2. Вы проверили, является ли groupId правильным? Я бы предположил, что идентификатор scopeGroupId может отличаться от тех, в которых находятся шаблоны.
3. пожалуйста, проверьте идентификатор группы, что касается одной из проблем, в lIferay 6.2, отображение темы разрешалось некорректно, лучше получить groupId, напрямую доступный в качестве переменной по умолчанию.
4. Мой идентификатор группы — 20182 , и
themeDisplay.getScopeGroupId()
илиgroupId
дает мне это значение. Поэтому я думаю, что это не проблема groupId. Я также пытался передать параметр вручнуюgetTemplates(20182, classNameId)
5. @ShivamAggarwal я обнаружил, что проблема в
className.getClassNameId()
. Мой classId статьи — 20102, ноClassNameLocalServiceUtil
дает мне это значение: 20109, и я не знаю, почему оно отличается..