我如何从 Liferay 7.4 中的 table ddmfieldattribute 获取字段 smallAttributeValue?
How I get the field smallAttributeValue from table ddmfieldattribute in Liferay 7.4?
Liferay 7.4 将结构数据存储在“ddmfieldattribute”table 中。我正在尝试获取ADT模板中结构的字段,但找不到解决方案。
该结构有以下字段:
- 标题
- 内容
ADT代码如下:
<#assign dlService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
<#if entries?has_content>
<#list entries as entry>
<#if entry.getClassName() == "com.liferay.journal.model.JournalArticle" >
//Get the fields from the structure
</#if>
</#list>
</#if>
此致!
不确定我是否理解你想要什么,但你可以从小部件模板 freemarker 中获取条目的期刊文章(与 Web 内容相同):
assetRenderer = entry.getAssetRenderer()
journalArticle = assetRenderer.getArticle()
然后得到它的结构:
articleDDMStructure = journalArticle.getDDMStructure()
及其字段:
ddmFormFields = getDDMFormFields(false)
P.S.: this github 存储库包含一些很棒的 ADT 示例
代码运行良好。我已经设法从 ADT 模板中结构的“标题”和“内容”字段中获取数据。 (Liferay 7.4)
<#assign dlService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
<#assign ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService")/>
<#if entries?has_content>
<#list entries as entry>
<#if entry.getClassName() == "com.liferay.journal.model.JournalArticle" >
<#assign assetRenderer = entry.getAssetRenderer()/>
<#assign journalArticle = assetRenderer.getAssetObject() />
<#assign ddmStructure = journalArticle.getDDMStructure() />
<#assign ddmForm = ddmStructure.getDDMForm()/>
<#assign ddmFormValues = ddmFieldLocalService.getDDMFormValues(ddmForm, journalArticle.getId()) />
<#assign ddmFormFieldValues = ddmFormValues.getDDMFormFieldValues() />
<#list ddmFormFieldValues as fieldName>
<#if fieldName.getFieldReference() == 'titulo'>
${fieldName.getValue().getString(locale)}
</#if>
<#if fieldName.getFieldReference() == 'contenido'>
${fieldName.getValue().getString(locale)}
</#if>
</#list>
</#if>
</#list>
</#if>
此致!
Liferay 7.4 将结构数据存储在“ddmfieldattribute”table 中。我正在尝试获取ADT模板中结构的字段,但找不到解决方案。
该结构有以下字段:
- 标题
- 内容
ADT代码如下:
<#assign dlService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
<#if entries?has_content>
<#list entries as entry>
<#if entry.getClassName() == "com.liferay.journal.model.JournalArticle" >
//Get the fields from the structure
</#if>
</#list>
</#if>
此致!
不确定我是否理解你想要什么,但你可以从小部件模板 freemarker 中获取条目的期刊文章(与 Web 内容相同):
assetRenderer = entry.getAssetRenderer()
journalArticle = assetRenderer.getArticle()
然后得到它的结构:
articleDDMStructure = journalArticle.getDDMStructure()
及其字段:
ddmFormFields = getDDMFormFields(false)
P.S.: this github 存储库包含一些很棒的 ADT 示例
代码运行良好。我已经设法从 ADT 模板中结构的“标题”和“内容”字段中获取数据。 (Liferay 7.4)
<#assign dlService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
<#assign ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService")/>
<#if entries?has_content>
<#list entries as entry>
<#if entry.getClassName() == "com.liferay.journal.model.JournalArticle" >
<#assign assetRenderer = entry.getAssetRenderer()/>
<#assign journalArticle = assetRenderer.getAssetObject() />
<#assign ddmStructure = journalArticle.getDDMStructure() />
<#assign ddmForm = ddmStructure.getDDMForm()/>
<#assign ddmFormValues = ddmFieldLocalService.getDDMFormValues(ddmForm, journalArticle.getId()) />
<#assign ddmFormFieldValues = ddmFormValues.getDDMFormFieldValues() />
<#list ddmFormFieldValues as fieldName>
<#if fieldName.getFieldReference() == 'titulo'>
${fieldName.getValue().getString(locale)}
</#if>
<#if fieldName.getFieldReference() == 'contenido'>
${fieldName.getValue().getString(locale)}
</#if>
</#list>
</#if>
</#list>
</#if>
此致!