织梦自定义扩展标签.doc

织梦自定义扩展标签.doc

ID:62163542

大小:84.50 KB

页数:5页

时间:2021-04-20

织梦自定义扩展标签.doc_第1页
织梦自定义扩展标签.doc_第2页
织梦自定义扩展标签.doc_第3页
织梦自定义扩展标签.doc_第4页
织梦自定义扩展标签.doc_第5页
资源描述:

《织梦自定义扩展标签.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、DedeCMS从V5。3开始就支持自己扩展标签,不过许多新人很少用那个东西,简单的介绍下如何编写自己的调用标签。  我们需要知道下扩展标签的存放目录及文件名构成,首先,扩展的标签都是存放在/include/taglib这个目录,名称都是以“标签名.lib。php”格式,例如{dede:channel/}标签对应的是channel.lib。php文件。  我们可以看一个示例标签:demotag.lib。php     if(!defined(’DEDEINC'))  {  exit(”Request

2、Error!");  }  functionlib_demotag(&$ctag,&$refObj)  {  global$dsql,$envs;  //属性处理  $attlist=”row|12,titlelen|24";  FillAttsDefault($ctag-〉CAttribute—>Items,$attlist);  extract($ctag—〉CAttribute-〉Items,EXTR_SKIP);  $revalue=’’;  //你需编写的代码,不能用echo之类语法,把

3、最终返回值传给$revalue  //—---—-—--——--————-—————---————--——-———------——--————--  $revalue='HelloWord!';  //---———--—---—-————-———----——--—-—--——-----—--——-———--—  return$revalue;  }  ?>  我们登录系统后台的[模板]-[全局标签测试]中运行{dede:demotag/},显示如下的结果: ,我们会发现标签起作用了,输出了我们的内

4、容。   至此我们完成了标签的编写,这里面主要涉及到PHP、MySQL的很多知识,需要有一定相关方面的基础才能够编写标签了,当然这里只是一个简单的标签开发例子,还有许多的东西可以去开发。  这里我们知道,其实标签生成的内容其实是这个函数的一个返回值,这里返回的内容都是字符串,也就是函数return$revalue;中的$revalue需要是经过处理后生成的字符串。  $attlist="row

5、12,titlelen

6、24”;这个是属性列表,这个经过函数处理后会直接生成变量并复制,我们可以测试下,

7、做如下的修改:  $revalue=’HelloWord!’;  $revalue。=”Row:”.$row。";TitleLen:”.$titlelen;  这样我们可以看到,这个属性已经被创建变量并且赋值了。  接下来我们可以再进一步去修改这个标签.  比如说我们需要写一个标签专门来查询文章内容页的那个相关文章,功能类似于上面sql标签中的那个sql,只是这里我们将其分装为一个标签。  我们可以新建一个标签,例如叫writerarc,那我们就需要创建一个writerarc.lib.php,然后

8、模仿demotag编写函数,注意需要修改为  functionlib_writerarc(&$ctag,&$refObj)  接下来我们就可以编写查询语句及对底层模板处理的相关函数了  $revalue='’;  $innertext=$ctag—>GetInnerText();  $ctp=newDedeTagParse();  $ctp->SetNameSpace(’field’,’[',’]');  $sql="SELECT*FROMdede_archivesWHEREwriter='{$r

9、efObj—〉Fields['writer’]}’limit0,$row”;  $innertext这个是用来获取标签的底层模板的,$ctp创建用于处理底层模板中的变量,并处理进行替换。我们根据获取的属性编写我们的sql语句,这里我们使用limit0,$row,这样就可以根据$row来确定查询的内容数目.  当然我们可以获取更多的属性以便我们这个标签更强大,例如我们可以增加类似于arclist中的相关属性,并在函数中进行处理,不过这个需要有一定的PHP基础。  接下来我们通过执行查询对sql及输出

10、变量进行处理:  $dsql->Execute('me’,$sql);  while($rs=$dsql—>GetArray(’me’))  {  //根据属性处理查询变量  $rs['title’]=cn_substr($rs[’title'],$titlelen);  //获取底层模板  $ctp—>LoadSource($innertext);  foreach($ctp—〉CTagsas$tagid=>$ctag){  if(!empty($rs[strtolower($c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。