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 相关文章推荐
phpfans留言版用到的数据操作类和分页类
Jan 04 PHP
mysql 搜索之简单应用
Apr 27 PHP
php数组应用之比较两个时间的相减排序
Aug 18 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
基于PHP Socket配置以及实例的详细介绍
Jun 13 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
Jun 12 PHP
php实现博客,论坛图片防盗链的方法
Oct 15 PHP
PHP编程计算文件或数组中单词出现频率的方法
May 22 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
为何说PHP引用是个坑,要慎用
Apr 02 PHP
PHP手机短信验证码实现流程详解
May 17 PHP
php图片裁剪函数
Oct 31 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
PHP 字符串分割和比较
2009/10/06 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
PHP自定义函数收代码
2010/08/01 PHP
php显示时间常用方法小结
2015/06/05 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
javascript URL编码和解码使用说明
2010/04/12 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
Javascript中click与blur事件的顺序详析
2017/04/25 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
js实现查询商品案例
2020/07/22 Javascript
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
利用Python函数实现一个万历表完整示例
2021/01/23 Python
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
介绍一下游标
2012/01/10 面试题
留学自荐信
2013/10/10 职场文书
解除合同协议书
2014/04/17 职场文书
教师业务培训方案
2014/05/01 职场文书
人大代表选举标语
2014/10/07 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL