如何在WCM(Liferay)中获取页面列表?
我尝试使用包含导航(页面列表)的模板创建Web内容: 在我的主题如何在WCM(Liferay)中获取页面列表?,liferay,freemarker,Liferay,Freemarker,我尝试使用包含导航(页面列表)的模板创建Web内容: 在我的主题navigation.ftl中,它可以工作,但在WCMftl(FreeMarker)中不工作。 那么,如何在WCM中获取页面列表?页面列表仅在(应用程序显示模板)中可用,而不是在中 如果您确实需要该列表并且可以使用ADT,请改用navItems变量。变量nav_items仅适用于主题(我想是为了向后兼容) 文档-很难找到。使用原力,读取源-on 您可能需要使用一个方便的Freemarker脚本来显示所有可用的变量-请参阅James
navigation.ftl
中,它可以工作,但在WCMftl
(FreeMarker)中不工作。
那么,如何在WCM中获取页面列表?页面列表仅在(应用程序显示模板)中可用,而不是在中 如果您确实需要该列表并且可以使用ADT,请改用
navItems
变量。变量nav_items
仅适用于主题(我想是为了向后兼容)
文档-很难找到。使用原力,读取源-on
您可能需要使用一个方便的Freemarker脚本来显示所有可用的变量-请参阅James Falkner的博客。非常感谢Tomas,但我得到了相同的错误:
表达式navItems未定义。
。我使用的是Liferay Portal社区版6.2 CE GA4。为了让问题更清楚,您所说的WCM模板到底是什么意思?它是自定义结构的模板吗?你能运行我链接的dump.ftl脚本来查看所有可用变量的列表吗?这意味着将dump.ftl代码粘贴到模板并检查结果。是的,是一个FreeMarker模板。您可以选择所有可用的变量。我的答案与ADT(应用程序显示模板)有关。我希望变量集是相同的,但不幸的是它不同。变量navItems
确实仅适用于ADT模板。您的用例是什么?如果您确实需要WCM模板中的页面列表,您可以随时使用serviceLocator
调用LayoutLocalService
来获取列表。非常感谢!!!!它在ADT上工作。现在我将使用ADT模板,但如果有一个关于如何在WCM模板中获取页面列表的示例,我将尝试。
<nav id="navigation">
<ul>
<#list nav_items as nav_item>
<#assign nav_item_css_class = "" />
<#if nav_item.isSelected()>
<#assign nav_item_css_class = "selected" />
</#if>
<li class="${nav_item_css_class}">
<a href="${nav_item.getURL()}">${nav_item.getName()}</a>
<#if nav_item.hasChildren()>
<ul class="child-menu">
<#list nav_item.getChildren() as nav_child>
<#assign nav_child_css_class = "" />
<#if nav_item.isSelected()>
<#assign nav_child_css_class = "selected" />
</#if>
<li class="${nav_child_css_class}">
<a href="${nav_child.getURL()}">${nav_child.getName()}</a>
</li>
</#list>
</ul>
</#if>
</li>
</#list>
</ul>
</nav>
Expression nav_items is undefined