2010-12-06 64 views
0

我需要建立從露天空間開始的無序列表:露天無序列表網頁腳本

我發現這個工作模板:

<#macro recurse_macro node depth> 
    <#if node.isContainer> 
    <tr> 
<td align='left'>(${depth}) 
    <#if (depth>0) > 
    <#list 1..depth as i>.</#list> 
    </#if> 
    <img src="/alfresco${node.icon16}"> <a href="/alfresco${node.url}">${node.properties.name}</a> 
</td> 
    </tr> 

    <#list node.children as child> 
<#if child.isContainer && node.children?size != 0 > 
    <@recurse_macro node=child depth=depth+1/> 
</#if> 
    </#list> 
    </#if> 
</#macro> 

<b>Recursive Listing of Spaces:</b> 
<table border="1" celpadding="1" cellspacing="1"> 
<tr><th> Name Space </th></tr> 
<@recurse_macro node=companyhome depth=0/> 
</table> 

我需要的是修改這個模板來渲染空間作爲無序列表的內容:

<ul id="0" > 
    <li id="1">Content_one 
    <ul> 
     <li id="2">Content_two 
    <ul> 
    <li id="3">Content_three</li> 
     <li id="4">Content_four</li> 
    </ul> 
     </li> 
     <li id="5">Content_five</li> 
    </ul> 
    </li> 
</ul> 

任何幫助將不勝感激。

感謝

回答

0

那麼,你需要到處添加< li>標籤,你列出一個節點,對於一個: 先用< UL ID = 0>和</ul>替換表標籤。

然後,在#macro - 你需要列出內容名稱,但沒有< TD>部分。所以請刪除< td>和</td>標籤。此外,你不需要點,所以刪除#if(深度> 0)>塊。

你需要一個計數器。所以有一個< #assign計數器= 0 />您輸入的第一個time.And遞歸宏每次輸入宏的時間增加計數器之前(等宏觀兩行:< #assign計數器=計數+ 1 />

您還需要< LI>圍繞在您的實際文件名是行標籤。 所以封閉< IMG />和<一> </A>塊在<裏的id =「$ {計數器}「>與</li>

關閉它現在,你還需要一套新<的UL>標籤,當你做一個遞歸。 要做到這一點,你東東d改變 <

#if child.isContainer && node.children?size != 0 > 
    <@recurse_macro node=child depth=depth+1/> 
</#if> 

塊。用您的< ul>和</ul>標籤附上標籤。

應該這樣做。

+0

不過,我建議,這是在服務器端的JavaScript rewriten在組合的Freemarker,渲染應該是明顯加快 – Zlatko 2010-12-07 15:21:24