问题搜索

将博cms常用的模板和标签

 

标签权重:
 
1、 文件包含标签
2、 基本标签
3、 频道标签
4、 栏目标签
5、 内容标签                             
 
 
 
 
 
 
 
 
 
 
 
 
 
 
文件包含标签
<jcms:include file="~/a.htm" />
<jcms:include file="/a.htm" />
 
基本标签
{site.Dir}                                                               网站目录
<jcms:site.dir/>                                                网站目录
<jcms:site.url/>                                                站点URL
<jcms:site.name/>                                            网站名称
<jcms:site.page.theme/>                                    模板皮肤路径
<jcms:site.page.nav/>                                       当前位置导航
<jcms:site.page.title/>                                       页面标题
<jcms:site.page.keywords/>                               页面关键字
<jcms:site.page.description/>                             页面简介
 
频道标签
{$ChannelId}                                                  频道id
{$ChannelName}                                             频道名称
{$ChannelType}                                               频道类型
{$ChannelDir}                                                 频道路径
{$ChannelMenu}                                             栏目导航菜单
{$ChannelItemName}                                       频道项目名
{$ChannelItemUnit}                                         频道项目单位
{$ChannelInfo}                                               频道简介
 
频道页还具备循环标签,具体可参考官方模板
{$jcms:channel(字段列表)}
<#foreach collection="${contents}" var="field" index="i"><#/foreach>
{$/jcms:channel}
 
栏目标签
{$ChannelId}                                                  频道id
{$ChannelName}                                             频道名称
{$ChannelType}                                               频道类型
{$ChannelDir}                                                 频道路径
{$ChannelMenu}                                             栏目导航菜单
{$ChannelItemName}                                       频道项目名
{$ChannelItemUnit}                                         频道项目单位
{$ClassId}                                                       栏目id
{$ClassName}                                                 栏目名称
{$ClassInfo}                                                    栏目简介
 
 
栏目页还具备循环标签,具体可参考官方模板
{$jcms:class(字段列表)}
<#foreach collection="${contents}" var="field" index="i"><#/foreach>
{$/jcms:class}
 
内容标签(以文章为例,其他模型类似)
{$ChannelId}                                                  频道id
{$ChannelName}                                             频道名称
{$ChannelType}                                               频道类型
{$ChannelDir}                                                 频道路径
{$ChannelItemName}                                       频道项目名
{$ChannelItemUnit}                                         频道项目单位
{$ClassId}                                                       栏目id
{$ClassName}                                                 栏目名称
{$_id}                                              文章编号
{$_title}                                              文章标题
{$_img}                                            标题图片地址
{$_summary}                                        文章简介
{$_adddate}                                          文章发表日期
{$_tags}                                             文章标签
{$_author}                                           文章作者
{$_editor}                                            文章编辑
{$_sourcefrom}                                  文章来源
{$_viewnum}                                        文章浏览数
{$_getNeightor()}                                    上、下篇文章
 
频道循环标签
<jcms:channelloop…></jcms:channelloop>
       repeatnum                                                必填:循环次数
       selectids                                                   可选:选择的频道id,用“|”隔开
       orderfield                                                        可选:排序字段,默认为pid
       ordertype                                                  可选:排序方式,默认为asc
 
 
        循环体内可以使用频道标签栏目循环标签
 
 
栏目循环标签
<jcms:classloop…></jcms:classloop>
 
              channelid                                    必填:频道ID
        repeatnum                                  可选:循环次数,0表示不限制
        depth                                         可选:栏目深度,0本频道所有栏目,如果大于0将表示第几级栏目,-1表示最末级栏目
        selectids                                     可选:用于循环的栏目id,以"|"分隔开
        parentid                                      可选:父级id,如果没有这个参数或参数值为0则不限制
 
 
        循环体内可以使用的内容循环标签
              {$ClassNO}:第n个循环体,从1开始计算
 
 
 
 
 
内容循环标签
基本功能
 
<jcms:contentloop ...></jcms:contentloop>
       fields                                                必填:调用的字段
       channelid                                           可选:频道ID(默认0)
       channeltype                                       可选:频道模型(channelid为0时有效,否则就是选定的频道模型)
       classlid                                              可选:栏目ID,如果为0就取该频道所有的栏目(默认0)
       repeatnum                                         可选:循环记录数(默认10)
       istop                                                        可选:是否置顶(默认0,-1:不置顶;1:置顶;0:不约束)
       isfocus                                              可选:是否焦点(默认0,-1:不是焦点;1:是焦点;0:不约束)
       isimg                                                可选:是否带缩略图(默认0,1:带;0:不约束)
       orderfield                                                 可选:排序字段(默认id)
       ordertype                                           可选:排序方式(默认desc)
       timerange                                                 可选:时间约束(1d:今天,1w:本周,1m:本月,1y:本年度 如果不赋值就是不约束)
       wherestr                                           可选:扩展条件(比如:wherestr="classid in (1,2,3)",等同于SQL的检索条件,但如果遇到“<”和“>”,就用“小于”和“大于”代替,比如wherestr="id小于100")
 
 
 
