一些自己写的freemaker macro 用来生成网页中的区块

FreeMaker的宏功能很好,很适合用来做网页。感觉比Samrty也好。

1.面板,view

<#macro panel title="&nbsp;" class=" " id="" limit=-1 style="" >
<#--panel 模板,支持内嵌内容 -->
<div class="pl   ${class}" id="${id}" style="${style}">
  <div class="pl-t">
    <div class="pl-t-inner"> ${title}</div>
  </div>
  <div class="pl-b-outter">
    <div class="pl-b-inner">
      <div class="pl-b-body" id="${id}-body">
        <div class="text-outter"><#nested /></div>
      </div>
    </div>
  </div>
</div>
</#macro>

调用:

<@c.panel id="list-panel" title="新闻动态" style="min-height:500px;">
          hello world
</@c.panel>

2.列表,这个列表支持内容格式的调整。

<#macro list1 rs showDate=0 date="yyyy年MM月dd日" class=" " truncate=100 id="" style="" emptyText="暂无" ns="" >
<#--
信息集列表函数

rs 信息集
showDate 显示日期
date 日期样式
class 样式名
style 样式表
id 编号
emptyText 当列表是空的时候显示的内容
truncate 数字
ns:一个过渡变量用来表示空间名字
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}
${lastUpdated?string("EEE, MMM d, ''yy")}
${lastUpdated?string("EEEE, MMMM dd, yyyy, hh:mm:ss a
'('zzz')'")}
-->
<#assign count = 1 />
<#if rs?size gt 0 >
	<ul class="${class!""}" style="${style!""}"  <#if id=="">id="${id}"</#if> >
	<#list rs as item>
		<#assign count = 1>
	  <li class="item item-${count} <#if count==1>first-child</#if>" ><#if showDate == 1> <span class="date">${item.DATE_CREATED?string(date)}</span></#if>
	  <a href="${fileURI(item,ns)}" title="${item.FILE_NAME?html}" target="_blank">
	  <#local aa>
	  ${devit.truncate(item.FILE_NAME?html?replace(' ','&nbsp;'),truncate)}
	  </#local>
	  <#local ft>
	  	<#nested item , aa />
	  </#local>
	  <#if ft?index_of("---") gte 0>
	  	${ft?replace("---",aa)}
	  <#else>
	  ${aa}
	  </#if>
	  </a>
	  </li>
	</#list>
	</ul>
<#else>
 ${emptyText}
</#if>
</#macro>

调用:

 1 直接调用

<@c.list1 rs=list class="list" showDate=1 ns="DOWNLOAD_MES"></@c.list1>

2 变更列表样式,---将被替换成${item.FILE_NAME}
<@c.list1 rs=list class="list" showDate=1 ns="DOWNLOAD_MES";item >[item.FILE_TYPE]---</@c.list1>

3 组合使用panel 和 list

 

<@c.panel id="list-panel" title=path style="min-height:500px;">
          <@c.list1 rs=list class="list" showDate=1 ns="DOWNLOAD_MES";item >[${item.FILE_TYPE!""}]---</@c.list1>
    </@c.panel>

 

-- END --

你可能感兴趣的:(freemarker,list,Panel)