主题 : 自定义标签的使用方法简介
级别: 白丁
UID: 3
积分:2415 加为好友
威望: 0 精华: 0
主题:23 回复:1614
注册时间:2009-06-02
在线时长:0
1#   发表于:2009-06-09 15:10:41  IP:59.139.*.*
经常有网友反映JEECMS的标签不够灵活,很多布局显示效果做不出来。其实不然,JEECMS默认提供的都是一些最常用的显示效果,对于那些相对复杂的布局方式,大家其实可以用JEECMS的自定义标签来实现。可以说,只要你能够用html写出想要的效果,就能在JEECMS自定义标签中使用并展现出来,以下用最常用的@cms.ArtiList,即文章列表标签做说明。
    
  主要分两步:

第一步、在模板管理的tag_ArtiList.html 模板里面编写需要的自定义标签显示效果,内容如下

[#--
该模板用于用户自定义文章列表显示风格。
调整文章列表标签参数sysTpl='0'可调用本模板
--]


[#if style=='1']
[#list pagination.list as ctt]
 <img src="${ctt.imgUrl!}" alt="${ctt.tit(200)}" border="0"/>      
 [#if ctt.description?length lte 76 ]${ctt.description}[#else]${ctt.description[0..75]}..[/#if]
 <a href="${ctt.url}" class="jinru">>>进入详细</a> 
[/#list]


[#else]
<ul>
[#list pagination.list as ctt]
<li><a href="${ctt.url}" title="${ctt.tit(200)}" target="_blank">${ctt.stit(titLen)}</a></li>
[/#list]
</ul>
[/#if]


[#if isPage=="1" && pagination.list?size > 0]
[#if sysPage!="0"]
[@cms.SysPage style=sysPage cssClass=pageClass cssStyle=pageStyle/]
[#elseif userPage!=""]
[@cms.UserPage name=userPage cssClass=pageClass cssStyle=pageStyle solution=upSolution webRes=upWebRes/]
[/#if]
[/#if]


在[#if style=='1']里设置了第一种自定义标签,里面可以自己加需要的布局或样式
同理可以定义[#if style=='2']的自定义标签,在调用时对应style的值就可以。


第二步、模板调用

<!--头条新闻begin-->
[@cms.ArtiList attr='4' count='1' sysContent='1-1' orderBy='9' titLen='25' isPage='0' sysTpl='0' style='1' /] 
<!--头条新闻end-->

attr='4'对应文章属性,默认4代表头条,具体的可以在“文章内容->内容属性”里设置对应关系

style='1'对应tag_ArtiList.html模板里的[#if style=='1']的自定义标签,同理
style='2'对应tag_ArtiList.html模板里的[#if style=='2']的自定义标签
以此类推
本帖最近评分记录:
  • perfect    2009-08-10   人气    +1    精品文章
  • 生命在于折腾!
    级别: 白丁
    UID: 3
    积分:2415 加为好友
    威望: 0 精华: 0
    主题:23 回复:1614
    注册时间:2009-06-02
    在线时长:0
    2#   发表于:2009-06-09 15:19:35  IP:59.139.*.*
    当然大家也可以直接在模板里写自定义标签,这样做的优点是简单直接,但是可重用性差,以下也做个简单介绍,大家自己视情况选择:

       以栏目列表显示标签做演示,要求栏目输出id为1的栏目里所有的子栏目名称及链接,且每输出两个子栏目要换行,示例代码如下:

    [@cms.ChnlList id='' inner='1';c,i]
    <a  href="${c.url}">${c.name}</a>[#if i%2==0]<br/>[/#if]
    [/@cms.ChnlList]

        为了简单明了,这里只列出关键的输出信息,html布局忽略,当然大家可以往里面加入自己需要的html布局和样式。

      同样还可以用cms.ArtiList 自定义标签来做出每行显示两条文章标题的效果,代码如下

    [@cms.ArtiList chnlId='' titLen='20' count='12'inner='1';a,i,has_next]
    [#if i==0]<table>[/#if]
    [#if i%2==0]
    <tr><td>${a.title}</td>[#if !has_next]<td>&nbsp;</td></tr>[/#if]
    [#else]
    <td><a title="${a.title}" href="${a.url}">${a.title}</a>
                     ${a.releaseDate?string("yyyy/MM/dd")}
                    </td></tr>
    [/#if]
    [#if !has_next]</table>[/#if]
    [/@cms.ArtiList]
    生命在于折腾!
    级别: 贡士
    UID: 67
    积分:466 加为好友
    威望: 31 精华: 0
    主题:68 回复:230
    注册时间:2009-06-06
    在线时长:0
    3#   发表于:2009-06-09 15:25:26  IP:119.116.*.*
    顶一下,谢谢楼主提供
    级别: 白丁
    UID: 68
    积分:7 加为好友
    威望: 0 精华: 0
    主题:1 回复:6
    注册时间:2009-06-06
    在线时长:0
    4#   发表于:2009-06-09 16:09:04  IP:114.96.*.*
    学习了。谢谢
    级别: 秀才
    UID: 30
    积分:32 加为好友
    威望: 0 精华: 0
    主题:4 回复:10
    注册时间:2009-06-03
    在线时长:0
    5#   发表于:2009-06-09 20:31:30  IP:211.206.*.*
    [@cms.ArtiList chnlId='' titLen='20' count='12'inner='1';a,i,has_next] 

    里面的 a 指的是哪个对象?
    都有哪些属性呢?
    级别: 白丁
    UID: 31
    积分:209 加为好友
    威望: 0 精华: 0
    主题:2 回复:167
    注册时间:2009-06-03
    在线时长:0
    6#   发表于:2009-06-10 14:14:05  IP:59.134.*.*
    a代表文章对象,即Article类的对象。
    级别: 秀才
    UID: 72
    积分:54 加为好友
    威望: 0 精华: 0
    主题:5 回复:22
    注册时间:2009-06-07
    在线时长:0
    7#   发表于:2009-06-17 21:05:45  IP:122.147.*.*
    E文好多,好讨厌
    级别: 贡士
    UID: 43
    积分:278 加为好友
    威望: 0 精华: 0
    主题:36 回复:75
    注册时间:2009-06-03
    在线时长:0
    8#   发表于:2009-06-18 11:31:30  IP:219.193.*.*
    超级顶。好帖子。不知道其他的标签能否像类似的自定义。
    级别: 贡士
    UID: 67
    积分:466 加为好友
    威望: 31 精华: 0
    主题:68 回复:230
    注册时间:2009-06-06
    在线时长:0
    9#   发表于:2009-06-20 11:06:43  IP:119.116.*.*
    谢谢,辛苦了
    级别: 秀才
    UID: 520
    积分:15 加为好友
    威望: 0 精华: 0
    主题:1 回复:6
    注册时间:2009-08-17
    在线时长:0
    10#   发表于:2009-08-20 20:59:42  IP:222.193.*.*
    我在 tag_ArtiList.html 中调整布局,想做到4个图文换行(图片下边显示标题),一共显示两行,在[#list pagination.list as ctt] 中如何判断[#if i%2==0]或者[#if !has_next]呢?变量 i 和 has_next 如何取?
    1 2 3 4 5 > >| 共5页