位置: IT常识 - 正文

dede织梦模板扩展标签及自定义标签的教程(织梦如何给栏目增加缩略图)

编辑:rootadmin

推荐整理分享dede织梦模板扩展标签及自定义标签的教程(织梦如何给栏目增加缩略图),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:织梦怎么新建页面,织梦用的什么框架,织梦可以放两套模板吗,dede织梦怎么转成zblog,织梦怎么用模板建站,织梦怎么用模板建站,织梦内容页模板修改,织梦内容页模板修改,内容如对您有帮助,希望把文章链接给更多的朋友!

DedeCMS从V5.3开始就支持自己扩展标签,不过许多新人很少用那个东西,简单的介绍下如何编写自己的调用标签。我们需要知道下扩展标签的存放目录及文件名构成,首先,扩展的标签都是存放在/include/taglib这个目录,名称都是以"标签名.lib.php"格式,例如{dede:channel/}标签对应的是channel.lib.php文件。我们可以看一个示例标签:demotag.lib.phpif(!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//------------------------------------------------------$revalue = 'Hello Word!';//------------------------------------------------------return $revalue;}?>我们登录系统后台的[模板]-[全局标签测试]中运行{dede:demotag/},显示如下的结果:,我们会发现标签起作用了,输出了我们的内容。至此我们完成了标签的编写,这里面主要涉及到PHP、MySQL的很多知识,需要有一定相关方面的基础才能够编写标签了,当然这里只是一个简单的标签开发例子,还有许多的东西可以去开发。

dede织梦模板扩展标签及自定义标签的教程(织梦如何给栏目增加缩略图)

这里我们知道,其实标签生成的内容其实是这个函数的一个返回值,这里返回的内容都是字符串,也就是函数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";$innertext这个是用来获取标签的底层模板的,$ctp创建用于处理底层模板中的变量,并处理进行替换。我们根据获取的属性编写我们的sql语句,这里我们使用limit 0, $row,这样就可以根据$row来确定查询的内容数目。当然我们可以获取更多的属性以便我们这个标签更强大,例如我们可以增加类似于arclist中的相关属性,并在函数中进行处理,不过这个需要有一定的PHP基础。接下来我们通过执行查询对sql及输出变量进行处理:$dsql->Execute('me',$sql);while($rs = $dsql->GetArray('me')){//根据属性处理查询变量

$rs['title'] = cn_substr($rs['title'], $titlelen);//获取底层模板$ctp->LoadSource($innertext);foreach($ctp->CTags as $tagid=>$ctag) {if(!empty($rs[strtolower($ctag->GetName())])) {$ctp->Assign($tagid,$rs[$ctag->GetName()]);}}

//根据底层模板及查询变量得到处理结果$revalue .= $ctp->GetResult();}这样我们就将查询出来的结果同底层模板中出现的相关变量进行替换,然后生成输出字符串,将所有的字符串信息存储到$revalue中。最后返回这个值return $revalue;整个文件内容如下:if(!defined('DEDEINC')){exit("Request Error!");}function lib_writerarc(&$ctag,&$refObj){global $dsql,$envs;//属性处理$attlist="row|12,titlelen|24";FillAttsDefault($ctag->CAttribute->Items,$attlist);extract($ctag->CAttribute->Items, EXTR_SKIP);$revalue = '';$innertext = $ctag->GetInnerText();$ctp = new DedeTagParse();$ctp->SetNameSpace('field', '[', ']');$sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row";$dsql->Execute('me',$sql);while($rs = $dsql->GetArray('me')){//根据属性处理查询变量

$rs['title'] = cn_substr($rs['title'], $titlelen);//获取底层模板$ctp->LoadSource($innertext);foreach($ctp->CTags as $tagid=>$ctag) {if(!empty($rs[strtolower($ctag->GetName())])) {$ctp->Assign($tagid,$rs[$ctag->GetName()]);}}

//根据底层模板及查询变量得到处理结果

$revalue .= $ctp->GetResult();}return $revalue;}?>接下来我们来测试我们这个标签,我们修改article_article.htm模板,在里面加入以下的标签代码:{dede:writerarc row='10' titlelen='6'}[field:title/]{/dede:writerarc}

免责

本文链接地址:https://www.jiuchutong.com/zhishi/313352.html 转载请保留说明!

上一篇:织梦dedecms能力之DedeCMS安详配置(织梦如何使用)

下一篇:Philtron: a PHP Proxy for HTTP

  • 浙江税务网上办税大厅官网
  • 销售收入印花税率是多少
  • 契税计税依据及税率
  • 无票收入在增值税申报表的哪里填
  • 小微企业减免增值税申报表填写
  • 一般纳税人抵扣进项税分录
  • 物业公司外包保安死亡
  • 税控盘必须一直插着吗
  • 债权投资减值的账务处理
  • 税控服务费抵扣的文件
  • 税务登记证注销证明
  • 会计凭证的内容中应包括会计分录
  • 商业企业的购货运费计入什么
  • 收到银行的贷款
  • 以前年度损益调整科目怎么用
  • 自己做的房子可以办房产证吗
  • 补交以前年度房产税如何记账
  • 其他综合收益包含哪些科目
  • 销售合同总金额含税还是不含税
  • 开个人普发票需要什么资料?
  • 餐饮定额发票可以用吗现在
  • 增值税专用发票怎么开
  • 代为持股有没有法律效应
  • 企业年金企业所得税扣除标准
  • 城建税上月少计提本月怎么做账
  • windows10命令提示符怎么用
  • 用于非应税项目的购进货物或应税劳务
  • 如何从Windows 10注销其他用户
  • spf13-vim – Vim编辑器终极发布
  • 职工薪酬核算的内容
  • 安装监控违法吗
  • win7右键设置方法
  • 增资后多久才可以减资
  • 利息股息红利个税计算表
  • 资产评估增值额
  • 会计计量属性的是
  • 详解金球奖之争
  • thinkphp withjoin
  • 麒麟软件的linux桌面操作系统
  • 如何根据科目余额表编制财务报表
  • 生产企业支付的车间劳务外包费入账科目
  • 员工出国公司要承担的责任
  • 运输发票是怎样计提的
  • 出租的厂房折旧记哪里
  • phpcms v9 getshell
  • url静态化怎么操作
  • SQLite教程(十二):锁和并发控制详解
  • 小规模纳税人增值税专用发票税率
  • 预提费用汇缴时间怎么算
  • 一般纳税人销售旧货税率
  • 权益法转其他权益工具
  • 没有发票的支出怎么入账
  • 独立核算分公司与总公司的账务处理
  • 员工多交个税企业就少交所得税吗?
  • 应收账款计提减值准备会计处理
  • 按工人工资比例结转制造费用会计科目
  • 金融资产或金融负债初始入账价值
  • 银行对账单怎么修改
  • sqlserver删除重复
  • 在基于Xen的CentOS系统VPS上配置PPTP VPN的教程
  • centos virbr0
  • win7 win8.1双系统安装教程
  • win7 系统启动
  • 怎么备份和恢复goodnotes中的数据
  • executing c1.exe
  • Linux系统安全性体现在哪些方面?
  • win10系统的文件夹选项在哪里
  • windows7旗舰版怎样扩大虚拟内存
  • win10预览版21277下载
  • jsonp的使用
  • 批处理教程(最全版).pdf免费
  • python输出unicode编码
  • unity ulua
  • Firefox window.close()的使用注意事项
  • 记录我的生活日常
  • android shareuid
  • js动态添加trtd
  • 对税务领导的批示怎么写
  • 怎么找到税控系统发票作废怎么操作
  • 大连市国家税务局官网登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设