第二课 认识织梦CMS的各个标签

时间:2011-06-18 23:44 来源:未知 作者:admin 点击: 156 次

这是织梦CMS建站教程系列的第二课,在这一课,我会跟大家一起学习织梦的标签。首先在这里,我要声明一点,想要做好一个企业网站,其实能用到的织梦标签也就几个:第一个,列表标签{dede:arclist}{/dede:arclist}(图1 图5);


图1 文章列表页面
图5 产品列表页 第二个,内容标签: {dede:field.body/}
图2 点击图1中的任意一个链接后的打开内容页
图6 点击图5中某个产品链接打开产品内容页 第三个,封面标签 {dede:field.content/};

 


图3 点击导航条上的“关于百通”
图4 “关于百通”的封面页面

要做的页面也就几个:新闻文章列表页List_article、产品商品列表页 List_shop;新闻文章内容页Article_article;产品商品内容页Article_article;再有一个就是封面页了 Index_article。前面两个标签好理解,就是列表+内容,说白了就是有一个页面,列出了若干个新闻或者产品,然后点击某个链接就会转到该新闻或者产品的具体内容页面。至于第三个标签Index-article,它是专门用来存放单个内容页面的,也就是没有列表页面的栏目,如“关于我们”、“企业简介”、“联系我们”等页面,像这些页面就不需要有列表的形式了,我们只要求点击该栏目链接就直接打开该栏目的内容了。

织梦模板标记简介:

在了解DedeCms的模板代码之前,了解一下织梦模板引擎的知识是非常有意义的。织梦模板引擎是一种使用XML名字空间形式的模板解析器,使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。

1、织梦模板引擎的代码样式有如下几种形式:

{dede:标记名称 属性='值'/}

{dede:标记名称 属性='值'}{/dede:标记名称}

{dede:标记名称 属性='值'}自定义样式模板(InnerText){/dede:标记名称}

如果使用带底层模板的标记,必须严格用{dede:标记名称 属性='值'}{/dede:标记名称} 这种格式,否则会报错。

2、织梦模板引擎内置有多个系统标记,这些系统标记在任何场合都是能直接使用的。

(1) global 标记表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为:{dede:global name='变量名称'}{/dede:global}或{dede:global name='变量名称'/},其中变量名称不能加 $ 符号,如变量 $cfg_cmspath ,应该写成 {dede:global name='cfg_cmspath'/} 。

(2) foreach 用来输出一个数组,形式为:{dede:foreach array='数组名称'}[field:key/] [field:value/]{/dede:foreach}

(3) include 引入一个文件,形式为:{dede:include file='文件名称' ismake='是否为dede板块模板(yes/no)'/}。对文件的搜索路径为顺序为:绝对路径、include文件夹,CMS安装目录,CMS主模板目录

3、织梦标记允许在任何标记中使用函数对得到的值进行处理,形式为:{dede:标记名称 属性='值' function='youfunction("参数一","参数二","@me")'/}其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")'/}

4、织梦标记允许有限的编程扩展。

格式为:{dede:tagname runphp='yes'}$aaa = @me;@me = "123456";{/dede:tagname}

说明:@me 表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给@me。此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText。

【Arclist 标记】

这个标记是DedeCms最常用的一个标记,也叫自由列表标记,其中hotart、 coolart、likeart、artlist、imglist、imginfolist、specart、autolist 这些标记都是由这个标记所定义的不同属性延伸出来的别名标记。

功能说明:获取指定的文档列表。适用范围:封面模板、列表模板、文档模板

基本语法:

{dede:arclist typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''}

底层模板(InnerText)

{/dede:arclist}

属性说明:

[1] typeid='' 表示栏目ID,在列表模板和档案模板中一般不需要指定,在封面模板中允许用","分开表示多个栏目;

[2] row='' 表示返回文档列表总数;

[3] col='' 表示分多少列显示(默认为单列);

[4] titlelen='' 表示标题长度;

[5] infolen='' 表示内容简介长度;

[6] imgwidth='' 表示缩略图宽度;

[7] imgheight='' 表示缩略图高度;

[8] type='' 表示档案类型,其中空值、不使用这个属性或type='all'时为普通文档

§ type='commend'时,表示推荐文档,等同于 {dede:coolart}{/dede:coolart}

§ type='image'时,表示必须含有缩略图片的文档,等同于{dede:imglist}{/dede:imglist}、{dede:imginfolist}{/dede:imginfolist}

§ type='spec'时,表示专题,等同于标记{dede:specart}{/dede:specart}

以上属性值可以联合使用,如: type='commend image' 表示推荐的图片文档

[9] orderby='' 表示排序方式,默认值是 senddate 按发布时间排列。

§ orderby='hot' 或 orderby='click' 表示按点击数排列

§ orderby='pubdate' 按出版时间排列(即是前台允许更改的时间值)

