如何获取 WCM (Liferay) 中的页面列表?

How to get list of pages in WCM (Liferay)?

我尝试使用包含 导航(页面列表)的模板创建 Web 内容:

<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

在我的主题中 navigation.ftl 它有效,但在 WCM ftl (FreeMarker) 中无效。 那么,如何获取WCM中的页面列表呢?

页面列表仅在 ADTs (Application Display Templates), not in WCM templates 中可用。

如果您确实需要该列表并且可以使用 ADT,请改用 navItems 变量。变量 nav_items 仅适用于主题(我猜是为了向后兼容)。

文档 - 很难找到。使用原力,在 GitHub.

上阅读源代码

您可能希望使用方便的 Freemarker 脚本来显示所有可用变量 - 请参阅 James Falkner 博客上的 Dumping ADT+WCM Template Variables