Alfresco无序列表Web脚本

时间:2010-12-06 17:25:26

标签: freemarker alfresco

我需要从Alfresco Space开始构建一个无序列表:

我找到了这个工作模板:

 <#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>

任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

好吧,你需要添加一个&lt;李&GT;标记节点的每个地方的标记,例如: 首先用&lt;替换表标签。 ul id = 0&gt;和&lt; / UL&GT;

然后,在#macro中 - 您需要列出内容名称但不包含&lt; TD&GT;部分。所以删除&lt; TD&GT;和&lt; / TD&GT;标签。此外,您不需要点,因此删除&lt; #if(深度&gt; 0)&gt;块。

你需要一个柜台。所以有一个&lt; #assign counter = 0 /&gt;就在您第一次输入递归宏之前。每次输入宏时都会递增计数器(所以在宏的第二行:&lt; #assign counter = counter + 1 /&gt;

你还需要&lt;李&GT;您的实际文档名称所在的行周围的标记。 所以附上&lt; img /&gt;和&lt;一个&GT; &LT; / A&GT; &lt;块&gt; li id =“$ {counter}”&gt;并用&lt;关闭它/立GT;

现在,您还需要一组新的&lt; UL&GT;你做一个递归的标签。 要做到这一点,你需要改变 &LT;

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

块。用你的&lt;包含标签。 UL&GT;和&lt; / UL&GT;标签

应该这样做。