【问题标题】:How I get the field smallAttributeValue from table ddmfieldattribute in Liferay 7.4?如何从 Liferay 7.4 中的 ddmfieldattribute 表中获取字段 smallAttributeValue?
【发布时间】:2021-12-17 02:09:40
【问题描述】:

Liferay 7.4 将结构数据存储在“ddmfieldattribute”表中。我正在尝试获取 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>

问候!

【问题讨论】:

    标签: liferay freemarker liferay-7


    【解决方案1】:

    不确定我是否理解您想要的内容,但您可以从 Widget Template freemarker 中获取条目的期刊文章(与 Web 内容相同):

    assetRenderer = entry.getAssetRenderer()
    journalArticle = assetRenderer.getArticle()
    

    然后得到它的结构:

    articleDDMStructure = journalArticle.getDDMStructure()
    

    及其领域:

    ddmFormFields = getDDMFormFields(false)
    

    P.S.:this github 存储库包含一些很棒的 ADT 示例

    【讨论】:

    • 感谢您的帮助,您的代码帮助我解决了问题。问候
    • 我很乐意提供帮助!如果我的回答解决了您的问题,请考虑接受。问候
    • 我给你的评论打了分,因为它帮助我解决了问题。但是,我已将解决方案放在下面的评论中。谢谢。
    【解决方案2】:

    代码运行良好。我已经设法从 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>
    

    问候!

    【讨论】:

      猜你喜欢
      • 2016-08-17
      • 1970-01-01
      • 2013-08-16
      • 1970-01-01
      • 2011-02-04
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多