freemarker一頁書

收集freemarker的實戰經驗

1、宏

<#--
文章列表模板
MODULE:版塊
LIST:內容
wordLength:名字最大長度
contentNum:每塊的內容
clickUrl:點擊的鏈接
class:css類
subClass:css類
flag:預留判斷,用於擴展

-->
<#macro contentList MODULE LIST wordLength=10 contentNum=5 clickUrl="" class="" subClass="" flag=1>
<#if MODULE??>
  <#if LIST??>
    <#assign len=LIST?size />
    <#if len gt 0>
 <#if len lte contentNum>
      <@listDiv MODULE=MODULE LIST=LIST start=0 end=len-1 wordLength=wordLength clickUrl=clickUrl class=class flag=flag/>
 <#else>
        <@listDiv MODULE=MODULE LIST=LIST start=0 end=contentNum-1 wordLength=wordLength clickUrl=clickUrl class=class flag=flag/>
        <@listDiv MODULE=MODULE LIST=LIST start=contentNum end=len-1 wordLength=wordLength maxNum=contentNum clickUrl=clickUrl class=class subClass=subClass flag=flag/>
 </#if>
    </#if>
  </#if>
 </#if>
</#macro>
<#--
內部宏
start:起始位置
end:結束位置
maxNum:最大顯示條數
-->
<#macro listDiv MODULE LIST start=0 end=0 wordLength=5 maxNum=10 clickUrl="" class="" subClass="" flag=1>
  <div class="${class} ${subClass}">
    <ul>
      <#if end gt 2*maxNum-1>
        <#local end = 2*maxNum-1/>
      </#if>
      <#list LIST[start..end] as item>
        <li>
          <span>
            <#if flag == 1>
              <a href="javascript:void(0);" οnclick="${clickUrl}(this,'${item.path}','${webRoot}','${urlRoot}','${MODULE.id}','${item.id}','${MODULE.name}');">
                <#if (item['name']?length>
                  wordLength)> ${item['name'][0..wordLength]}...
                  <#else>
                    ${item['name']}
                </#if>
              </a>
             <#else>
                <a href="javascript:void(0);" οnclick="${clickUrl}(this,'${item.path}','${webRoot}','${urlRoot}','${item.parentId!}','${MODULE.name}');">
                  <#if (item['title']?length>
                    wordLength)> ${item['title'][0..wordLength]}...
                    <#else>
                      ${item['title']}
                  </#if>
                </a>
            </#if>
          </span>
        </li>
       </#list>
     </ul>
  </div>

</#macro>

使用:

<#import "include/content-list.ftl" as show/>
<@show.contentList MODULE=MODULE LIST=MODULE.contentList! wordLength=10 contentNum=3 clickUrl="javescript:openGuideContentWin" class="content-list-right" subClass="put-right" flag=2/>

2、待續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章