JEECMS 2.4.2 之添加新的可扩展的ftl模版文件、自定义方法
Demo:
- <@cms.CfgList isPage='1' league='0' recommend='0' lala='0' hot='1' memberId='0' pageNo=pageNo count='4' orderBy=0 ;g>
- <dl>
- <dt><a href="/lala/LalaIndex.htm?fid=${g.id}" target="_blank"><img src="${g.logo}" /></a></dt>
- <dd>
- <span><a href="/lala/LalaIndex.htm?fid=${g.id}" target="_blank">${g.name!}</a></span>
- <#assign al=action.getArtiByCfgId(g.id!0).list>
- <#if al??>
- <#list al as ll>
- <#if ll.description?length gt 42>
- <a href="/lala/LaTopicDetail.htm?fid=${g.id}&aid=${ll.id}" target="_blank" style="text-decoration: none;">${ll.description?substring(0,41)}...</a>
- <#else>
- <a href="/lala/LaTopicDetail.htm?fid=${g.id}&aid=${ll.id}" target="_blank" style="text-decoration: none;">${ll.description!}</a>
- </#if>
- </#list>
- </#if>
- </dd>
- </dl>
- </@cms.CfgList>
上面的<@cms.CfgList...>之所以可以调用是因为在freemarker.properties:
- auto_import="/WEB-INF/ftl_lib/ponyjava.com/index.ftl" as p, "/WEB-INF/ftl_lib/fcms/index.ftl" as cms
接下来顺藤摸瓜的跟进去看看index.ftl 找到相应的宏定义(macro)
- <#--
- 球迷会列表(自定义内容)
- team:所属俱乐部(默认为空)
- league:赛事(默认空)
- recommand:关联热门话题(默认0)
- orderBy:排序方式。【0:发布时间降序;1:发布时间升序;2:固顶降序;3:置顶降序;4:日点击降序;5:周点击降序;6:月点击降序;7:季点击降序;8:年点击降序;9:总点击降序】(默认0)
- memberId:关联版主。
- hot:是否推荐
- lala:0:啦啦团 1:球迷会 2:专题
- -->
- <#macro CfgList league='0' recommend='0' orderBy='0' lala="-1" hot="0" memberId="0" count="5" pageNo="0" hot="0"
- titLen='20' target='0' headMark='0' lineHeight='' bottomLine='0' ctgForm='0' ctgClass='' dateFormat='0' datePosition='1' memberId="0"
- picWidth='24.9' picHeight='110'
- rollDisplayHeight='28' rollLineHeight='28' rightPadding='20' rollCols='1' rollSpeed='1' isSleep='1' rollSleepTime='50' rollCount='1' rollSpan='1'
- flashWidth='296' flashHeight='200' textHeight='20'
- isPage='0' count='20' firstResult='0' pageNo=pageNo
- style='1' inner='0' isLoop='1' cssClass='' cssStyle='' showLinkStyle='1'
- sysTpl='1' sysContent='0' userContent='' sysPage='0' newday='0' userPage='' upSolution='' upWebRes='' pageClass='' pageStyle='' custom=[]>
- <@s.action name='CfgList' league=league namespace='/fcms/tag/article' executeResult='true' memberId=memberId
- recommend=recommend orderBy=orderBy count=count lala=lala hot=hot
- titLen=titLen target=target headMark=headMark lineHeight=lineHeight bottomLine=bottomLine ctgForm=ctgForm ctgClass=ctgClass dateFormat=dateFormat datePosition=datePosition
- picWidth=picWidth picHeight=picHeight
- rollDisplayHeight=rollDisplayHeight rollLineHeight=rollLineHeight rightPadding=rightPadding rollCols=rollCols rollSpeed=rollSpeed isSleep=isSleep rollSleepTime=rollSleepTime rollCount=rollCount rollSpan=rollSpan
- flashWidth=flashWidth flashHeight=flashHeight textHeight=textHeight
- isPage=isPage count=count firstResult=firstResult pageNo=pageNo
- style=style cssClass=cssClass cssStyle=cssStyle showLinkStyle=showLinkStyle
- sysTpl=sysTpl sysContent=sysContent userContent=userContent sysPage=sysPage newday=newday userPage=userPage pageClass=pageClass pageStyle=pageStyle customs=customs
- />
- <#if isLoop=='1'>
- <#list n_pagination.list as item>
- <#nested item,item_index,item_has_next/>
- </#list>
- <#else>
- <#nested n_pagination/>
- </#if>
- </#macro>
上述代码中不难发现使用了宏,并且会向指定的namespace、action参数请求数据,在这里提醒一下必须还要加上 <#nested> (指令执行指令开始和结束标记之间的模板片断)
否则在页面上打印出来的不是你想要的数据,而是你的项目src根目录下的各种文件名称,这一点我暂时没弄明白。
JEECMS 2.4.2 之添加新的可扩展的ftl模版文件、自定义方法的更多相关文章
- 添加新硬盘,扩展Centos7根分区
##背景介绍,系统安装时,分配的硬盘容量太小,根分区空间不够用,现添加一个新硬盘,通过以下步骤来扩展centos7根分区 [root@t201 ~]# df -h 文件系统 容量 已用 可用 已用% ...
- 如何使用django操作数据库,向原有表中添加新的字段信息并建立一个多对多的关系?
(注:本人用的pycharm开发工具) 1.在你要添加新字段的app的 models.py 文件中添加需要新增的字段(book表新增authors字段并和author建立多对多关系,author表新增 ...
- Django数据库,在原有表中添加新字段
1.在你要添加新字段的app的 models.py 文件中添加需要新增的字段(这里新增的是dress字段): from django.db import models # Create your mo ...
- 【译】Meteor 新手教程:在排行榜上添加新特性
原文:http://danneu.com/posts/6-meteor-tutorial-for-fellow-noobs-adding-features-to-the-leaderboard-dem ...
- 【PostgreSQL】PostgreSQL添加新服务器连接时,报错“Server doesn't listen ”,已解决。
PostgreSQL添加新的服务器连接时,报错:
- 一个新人如何学习在大型系统中添加新功能和Debug
文章背景: 今年七月份正式入职,公司主营ERP软件,楼主所在的组主要负责二次开发,使用的语言是Java. 什么叫二次开发呢?ERP软件的客户都是企业.而这些企业之间的情况都有所不同,一套标准版本的企业 ...
- ASP.NET MVC 5 - 给电影表和模型添加新字段
在本节中,您将使用Entity Framework Code First来实现模型类上的操作.从而使得这些操作和变更,可以应用到数据库中. 默认情况下,就像您在之前的教程中所作的那样,使用 Entit ...
- Linux 使用fdisk添加新分区
Linux系统由于数据累计增长.前期存储规划不合理等诸多因素,出现存储不够用的情况时,此时就需要扩展逻辑分区或添加新的逻辑分区.下面介绍一下通过使用fdsik添加新的逻辑分区. 首先使用df命令检查文 ...
- [译]:Orchard入门——给网站添加新博客
原文链接:Adding a Blog to Your Site 文章内容基于Orchard 1.8版本 Orchard提供一个博客引擎--这让添加一个新博客到你网站变得非常容易. 本文将介绍怎样添加一 ...
随机推荐
- Java调用Oracle存储过程
package com.hp.test; import java.sql.CallableStatement; import java.sql.Connection; import java.sql. ...
- 【angularJS】三个学习angulaJS的链接
1.官方文档:https://code.angularjs.org/1.5.7/docs/api 2.A Better Way to Learn AngularJS:https://thinkster ...
- python对象序列化或持久化的方法
http://blog.csdn.net/chen_lovelotus/article/details/7233293 一.Python对象持久化方法 目前为止,据我所知,在python中对象持久化有 ...
- Spring boot 数据源未配置异常
问题 在使Springboot自动生成的项目框架时如果选择了数据源,比如选择了mysql,生成项目之后,启动会报一下异常: Description: Cannot determine embedded ...
- lodash random
_.random([min=0], [max=1], [floating]) 产生一个包括 min 与 max 之间的数. 如果只提供一个参数返回一个0到提供数之间的数. 如果 floating 设为 ...
- css3组件实战--绚丽效果篇
代码地址如下:http://www.demodashi.com/demo/11656.html 一.3D风景动态骰子 在线演示 1.css3D.动画基础知识预备 2.创建一个3D场景 先放置一个.bo ...
- 程序员的笔记工具——Markdown
安利一款轻量级的标记语言——Markdown 如上,Markdown作为一门语言,十分钟即可入门,熟练以后麻麻再也不用担心我在文章排版上浪费时间了!! 入门资源可参考如下回答(建议拣一条完整的看完上手 ...
- strults2标签s:set的用法
struts2标签<s:set></s:set>的用法.原理 http://liuna718-163-com.iteye.com/blog/1124654 我的例子: ...
- 查看电脑CPU核心数的方法
查看电脑CPU核心数的方法: 方法一: 同时按下[Ctrl+Shift+Esc]组合快捷键打开任务管理器: 点击[性能]就可以看出是几核CPU了: 方法二: 在计算机图标上面点击右键,选择“管理”: ...
- spring启动加载过程源码分析
我们知道启动spring容器两常见的两种方式(其实都是加载spring容器的xml配置文件时启动的): 1.在应用程序下加载 ApplicationContext ctx = new ClassPat ...