2010-12-06 8 views
0

Je dois construire une liste à puces à partir d'un Alfresco Espace:Alfresco script web liste non ordonnée

J'ai trouvé ce modèle de travail:

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

Ce que je besoin est de modifier ce modèle pour rendre l'espace contenu sous forme de liste non désordonnée:

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

Toute aide sera appréciée.

Merci

Répondre

0

Eh bien, vous devez ajouter un < li> balise dans laquelle vous énumérez un nœud, pour un: d'abord remplacer les balises de table avec < ul id = 0> et </ul>. Puis, dans le #macro - vous devez lister le nom du contenu mais sans la partie < td>. Supprimez donc les balises < td> et </td>. De plus, vous n'avez pas besoin des points, alors supprimez le bloc < #if (depth> 0)>.

Vous avez besoin d'un compteur. Vous devez donc avoir un < #assign counter = 0 /> juste avant d'entrer pour la première fois dans la macro recurse.Et incrémenter le compteur chaque fois que vous entrez dans la macro (sur la deuxième ligne de la macro: < #assign counter = counter + 1 />

Vous devez également < li> balises autour de la ligne où le nom de votre document réel est. donc enferment les < img /> et < a> </a> blocs dans un < li id ​​= "$ {counter } "> et fermez avec </li>

maintenant, vous aurez également besoin d'une nouvelle série de < ul> balises lorsque vous faites une récursion. Pour ce faire, vous nee d pour modifier le bloc <

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

. Placez le tag avec vos tags < ul> et </ul>.

Cela devrait le faire.

+0

Cependant, je propose que ce soit réécrit dans le javascript côté serveur en combinaison avec freemarker, le rendu devrait être visiblement plus rapide – Zlatko

Questions connexes