循环内容模板说明:
<#foreach collection="${contents}" var="field" index="i"><#/foreach>
是记录的循环标记,循环体内使用${field.title}这样的格式来表示字段值,另外还有几个内置标签:
$_{url}                内容的链接地址
$_{img}                缩略图地址
$_{classname}          内容所属的栏目名称
$_{classlink}          内容所属的栏目地址
$_{channelname}        内容所属的频道名称
$_{channellink}        内容所属的频道地址
 
 
实例1
 
<jcms:contentloop channelid="1" classid="0" repeatnum="10" fields="title,tcolor">
<ul>
<#foreach collection="${contents}" var="field" index="i">
<li><a href="$_{url}" title="${field.title}" style="color:${field.tcolor}">${field.title}</a></li>
<#/foreach>
</ul>
</jcms:contentloop>
说明:取频道编号为1的前10条内容,字段取标题和标题颜色。
 
扩展功能(适合复杂循环)
在内容循环中可以使用条件语法(条件语法还可以嵌套),具体如下:
 
<#if test="${测试条件}">
<#else>
<#/if>
 
测试条件的函数有如下
equals(obj1, obj2) - 测试obj1 obj2 是否相等.
notequals(obj1, obj2) -
测试obj1 obj2 是否不相等. 相当于:not(equals(obj1, obj2))
iseven(num) -
测试 num 是否为偶数
isodd(num) -
测试 num 是否为奇数
isempty(string) -
测试 string 长度是否等于0. 相当于:equals(string.Length, 0)
isnotempty(string) -
测试 string 长度是否大于0.
isnumber(num) -
测试 num 是否为数字
toupper(string) - 格式化成大写
tolower(string) -
格式化成小写
length(string) - 得到string的长度
isnull(obj) - 测试obj 是否为 null
not(boolvalue) - boolvaluetrue时为falseboolvaluefalse时为true
iif(booleanExpression, iftruevalue, iffalsevalue) -
形如C#中的 booleanExpression ? iftruevalue : iffalsevalue
例如:
${iif(isodd(i), "bgcolor=yellow", "bgcolor=red")}
cint(value) - 使用 .net类库中的接口Convert.ToInt32)
cdouble(value) -
将值格式为成 double
cdate(value) -
将值格式为成 DateTime. 例如: ${cdate("2005-5-1")}
cdatestring(value, string1) -
使用指定的string1格式将当前值格式化. 例如: ${cdatestring("2005-5-1","yy-MM-dd")}
gt(obj1, obj2) -
obj1大于obj2时为true
lt(obj1, obj2) -
obj1小于obj2时为true
is - 例如: ${obj1 is obj2}.
isnot -
例如: ${obj1 isnot obj2}
and -
例如: ${obj1 not obj2} 类似C#中的: &&
or -
类似C#中的:||
lt, lte, gt, gte -
分别类似 ("<""<="">"">=").
 
实例2
 
<jcms:contentloop channelid="1" classid="0" repeatnum="10" fields="[title],[summary]" orderfield="viewnum">
<#foreach collection="${contents}" var="field" index="i">
<#if test="${i lt 4}">
     <#if test="${equals(i,1)}">
     <dt><span class="ranknum red">${i}</span><a href="$_{url}" title="${field.title}">${field.title}</a></dt>
     <dd><#cutstring len="40">${field.summary}<#/cutstring>...<a href="$_{url}" target="_blank">[阅读全文]</a></dd>
     <#else>
     <dt><span class="ranknum red">${i}</span><a href="$_{url}" target="_blank" title="${field.title}">${field.title}</a></dt>
     <#/if>
<#else>
     <dt><span class="ranknum">${i}</span><a href="$_{url}" target="_blank" title="${field.title}">${field.title}</a></dt>
<#/if>
<#/foreach>
</jcms:contentloop>
 
 
说明:
1、 取频道编号为1的前10条内容,字段取标题和简介;
2、 定义了ranknum、red等几个css样式;
3、 前1条记录的前缀样式是ranknum red,后3条记录的前缀样式是ranknum;
4、 如果是第1条记录,则有简介,否则不带简介。
5、 其中i表示当前循环的次数
 
 
阅读: