DedeCMS常用标签讲解笔记整理.doc

上传人:wux****ua 文档编号:9388804 上传时间:2020-04-05 格式:DOC 页数:14 大小:218.50KB
返回 下载 相关 举报
DedeCMS常用标签讲解笔记整理.doc_第1页
第1页 / 共14页
DedeCMS常用标签讲解笔记整理.doc_第2页
第2页 / 共14页
DedeCMS常用标签讲解笔记整理.doc_第3页
第3页 / 共14页
点击查看更多>>
资源描述
DedeCMS常用标签讲解笔记整理今天我们主要将模板相关内容,在前面的几节课中已经基本介绍过模板标签的相关内容,大家可以下载天工开物老师的讲课记录:http:/bbs.dedecms.com/132951.html,这次课程我们主要讲解模板具体的标签使用,并且结合一些实例来介绍这些标签。先前课程介绍了,网站的模板就如同一件衣服,衣服的好坏直接决定了网站的好坏,很多网站一看界面就知道不是什么好站点,再一看内容都是千篇一律,这种站点没有特色看的人就少,所以模板的重要性就在于此。模板的制作也需要简单,目前从很多程序的模板机制看,织梦的模板机制是最简单实用的,通过学习织梦的标签,能够很好的把美工、程序结合起来,并且织梦的模板引擎机制也容易明白,基本上就是想到就能做到。大家在课前先去下载DedeCMS V5.3 模板标签参考手册http:/bbs.dedecms.com/135583.html 在之前的课程中,我们也介绍了模板的解析原理,我们来回顾下:这个是我们最常用的一个arclist标记,这个标记主要功能就是用于调用文档内容,以列表的形式显示在前台页面中。系统首先读取模板文件,然后第一步就是解析标记,解析标记就是将整个标签的属性、属性值提取出来,让后根据这些不同的属性值来调用不同的内容。这个我们在后面单独的几个标记中具体说明。我们下面来了解下DedeCMS模板文件的结构,网站内容显示部分的模板主要存放在根目录的/templets/模板目录(默认为default)下面,当然你也可以根据自己的路径进行修改,这里面的文件都是有相应的规则。这里是模板文件命名规范:()index_识别ID.htm:表示板块(栏目封面)模板;()list_识别ID.htm:表示栏目列表模板;()article_识别ID.htm:表示内容查看页(文档模板,包括专题查看页);()search.htm: 搜索结果列表模板;注意不是搜索栏,是搜索的结果列表 ()index.htm: 主页模板;这些模板都是可以通过系统后台对其进行指定,系统默认会读取这些模板内容不同的标签作用域也不相同,这个在官方提供的标签说明中都有列出,所以在使用标签的时候一定要看好标签的作用域,例如dede:list这个标签只能在列表页使用,如果放到首页、内容页那是不会有效果的,所以在阅读手册、制作模板的时候需要注意。下面我们来从不同的常用标签来讲解,我们依次顺序为:arclist(arclistsg)标签、list标签、field、global。这个在课前我们已经说明过。arclist(arclistsg)标签这个标签是系统中非常常用的调用标签,主要功能就是通过指定标签的属性调用后台发布的内容,这个标签是一个全局标签,也就是说,这个标签可以在首页、列表页、内容页等多个地方进行使用。当然我们可以通过系统后台的模板-智能标记向导来生成arclist标签,我们只需要指定不同的调用属性、指定单条记录样式(底层模板),直接生成即可,生成的标签可以直接使用到相应的模板中去。我们这里先在后台添加一些测试数据,创建两个栏目,名字分别为“甲栏目”、“乙栏目”,并且在两个栏目分别中添加4篇文章。这里我们可以看到“ID:13”,即甲栏目的栏目ID为13,乙栏目的栏目ID为14。甲栏目中的2篇文章在属性中设置为“推荐c”和“头条h”,乙栏目中一篇内容设置为“推荐c”。因为这里arclist标签是属于全局标记,我们可以在系统后台模板-全局标记测试中进行测试。基本的调用我们本节课就不多说,这里我们讲解这个标记几个非常用调用。1.常规属性的应用;2. 附加字段的调用;3.自定义函数function的使用;4.PHP编程扩展。我们看下面这个调用标签:dede:arclist flag=c typeid=13,14 row=4field:title/dede:arclist这里的flag=c就是调用的发布文档中“推荐c”,当然引申下,如果调用“头条h”,则flag=h,所以我们在使用标记调用那些推荐、图文的时候可以对这些进行修改,当然系统后台中系统-自定义文档属性来修改相关的参数。dede:arclist typeid=13,14 limit=0,3field:title/dede:arclist这里主要讲的是一个limit属性的使用,这个属性类似于MySQL中SQL查询语句中的limit,通过这个属性来控制调用的记录ID和记录条数。我们通过手册查阅这个属性的相关内容:limit=起始ID,记录数 (起始ID从0开始)表示限定的记录范围(如:limit=1,2 表示从ID为1的记录开始,取2条记录)。有了这个属性我们可以做出一种效果,就是一些门户网站的不规则长度新闻标题的样式,我们来查看以下的代码:dede:arclist typeid=13,14 limit=0,1field:title/dede:arclistdede:arclist typeid=13,14 limit=1,1 titlelen=8field:title/dede:arclistdede:arclist typeid=13,14 limit=2,1 titlelen=4field:title/dede:arclist这里调用的3条信息就是上面limit=0,3调用的3条内容,只不过我们通过limit对其进行了再次的拆分,再结合titlelen属性控制标题的长度达到不规则标题的效果。接下来我们再来看下调用附加表字段,织梦的内容模型有2种类型,一种是主从表,另外一种就是单表独立,主从表形式的就涉及到一个主表和一个附加表,系统的主表是#_archives ,我们可以查看系统后台系统-SQL命令行工具,用察看表结构,可以看表的字段,如果安装时设置的默认前缀为dede,则会有一个dede_archives的表,这个表中记录的都是常用字段。这里放得是所有栏目录入的数据,每条数据有typeid来对应不同的栏目。这里没有记录栏目文章的内容,只有题目。具体内容,对应下面所说的addon表,去数据库看看自己就知道了。一般附加表都是以#_addon识别ID命名的,例如普通文章的附加表就是#_addonarticle,软件模型的附加表就是#_addonsoft,不同模型的附加字段可以通过系统后台核心-内容模型管理,编辑一个模型,查看里面的“字段管理”,一般我们调用都是调用这些内容。我们在系统后台添加了一个软件下载的栏目,栏目设置模型为软件,然后我们发布几条软件下载的信息,接下来我们需要通过arclist这个标签将软件的一些信息调用到网站首页中进行显示。我们可以查看到下面一些软件添加的信息内容。我们查看下面的代码: addfields字段来自addon表里,自己对照看。dede:arclist addfields=filetype,language,softtype row=8 channelid=3 软件标题: field:textlink/ 语言类型: field:language/ 软件类型: field:softtype/ /dede:arclist我们通过addfields=这个属性来指定调用的附加字段,同时我们需要指定调用模型的id,即channelid,这个可以在系统后台的内容模型管理中查看。当然我们也可以通过这种方式在arclist标签中调用文章的内容dede:arclist addfields=body idlist=1156 channelid=1 文章标题:field:textlink/ 文章内容:field:body/dede:arclist如果我们文章内容很长,例如是添加了一篇新闻,这样通过body调用出来的内容会出现内容很长的问题,这时候我们希望能够限制调用内容的长度,但是我们调用附加表的时候没有这个属性来控制调用附加表的长度,所以只有通过自定义函数来对其进行控制,自定义扩展函数function在织梦的标签中经常使用,下面我们对其进行一个简单的实例。如何添加自定义函数呢?看下面:dedecms如何添加自定义函数找到dedecms添加自定义函数的文件位置在哪里就知道dedecms如何添加自定义函数了,dedecms有一个文件是专门为用户添加自定义函数而准备的,这个文件就是include/extend.func.php,添加自定义函数到这个文件里,再在模板里写一句代码,就可以得到自己想要的结果了。下面举一个例子来说明一下使用dedecms如何添加自定义函数。比如,我想在首页通过会员id获得会员的名称,我可以这样写一个自定义函数:function GetMemberName($str)$dsql = new Dedesql(false);$row = $dsql-GetOne(SELECT uname FROM dede_member WHERE mid = $str );return $rowuname;大家肯定已经很明了了,就是从数据库中查询出mid是$str的记录的名称,并返回这个名称。这样,我们在前台模板中写这样一句代码field:mid function=GetMemberName(me)/就可以显示该会员的名称了。到这里,我们已经可以使用自定义函数了。这样的应用比较频繁吧,比如我想通过dedecms添加自定义函数实现在子栏目页获得副栏目的id,也可以使用自定义函数,这个功能就不在这详细介绍了,希望通过这篇文章可以让大家掌握dedecms如何添加自定义函数。我们这里用到一个idlist属性,这个属性就是调用指定id的文章,我们这里添加调用的是id为1156的文章。下面我们来对内容字段使用自定义函数来控制长度,我们将标签修改成以下形式:dede:arclist addfields=body idlist=1156 channelid=1 文章标题:field:textlink/ 文章内容:field:body function=cn_substr(me,100)/dede:arclist这里我们在body这个字段地方加上了一个函数function=cn_substr(me,100),这个函数的作用就是截取中文字符,我们可以查看网站源码文件includecommon.func.php第123行内容。/中文截取2,单字节截取模式function cn_substr($str,$slen,$startdd=0)当然,这个文件里面还有很多的常用函数,这些函数都起不同的作用,例如转换日期、去除HTML标记、获取IP等等,我们在二次开发标签中也介绍了这些函数的功能和用处,理解这些函数需要有一定的PHP基础。在function=cn_substr(me,100)中出现了一个“me”,这个“me”代表的是标签本身,例如field:body function=cn_substr(me,100)/,这个就是将标签field:body/输出的内容通过me传递到cn_substr这个函数中进行处理。当然我们也可以自己编写函数,只需要创建/include/extend.func.php文件,编写相应的自定义函数即可。接下来我们介绍变量的简单编程,我们首先来看一段标签标记:这样做就是把函数硬编码入代码,其实不如写一个自定义函数来得好。dede:arclist typeid=13,14field:title/field:senddate runphp=yes $ntime = time();$onetime = 3600 * 2;if($ntime - me)$onetime) me = (new);else me = ;/field:senddate/dede:arclist这里我们将2小时前发布的内容后面增加一个(new),这里我们应用到了标签的PHP扩展。我们这里用到的是变量field:senddate/ 这个变量显示的是发布时间,因为我们需要判断2小时内最新发布的文档,所以需要通过这个变量进行判断。这里变量中属性runphp=yes为开启PHP编程,然后可以通过下面的方式进行编程扩展。field:senddate runphp=yes $ntime = time();/当前时间$onetime = 3600 * 2;/距离的时间数目if($ntime - me)$onetime) me = (new);else me = ;/判断,如果相差时间小于2小时加红,否则没有内容/field:senddate当然如果懂PHP相关内容,还有很多的PHP扩展,这里主要是将处理后的内容通过me来返回。当然这里还有arclistsg标签,这个标签也是用于调用发布的文档内容,但是不同于arclist,这个标签调用的是单表模型的内容,我们系统中的分类信息就是一个单表模型的例子,(添加栏目时可以选择这个“分类信息”模块。可以自己建一个该种类型的模块去熟悉一下它。为什么它不要addon呢,不是因为什么少了一层列表的原因,它点进去也有列表。是因为它的字段不多,一个表就可以了。不需要附加字段了。我理解那个附加addon表类似biweb里的structon哈哈)在使用上,这个标签和arclist相同,所以在这里不再重复说明,只是arclistsg标签调用时候需要加上channelid之类的。dede:arclistsg channelid=-8 limit=0,2 field:title/ /dede:arclistsglist标签dede:list/dede:list这个标签也是系统常用的标记,这个标记主要是用于列表页显示列表数据,这个标签不是全局标记,所以不要将这个标记应用到非list_*.htm这种模板中去,当然我们后台的全局标记测试也无法测试这个标记,调试这个标记最简单的办法,就是通过网址中http:/www.adb.com/plus/list.php?tid=13这种形式来测试。测试调试模板的时候需要将系统后台的模板缓存关闭,可以在后台系统-系统基本参数,在性能选项卡中将“是否启用模板缓存”关闭即可。这个标签在列表页通常是和dede:pagelist listsize=5 /搭配使用的,这个是分页标签,就是显示可以让用户点击“上一页”、“下一页”这种标记。List标签中的变量也可以进行function自定义函数或者PHP扩展,这里就不重复介绍,这里介绍下在list标签中调用附加字段。dede:arclistxxxxx/dede:arclist语句可以应用于首页、封面页、列表栏目页、内容页。 而dede:listXXXX/dede:list语句,则只能应用于列表栏目页。列表栏目页,要添加多列文章标题的话,就可以用到dede:arclistxxxxx/dede:arclist语句。与arclist不同,list中调用附加字段需要编辑内容模型,例如我们编辑软件模型的模板文件,即templetsdefaultlist_soft.htm,我们可以查看到以下代码:dede:list pagesize=10field:array runphp=yesme = (empty(melitpic) ? : ); /field:arrayfield:title/上传日期:field:pubdate function=GetDateTimeMK(me)/推荐级别:field:softrank function=GetRankStar(me)/软件语言:field:language/浏览次数:field:click/field:description/./dede:list这个里面的附加字段并没有通过指定某个属性获得,而是在系统后台中,核心-内容模型管理,编辑软件内容模型,在选项“列表附加字段”加上相关字段的内容。field、global标记我们在网站程序中经常遇到常量、变量,一些系统的设置我们可以认为是系统常量,一般这些常量可以在系统后台的系统-系统基本参数中进行设置,最右边一拦会显示该参数的变量名,这类似biweb的webconfig.inc.php,系统后台设置的参数都会有一个对应的变量名,我们可以使用标签dede:global.fieldname/这种形式进行调用。例如我们使用dede:global.cfg_powerby/标签调用系统后台设置的版权信息。当然我们也可以自己在系统后台添加这样的变量,例如添加一个变量名字叫cfg_tongji,用来存储统计代码的。并且在代码中加入相应的代码语句。这个时候我们就可以通过dede:global.cfg_tongji/来调用统计代码,我们只需要将这个插入到模板的相应位置即可,如果以后需要增加统计的代码,只需要在系统后台直接设置一下就可以了,一劳永逸。dede:global.fieldname/这种标签可以在全局进行使用,并且这个调用的值同系统后台设置关联非常紧密,并且这些标签的内容并不会因为放在不同的模板,因为不同栏目显示而值不相同,所以可以在这里理解为一种常量。另外一种就是field,即变量,通常我们在模板中见到的就是dede:field.title/,这个变量会随着不同页面的变化而变化,所以成为是系统变量。我们查看标签手册,“field|常用变量”部分的内容,这部分内容主要是将系统不同页面中的变量列举出来,我们在模板制作的时候可以指定不同的变量,调用的值也大不相同。当然这些变量也是可以进行自定义函数的,例如我们对dede:field.title function=cn_substr(me,30)/,来对这个title变量进行自定义。总结织梦的标签是非常灵活的,在这里我们只是讲解了3个常用类型的模板标签,并且例句了一些实例,但这些并不能涵盖全部,具体的标签使用技巧还需要大家去思考,自己去在制作模板中进行摸索。最后我们对今天的课程进行一个回顾:1. 模板标签简介及原理2. 模板文件目录以相关文件的说明3. 常用标记介绍3.1 arclist(arclistsg)标签3.2 list标签3.3 field、global标签
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!