Как отобразить обычный HTML-контент с помощью Freemarker в LiferayPortal - PullRequest
0 голосов
/ 04 июля 2019

В Liferay Portal 7.2 у меня есть динамический список данных элементов, которые являются основным веб-содержимым. Для каждого веб-контента в этом списке я хочу отобразить собственный HTML-шаблон, определенный в самом веб-контенте.

Я пытался

<#assign records = ddlDisplayTemplateHelper.getRecords(reserved_record_set_id)>
<#if records?has_content>
    <#list records as cur_record>
        ${ddlDisplayTemplateHelper.renderRecordFieldValue
                    (cur_record.getDDMFormFieldValues("WebContent")?first, locale)}
    </#list>
</#if>

, но отображается только название веб-содержимого.

Код, который я ожидаю, выглядит примерно так

<#assign records = ddlDisplayTemplateHelper.getRecords(reserved_record_set_id)>
<#if records?has_content>
    <#list records as cur_record>
        ${cur_record.getTemplateHTML()}
    </#list>
</#if>

, где getTemplateHTML() - это метод, который возвращает простой HTML-код веб-контента.

Как я могу это сделать? Спасибо

Edit:

Список данных - это список определения данных Basic_Web_Content.

Это список данных -> Data_List_Image

и это определение Basic_Web_Content -> Data_Definition_Image

Редактировать 2 .: Я также попытался напечатать каждое поле всех WebContents, а не только первое поле (используя? First) с этим кодом

<#assign records = ddlDisplayTemplateHelper.getRecords(reserved_record_set_id)>
<#if records?has_content>
    <#list records as cur_record>
        <#if cur_record.getDDMFormFieldValues("WebContent")?has_content>
            <#list cur_record.getDDMFormFieldValues("WebContent") as cur_field>
                <#if cur_field?has_content>
                    ${ddlDisplayTemplateHelper.renderRecordFieldValue(cur_field, locale)}<br>
                </#if>
            </#list>
        </#if>
    </#list>
</#if>

Но опять же, здесь перечислены только имена веб-содержимого. Кажется, что атрибут типа Web Content сохраняет только свое имя.

...