2015-10-08 60 views
2

我試圖創建一個模板創建Web內容包含導航(頁面列表):如何獲取WCM(Liferay)中的頁面列表?

<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 ftlFreeMarker)不起作用。 然後,我如何獲得WCM中的頁面列表?

回答

3

頁面列表僅在ADTs(應用程序顯示模板)中可用,而不在WCM templates中。

如果您確實需要該列表並且可以使用ADT,請改用navItems變量。變量nav_items只適用於主題(爲了向後兼容性,我猜)。

文檔 - 很難找到。使用力量,閱讀來源 - 在GitHub

您可能希望使用方便的Freemarker腳本來顯示所有可用的變量 - 請參閱James Falkner博客上的Dumping ADT+WCM Template Variables

+0

非常感謝Tomas,但是我得到了同樣的錯誤:'表達式navItems未定義。我正在使用_Liferay Portal Community Edition 6.2 CE GA4_。 –

+1

只是爲了讓問題更清楚 - WCM模板究竟是什麼意思?它是一個自定義結構的模板嗎?你可以運行我鏈接的dump.ftl腳本來查看所有可用變量的列表嗎?這意味着將dump.ftl代碼粘貼到您的模板並檢查結果。 –

+0

是的,是一個FreeMarker模板。你可以[看到這裏](https://docs.google.com/document/d/1hqYB1d3C1f7nCCHUITiddLbcBUJhR_EvlfF3YYvLjFQ/edit?usp=sharing)所有可用的變量。 –

相關問題