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 相关文章推荐
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
Apr 18 PHP
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
php下使用iconv需要注意的问题
Nov 20 PHP
PHP生成随机用户名和密码的实现代码
Feb 27 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
PHP中set error handler函数用法小结
Nov 11 PHP
Yii2框架使用计划任务的方法
May 25 PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 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
将OICQ数据转成MYSQL数据
2006/10/09 PHP
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
PHP获取MSN好友列表类的实现代码
2013/06/23 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
Python中的类与对象之描述符详解
2015/03/27 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
Python定义二叉树及4种遍历方法实例详解
2018/07/05 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
Java模拟试题
2014/11/10 面试题
党风廉设责任书
2014/04/16 职场文书
建筑安全生产责任书
2014/07/22 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
CentOS7安装GlusterFS集群以及相关配置
2022/04/12 Servers