dedecms 制作模板中使用的全局标记图文教程


Posted in PHP onMarch 11, 2007
如果这个官方的模板解释看的太抽象的,可以 参考一下:

dedecms 制作模板中使用的全局标记图文教程


dedecms 制作模板中使用的全局标记图文教程


dedecms 制作模板中使用的全局标记图文教程


dedecms 制作模板中使用的全局标记图文教程

解析引擎概述  模板设计规范  代码参考
标记参考: arclist(artlist,likeart,hotart,imglist,imginfolist,coolart,specart) field channel mytag vote friendlink mynews loop channelartlist page list pagelist pagebreak fieldlist 
--------------------------------------------------------------------------------
一、织梦模板解析引擎概述 
在了解DedeCms的模板代码之前,了解一下织梦模板引擎的知识是非常有意义的。织梦模板引擎是一种使用XML名字空间形式的模板解析器,使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。
1、织梦模板引擎的代码样式有如下几种形式:
{dede:标记名称 属性='值'/}
{dede:标记名称 属性='值'}{/dede:标记名称}
{dede:标记名称 属性='值'}自定义样式模板(InnerText){/dede:标记名称}
提示:
对于{dede:标记名称 属性='值'}{/dede:标记名称}这种形式的标记,在2.1版中,表示结束只需要用“{/dede}”,但
V3中需要严格用“{/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='文件名称' /}
对文件的搜索路径为顺序为:绝对路径、include文件夹,CMS安装目录,CMS主模板目录
3、织梦标记允许在任何标记中使用函数对得到的值进行处理,形式为:
{dede:标记名称 属性='值' function='youfunction("参数一","参数二","@me")'/}
其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:
{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")' /}
二、DedeCms 模板制作规范
1、DedeCms 的主要模板放在 “DedeCms安装目录/templets” 目录,其中system为底层模板,一般可以在“自定义样式模板(InnerText)”中改变,default 文件夹就是DedeCms官方提供的默认模板。因为DedeCms最小系统都包含图集、文章、Flash、下载4个大模板,加上专题、搜索 和 主页模板,一共有十六个基本的模板文件,你可以按自己的情况更改有需要的模板。
2、DedeCms的模板标记按功能分为:封面模板标记(频道封面、主页)、列表模板标记、文档模板标记和特殊用途标记。
三、主要标记参考
1、arclist 标记
这个标记是DedeCms最常用的一个标记,其中 hotart、coolart、likeart、artlist、imglist、imginfolist、specart 这些标记都是由这个标记所定义的不同属性延伸出来的。
作用:获取一个指定的文档列表
适用范围:封面模板、列表模板、文档模板
(1)基本语法:
{dede:arclist
typeid='' row='' col='' titlelen='' 
infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword=''}
自定义样式模板(InnerText)
{/dede:arclist}
本标记等同于artlist、imglist、imginfolist标记,其中与artlist是完全等同的,与imglist、imginfolist仅是默认的底层模板不同。
(2)属性参考:
[1] typeid='' 表示栏目ID,在列表模板和档案模板中一般不需要指定,在封面模板中允许用","分开表示多个栏目;
[2] row='' 表示返回文档条数;
[3] col='' 表示分多少列显示(默认为单列);
[4] titlelen='' 表示标题长度;
[5] infolen='' 表示内容简介长度;
[6] imgwidth='' 表示缩略图宽度;
[7] imgheight='' 表示缩略图高度;
[8] type='' 表示档案类型,其中默认值或type='all'时为普通文档
§ type='spec'时,表示专题文档,等同于
{dede:specart typeid='' row='' col='' titlelen='' infolen=''
imgwidth='' imgheight='' listtype='' keyword=''}{/dede:specart}
§ type='commend'时,表示推荐文档,等同于
{dede:coolart typeid='' row='' col='' titlelen='' infolen=''
imgwidth='' imgheight='' listtype='' keyword=''}{/dede:coolart}
§ type='image'时,表示必须含有缩略图片的文档
§ type='数字',特定的频道类型,1 文章,2 图片集,3 软件,4 Flash,其它数字则是用户自定义频道的id ,即是 dede_channeltype.ID 的值。
[9] orderby='' 表示排序方式,默认值是 senddate 按发布时间排列。 同名属性: sort
§ orderby='hot' 或 orderby='click' 表示按顺序排列,使用本属性后等同于
{dede:hotart typeid='' row='' col='' titlelen='' infolen=''
imgwidth='' imgheight='' listtype='' keyword=''}{/dede:hotart}
§ orderby='pubdate' 按出版时间排列(即是前台允许更改的时间值)
§ orderby='sortrank' 按文章的新排序级别排序(如果你想使用置顶文章则使用这个属性)
§ orderby='id' 按文章ID排序
[10] keyword='' 表示含有指定关键字的文档列表,多个关键字用","分开。
(3)底层模板变量
ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),
pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,
arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),
textlink,typelink,imglink,image
其中:
textlink = title
typelink = typename
imglink = 
image = 
变量调用方法:[field:varname /]
如:
{dede:arclist infolen='100'}
[field:textlink /]
[field:info /]
{/dede:arclist}
2、field 标记
这个标记用于获取特定栏目或档桉的字段值及常用的环境变量值
适用范围:封面模板、列表模板、文档模板
(1)基本语法
{dede:field name=''/}
(2) name 属性的值:
板块模板: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),档案dede_archives表和附加表的所有字段。
3、channel 标记
用于获取栏目列表
适用范围:封面模板、列表模板、文档模板
(1)基本语法
{dede:channel row='' type=''}
自定义样式模板(InnerText)
{/dede:channel}
(2)属性
[1] row='数字' 表示获取记录的条数(通用在某级栏目太多的时候使用,默认是 8)
[2] type = top,sun,self
type='top' 表示顶级栏目
type='sun' 表示下级栏目
type='self' 表示同级栏目
其中后两个属性必须在列表模板中使用。
(3)底层模板变量
ID,typename,typedir,typelink(这里仅表示栏目的网址)
例:
{dede:channel type='top'}
[field:typename/] 
{/dede:channel}
4、mytag 标记
用于获取自定义标记的内容
适用范围:封面模板、列表模板、文档模板
(1)基本语法
{dede:mytag typeid='' name='' ismake='' /}
(2)属性
[1] typeid = '数字' 表示栏目ID,默认为 0,在没有设定的栏目没有定义这个名称的标记,会按如下搜索方式来搜索“先向上查找父栏目 -> 通用标记(typeid=0)的同名标记”。
[2] name = '' 标记名称。
[3] ismake = yes|no 默认为 no 表示mytag里的内容不包含其它封面模板的标记,yes则表示标记内容含有其它封面模板标记。
5、vote 标记
用于获取一组投票表单
适用范围:封面模板
(1) 基本语法
{dede:vote id='投票ID' lineheight='22'
tablewidth='100%' titlebgcolor='#EDEDE2'
titlebackground='' tablebgcolor='#FFFFFF'}
{/dede:vote}
6、friendlink 标记,等同 flink
用于获取友情链接
适用范围:封面模板
(1)基本语法
{dede:flink row='' col='' titlelen='' tablestyle=''}{/dede:flink}
7、mynews 标记
用于获取站内新闻
适用范围:封面模板
(1) 基本语法
{dede:mynews row='条数' titlelen='标题长度'}Innertext{/dede:mynews}
Innertext支持的字段为:[field:title /],[field:writer /],[field:senddate /](时间),[field:body /]
8、loop 标记
用于调用任意表的数据,一般用于调用论坛贴子之类的操作。
9、channelartlist 标记
用于获取频道的下级栏目的内容列表
适用范围:封面模板
语法:
{dede:channelArtlist typeid=0 col=2 tablewidth='100%'}
{dede:type}
[field:typename /]
更多...
{/dede:type}
{dede:arclist row="8"}
·[field:title /]
{/dede:arclist}