§ orderby='sortrank' 按文章的新排序级别排序(如果你想使用置顶文章则使用这个属性

§ orderby='id' 按文章ID排序

§ orderby='postnum' 按文章评论次数排序

§ orderby='rank' 随机获得指定条件的文档列表

[10] orderway='' 值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序。

[11] keyword='' 表示含有指定关键字的文档列表,多个关键字用","分开

[12] channelid='' 表示特定的频道模型ID,内置的频道:专题(-1)、文章(1)、图集(2)、Flash(4)、软件(3)

[13] limit='起始,结束' 表示限定的记录范围,row属性必须等于"结束 - 起始",mysql的limit语句是由0起始的,如 “limit 0,5”表示的是取前五笔记录,“limit 5,5”表示由第五笔记录起,取下五笔记录,使用了本属性后,row属性将无效。

[14] att='数值' 表示自定义属性值

[15] subday='天数' 表示在多少天以内的文档,通常用于获取指定天数的热门文档、推荐文档、热门评论文档等

[16] partsort='排列位数' 表示自动获得父栏目的所有子数中排列在第几位的栏目ID,标记为 {dede:autolist}{/dede:autolist} 时,使用本属性才有效。

底层模板字段:

ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),writer,shorttitle,memberidpubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),textlink,typelink,imglink,image

其中:textlink = <a href='arcurl'>title</a>typelink = <a href='typeurl'>typename</a>imglink = <a href='arcurl'><img src='picname' border='0' width='imgwidth' height='imgheight'></a>image = <img src='picname' border='0' width='imgwidth' height='imgheight'>

字段调用方法:[field:varname/]。如:

{dede:arclist infolen='100'}

[field:textlink/]<br>[field:info/]<br>

{/dede:arclist}

注:底层模板里的Field实现也是织梦标记的一种形式,因此支持使用PHP语法,Function扩展等功能

如: 给当天发布的内容加上 (new) 标志 [field:senddate runphp='yes'] $ntime = time(); $on eday = 3600 * 24; if(($ntime - @me)<$on eday) @me = "<font color='red'>(new)</font>"; else @me = ""; [/field:senddate]

>>【Field 标记】

功能说明:用于获取特定栏目或档桉的字段值及常用的环境变量值。适用范围:封面模板、列表模板、文档模板

(1)基本语法

{dede:field name='字段名'/}

(2) 系统分配的field

板块模板:phpurl,indexurl,indexname,templeturl,memberurl,powerby,webname,specurl

列表模板:position,title,phpurl,templeturl,memberurl,powerby,indexurl,indexname,specurl, 栏目表dede_arctype的所有字段。其中 position 为 “栏目一 > 栏目二” 这样形式的链接,title则为这种形式的标题

文档模板:position,phpurl,templeturl,memberurl,powerby,indexurl,indexname,specurl,id(同 ID,aid)

(3) 文档所有内容字段

档案dede_archives表 和 附加表的所有字段。

>>【Channel 标记】

功能说明:用于获取栏目列表。适用范围:封面模板、列表模板、文档模板

(1)基本语法

{dede:channel row='' type=''}

自定义样式模板(InnerText)

{/dede:channel}

(2)属性

[1] row='数字' 表示获取记录的条数(通用在某级栏目太多的时候使用,默认是 8)

[2] type = top,sun/son,self

type='top' 表示顶级栏目

type='son' 或 'sun' 表示下级栏目

type='self' 表示同级栏目

其中后两个属性必须在列表模板中使用。

(3)底层模板变量

ID,typename,typedir,typelink(仅表示栏目的网址)。例:

{dede:channel type='top'}

<a href='[field:typelink /]'>[field:typename/]</a>

{/dede:channel}

注:在没有指定typeid的情况下,type标记与模板的环境有关,如,模板生成到栏目一,那么type='son'就表示栏目一的所有子类

>>【Type 标记】别名 onetype

功能说明:表示指定的单个栏目的链接。适用范围:封面模板、列表模板、文档模板

(1)语法 {dede:type typeid=''}{/dede:type}

(2)属性 typeid='栏目ID'

(3)底层模板变量 typename,typelink(仅表示栏目的网址)

>>【Autochannel 标记】

功能说明:表示指定排序位置的单个栏目的链接。适用范围:封面模板、列表模板、文档模板

(1)语法 {dede:autochannel partsort=''}{/dede:autochannel}

(2)属性 partsort='栏目所在的排序位置'

(3)底层模板变量 typename,typelink(仅表示栏目的网址)

关于更多的标签说明,大家可以到我的网络U盘下载:

DedeCMS_模板标签参考手册

DedeCMS_二次开发参考手册.chm

DedeCMS_常用问题手册.chm

DedeCMS_系统设置说明手册

好了,今天的这一课就先讲到这,下一课,我们将会详细分析企业网站建设中所用到得几个标签的用法,敬请关注。如果大家对本教程有什么看法,可以直接给我发邮箱 marslang@baitong 谢谢。

更多推荐

第二课 认识织梦CMS的各个标签