DedeCMS从V5.3开始就支持自己扩展标签,不过许多新人很少用那个东西,简单的介绍下如何编写自己的调用标签
我们需要知道下扩展标签的存放目录及文件名构成,首先,扩展的标签都是存放在/include/taglib这个目录,名称都是以“标签名.lib.php”格式,例如{dede:channel/}标签对应的是channel.lib.php文件。
我们可以看一个示例标签:demotag.lib.php
我们登录系统后台的[模板]-[全局标签测试]中运行{dede:demotag/},显示如下的结果:
,我们会发现标签起作用了,输出了我们的内容。
至此我们完成了标签的编写,这里面主要涉及到PHP、MySQL的很多知识,需要有一定相关方面的基础才能够编写标签了,当然这里只是一个简单的标签开发例子,还有许多的东西可以去开发。
这里我们知道,其实标签生成的内容其实是这个函数的一个返回值,这里返回的内容都是字符串,也就是函数return $revalue;中的$revalue需要是经过处理后生成的字符串。
$attlist=\"row|12,titlelen|24\";这个是属性列表,这个经过函数处理后会直接生成变量并复制,我们可以测试下,做如下的修改:
接下来我们就可以编写查询语句及对底层模板处理的相关函数了
$innertext这个是用来获取标签的底层模板的,$ctp创建用于处理底层模板中的变量,并处理进行替换。我们根据获取的属性编写我们的sql语句,这里我们使用limit 0, $row,这样就可以根据$row来确定查询的内容数目。
当然我们可以获取更多的属性以便我们这个标签更强大,例如我们可以增加类似于arclist中的相关属性,并在函数中进行处理,不过这个需要有一定的PHP基础。
接下来我们通过执行查询对sql及输出变量进行处理:
这样我们就将查询出来的结果同底层模板中出现的相关变量进行替换,然后生成输出字符串,将所有的字符串信息存储到$revalue中。
最后返回这个值return $revalue;
整个文件内容如下:
酉阳土家族苗族自治县人民法院中央空调采购(17A1051)结果公告2019-03-25 09:41:00[游客]
爱奇艺四季度总营收70亿元同比增55% 净亏损35亿元2019-02-22 16:25:08[游客]
国家能源集团煤焦化公司西来峰甲醇厂氧气压缩机汽轮机转子采购项2019-03-26 16:05:53[游客]
神华国华孟电底渣销售项目项目招标公告重新招标2019-03-20 20:36:23[游客]
Airbnb致歉青岛民宿路由器装摄像头:永久撤出该房源2019-05-07 14:18:08[游客]
泰安市岱岳区农业农村局粮食绿色高质高效创建项目小麦、玉米病虫2019-04-08 01:54:40[游客]
ㄩ㈠穿婧锛Google″涓娆″ㄧ瀹|璋锋|gmail|youtube|绱㈠|ㄧ|浜缃2020-12-15 03:15:57[游客]
武汉市公安局军运会安保工作VR培训课件制作项目流标公告2019-06-09 16:06:03[游客]
神华榆林能源化工有限公司托盘公开招标采购项目招标公告2019-04-20 14:59:41[游客]
巨头盯上消费升级,萌店等中小电商如何分一杯羹?2017-04-27 06:42:11[游客]
黑猫投诉发布11月国内汽车召回数据:丰田居
中国旭阳集团:中国焦煤焦化品牌集群成立|
中国石油流通协会会长郑文在全国石油流通行
个人养老金试点2年后扩大到全国:将国债、
易方达华夏天弘领先!30家基金公司85只权益
新西兰计划修改“黄金签证”以吸引富裕移民
消息称三星电子将于下周召开全球战略会议|
人民币创去年11月新低 分析人士:三大原因|
江西正和华工程咨询有限公司关于江西省定南
江西集群项目管理有限公司关于抚州市临川区
武宁县2023年河流划界规划设计服务采购项目
中汇天合工程管理有限公司关于江西省赣州市
萍乡市轩信工程造价咨询有限公司关于芦溪县
江西省鼎跃招标咨询有限公司关于江西外语外
江西恒诚工程咨询有限公司关于赣州市妇幼保