gpt4 book ai didi

liferay - 如何在 Liferay 应用程序显示模板 (ADT) 中访问类型为 "Link to Page"的字段?

转载 作者:行者123 更新时间:2023-12-05 00:14:13 24 4
gpt4 key购买 nike

我有一个 Web 内容结构 ( WCM),其字段类型为“链接到页面”(ddm-link-to-page)。然后我创建了一个 Assets 发布者模板 ( ADT ) 来显示网页内容页面的链接。

<#assign journalArticle = assetRenderer.getArticle() />
<#assign document = saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())) />
<#assign URLnode = document.selectSingleNode("/root/dynamic-element[@name='Link_To_Page']/dynamic-content") />
<#assign getURL = URLnode.getText() />

<a href="${getURL}">Go to page</a>

问题是显示的值是对元素的引用而不是链接的值(它显示 /348@public@9246542)所以URLnode.getText() 不工作。

所有其他领域的工作。

附言。我还尝试了 URLnode.getStringValue()

最佳答案

您的 UrlNode 中 @ 之前的第一个数字是页面布局 ID。您可以使用它通过以下方法从 ADT 中获取 friendlyURL:

...
<#list rootElement.elements() as dynamicElement>
<#if "URLnode" == dynamicElement.attributeValue("name")>
<#assign getURL = dynamicElement.element("dynamic-content").getData() />

<#-- split the string to just get the page layout id , groupID and if its a private layout-->
<#list page_link_data?split("@") as item>
<#if item_index == 0>
<#assign linkPageId = item?number>
</#if>
<#if item_index == 1>
<#if item == "private">
<#assign linkPrivate = true>
<#else>
<#assign linkPrivate = false>
</#if>
</#if>
<#if item_index = 2>
<#assign linkGroupId = item?number>
</#if>
</#list>

<#-- get layout -->
<#assign layoutLocalService = staticUtil["com.liferay.portal.service.LayoutLocalServiceUtil"]>
<#assign pageLayout = layoutLocalService.getLayout(linkGroupId, linkPrivate, linkPageId)>

<#-- get Friendly URL -->
<#assign portalUtil = staticUtil["com.liferay.portal.util.PortalUtil"]>
<#assign friendly_page_link = portalUtil.getLayoutFriendlyURL(pageLayout, themeDisplay)>

</#if>
</#list>

${friendly_page_link}

一些方便的引用资料让我走上了正确的轨道: https://web.liferay.com/community/forums/-/message_boards/message/50293771 Programmatically get the url of a page in liferay

关于liferay - 如何在 Liferay 应用程序显示模板 (ADT) 中访问类型为 "Link to Page"的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34745527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com