{/dede:channelArtlist}
channelArtlist 是唯一一个可以直接嵌套其它标记的标记,不过仅限于嵌套
{dede:type}{/dede:type} 和 {dede:arclist}{/dede:arclist}
标记。
(1) 属性
typeid=0 频道ID,默认的情况下,嵌套的标记使用的是这个栏目ID的下级栏目,如果你想用特定的栏目,可以用","分开多个ID。
col=2 分多列显示
tablewidth='100%' 外围表格的大小
10、page 标记
表示分页页面的附加参数
适用范围:列表模板
语法:
{dede:page pagesize="每页结果条数"/}
11、list 标记
表示列表模板里的内容列表
语法:
{dede:list row='' col='' titlelen='' 
infolen='' imgwidth='' imgheight='' orderby=''}{/dede:list}
底层模板变量
ID(同 id),title,iscommend,color,typeid,ismake,description(同 info),
pubdate,senddate,arcrank,click,litpic(同 picname),typedir,typename,
arcurl(同 filename),typeurl,stime(pubdate 的"0000-00-00"格式),
textlink,typelink,imglink,image
12、pagelist 标记
表示分页页码列表
适用范围:列表模板
语法:
{dede:pagelist listsize="3"/}
listsize 表示 [1][2][3] 这些项的长度 x 2 
13、pagebreak 标记
用途:表示文档的分页链接列表。
适用范围:仅文档模板。 
语法:{dede:pagebreak /} 
14、 fieldlist 标记
用途:获得附加表的所有字段信息。
适用范围:仅文档模板。 
语法:
{dede:fieldlist}
[field:name /] : [field:value /] 
{/dede:fieldlist}



转载于:http://hi.baidu.com/us%5fhosting
PHP 相关文章推荐
用PHP调用数据库的存贮过程!
Oct 09 PHP
PHP模块 Memcached功能多于Memcache
Jun 14 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
php calender(日历)二个版本代码示例(解决2038问题)
Dec 24 PHP
php生成shtml类用法实例
Dec 09 PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 PHP
PHP获取当前相对于域名目录的方法
Jun 26 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
Feb 20 PHP
PHP实现中国公民身份证号码有效性验证示例代码
May 03 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 PHP
DedeCms模板安装/制作概述
Mar 11 #PHP
织梦模板标记简介
Mar 11 #PHP
php桌面中心(四) 数据显示
Mar 11 #PHP
php桌面中心(三) 修改数据库
Mar 11 #PHP
php桌面中心(二) 数据库写入
Mar 11 #PHP
php桌面中心(一) 创建数据库
Mar 11 #PHP
一个简单的php实现的MySQL数据浏览器
Mar 11 #PHP
You might like
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
PHP企业级应用之常见缓存技术篇
2011/01/27 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
js以对象为索引的关联数组
2010/07/04 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
js实现图片轮换效果代码
2013/04/16 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
JsRender实用入门教程
2014/10/31 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
vue.js的安装方法
2017/05/12 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
js实现select下拉框选择
2020/01/11 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
爬山算法简介和Python实现实例
2014/04/26 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
毕业自我评价范文
2013/11/17 职场文书
农场厂长岗位职责
2013/12/28 职场文书
晚会邀请函范文
2014/01/24 职场文书
实验教师岗位职责
2014/02/13 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书