DEDECMS 扩展标签和dede自定义标签实现方法,织梦文
导读:织梦文章织梦文章DedeCMS从V5.3开始就支持自己扩展标签,不过许多新人很少用那个东西,简单的介绍下如何编写自己的调用标签dede模板免费dede模板安装。
dede
我们需要知道下扩展标签的存放目录及文件名构成,首先,扩展的标签都是存放在/include/taglib这个目录,名称都是以“标签名.lib.php”格式,例如{dede:channel/}标签对应的是channel.lib.php文件。 我们可以看一个示例标签:demotag.lib.php 代码如下: if(!defined('DEDEINC')) { exit("Request Error!"); } function lib_demotag(&$ctag,&$refObj) { global $dsql,$envs; //属性处理 $attlist="row|12,titlelen|24"; FillAttsDefault($ctag->CAttribute->Items,$attlist); extract($ctag->CAttribute->Items, EXTR_SKIP); $revalue = ''; //你需编写的代码,不能用echo之类语法,把最终返回值传给$revalue //-----------------------------------dede,模板------------------- $revalue = 'Hello Word!'; //------------------------------------------------------ return $revalue; } ?>
我们登录系统后台的[模板]-[全局标签测试]中运行{dede:demotag/},显示如下的结果:,我们会发现标签起作用了,输出了我们的内容。
至此我们完成了标签的编写,这里面主要涉及到PHP、MySQL的很多知识,需要有一定相关方面的基础才能够编写标签了,当然这里只是一个简单的标签开发例子,还有许多的东西可以去开发。
这里我们知道,其实标签生成的内容其实是这个函数的一个返回值,这里返回的内容都是字符串,也就是函数return $revalue;中的$revalue需要是经过处理后生成的字符串。 $attlist="row|12,titlelen|24";这个是属性列表,这个经过函数处理后会直接生成变量并复制,我们可以测试下,做如下的修改:
代码如下: $revalue = 'Hello Word!'; $revalue .="Row:".$row.";TitleLen:".$titlelen;
这样我们可以看到,这个属性已经被创建变量并且赋值了。 接下来我们可以再进一步去修改这个标签。 比如说我们需要写一个标签专门来查询文章内容页的那个相关文章,功能类似于上面sql标签中的那个sql,只是这里我们将其分装为一个标签。 我们可以新建一个标签,例如叫writerarc,那我们就需要创建一个writerarc.lib.php,然后模仿demotag编写函数,注意需要修改为 function lib_writerarc(&$ctag,&$refObj) 接下来我们就可以编写查询语句及对底层模板处理的相关函数了
代码如下: $revalue = ''; $innertext = $ctag->GetInnerText(); $ctp = new DedeTagParse(); $ctp->SetNameSpace('field', '[', ']'); $sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row";
声明: 本文由我的SEOUC技术文章主页发布于:2023-07-19 ,文章DEDECMS 扩展标签和dede自定义标签实现方法,织梦文主要讲述标签,自定义,CMS网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_30482.html