Я разрабатываю новый шаблон для своего издателя активов, чтобы получить все содержимое с классом
com.liferay.portlet.journal.model.JournalArticle
с определенного сайта.
В моей структуре веб-контента у меня есть:
-Image
внутри этого изображения:
-есть текстовая переменная буксировки
-один для названия
-one для описания
вот код моей структуры:
<root available-locales="en_US" default-locale="en_US">
<dynamic-element dataType="image" fieldNamespace="wcm" indexType="keyword" localizable="true" name="myImage" readOnly="false" repeatable="false" required="false" showLabel="true" type="wcm-image" width="">
<dynamic-element dataType="string" indexType="keyword" localizable="true" name="title" readOnly="false" repeatable="false" required="false" showLabel="true" type="text" width="small">
<meta-data locale="en_US">
<entry name="label">
<![CDATA[Title]]>
</entry>
<entry name="predefinedValue">
<![CDATA[]]>
</entry>
<entry name="tip">
<![CDATA[]]>
</entry>
</meta-data>
</dynamic-element>
<dynamic-element dataType="string" indexType="keyword" localizable="true" name="desc" readOnly="false" repeatable="false" required="false" showLabel="true" type="text" width="small">
<meta-data locale="en_US">
<entry name="label">
<![CDATA[Description]]>
</entry>
<entry name="predefinedValue">
<![CDATA[]]>
</entry>
<entry name="tip">
<![CDATA[]]>
</entry>
</meta-data>
</dynamic-element>
<meta-data locale="en_US">
<entry name="label">
<![CDATA[Image]]>
</entry>
<entry name="predefinedValue">
<![CDATA[]]>
</entry>
<entry name="tip">
<![CDATA[]]>
</entry>
</meta-data>
</dynamic-element>
and here is how it's appears : Screenshot of my structure
Теперь я написал этот код в своем шаблоне активов, используя (VM) или макросы Velocity.
#if (!$entries.isEmpty())
#foreach ($entry in $entries)
#set($renderer = $entry.getAssetRenderer() )
#set($className = $renderer.getClassName() )
#if( $className == "com.liferay.portlet.journal.model.JournalArticle" )
#set( $journalArticle = $renderer.getArticle() )
#set( $document = $saxReaderUtil.read($journalArticle.getContent()) )
#set( $rootElement = $document.getRootElement() )
#foreach( $dynamicElement in $rootElement.elements() )
#if( "myImage" == $dynamicElement.attributeValue("name") )
#set( $myImage = $dynamicElement.element("dynamic-content").getText() )
#end
<img src="$myImage" >
#end
#end
#end
конец
из этого кода я могу получить доступ к своему изображению, но моя проблема в том, что я не могу найти способ получить переменные внутри изображения, одну с name="title" и другую с name="desc"? Итак, мне нужно добраться до этих двух текстовых переменных