位置: 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

  • 华为荣耀20青春版机身多厚(华为荣耀20青春版图片)

    华为荣耀20青春版机身多厚(华为荣耀20青春版图片)

  • 闲鱼视频通话怎么关掉

    闲鱼视频通话怎么关掉

  • 不是群主群里怎么@所有人(不是群主群里怎么艾特所有人)

    不是群主群里怎么@所有人(不是群主群里怎么艾特所有人)

  • 苹果11用无线充电器伤手机吗(苹果11用无线充电宝不充电)

    苹果11用无线充电器伤手机吗(苹果11用无线充电宝不充电)

  • 苹果外音喇叭声音小(苹果手机外音喇叭不响了怎么修)

    苹果外音喇叭声音小(苹果手机外音喇叭不响了怎么修)

  • 手机更改时间怎么设置(手机更改时间怎么设置华为)

    手机更改时间怎么设置(手机更改时间怎么设置华为)

  • 错误404是什么原因

    错误404是什么原因

  • 微视红包的圈为什么不转了(微视有红包)

    微视红包的圈为什么不转了(微视有红包)

  • 微信视频老说网络异常(微信视频老是显示网络异常怎么回事)

    微信视频老说网络异常(微信视频老是显示网络异常怎么回事)

  • 电源选项没有高性能(电源选项没有高级)

    电源选项没有高性能(电源选项没有高级)

  • 小米摄像头断网后还拍吗(小米摄像头断网后怎么重新连接)

    小米摄像头断网后还拍吗(小米摄像头断网后怎么重新连接)

  • 苹果电池寿命掉的快怎么办(苹果电池寿命掉电快)

    苹果电池寿命掉的快怎么办(苹果电池寿命掉电快)

  • iphone有没有分屏功能(iphone有分屏么)

    iphone有没有分屏功能(iphone有分屏么)

  • 华为9plus可以分屏吗(华为9pius怎么分屏)

    华为9plus可以分屏吗(华为9pius怎么分屏)

  • chmul00是什么版本(chmcl00是什么型号)

    chmul00是什么版本(chmcl00是什么型号)

  • 支付宝关注的公众号在哪里(支付宝关注的公众号怎么找)

    支付宝关注的公众号在哪里(支付宝关注的公众号怎么找)

  • 你拨打电话已关机是什么意思(你拨打电话已关机或无法接通)

    你拨打电话已关机是什么意思(你拨打电话已关机或无法接通)

  • 华为nova4悬浮窗设置(华为nova4悬浮窗怎么使用)

    华为nova4悬浮窗设置(华为nova4悬浮窗怎么使用)

  • ipad自动扣费怎么取消(ipad自动扣款,不知买了什么)

    ipad自动扣费怎么取消(ipad自动扣款,不知买了什么)

  • oppor17充电多少瓦(oppor17充满电需要多少毫安)

    oppor17充电多少瓦(oppor17充满电需要多少毫安)

  • 苹果ios13信任软件怎么设置(ios13.3信任软件怎么设置在哪里)

    苹果ios13信任软件怎么设置(ios13.3信任软件怎么设置在哪里)

  • 埃尔姆利国家自然保护区里的一只文须雀,英格兰肯特郡 (© Mark Bridger/Offset by Shutterstock)(埃姆雷莫尔)

    埃尔姆利国家自然保护区里的一只文须雀,英格兰肯特郡 (© Mark Bridger/Offset by Shutterstock)(埃姆雷莫尔)

  • Vue框架背后的故事(vue框架是什么样子的)

    Vue框架背后的故事(vue框架是什么样子的)

  • 先申报财务报表还是企业所得税汇算清缴
  • 税务机关如何处理公司多交税
  • 销售商品收到转账支票计入什么科目
  • 计提跟支付有啥区别
  • 印花税的填报方法
  • 政府扶持资金要还吗如村委借给企业对吗
  • 租金收入需要缴增值税吗
  • 保险公司赔款可以用子女的二类卡吗
  • 行政事业单位核算短期投资时有关预算会计核算正确的是
  • 递延收益金额怎么算
  • 企业注销建造师流程
  • 不动产进项税额抵扣最新通知2023
  • 出售旧固定资产的税率是多少
  • 企业所得税报表模板
  • 代缴水电费的差额是什么
  • 增值税普票丢失的最新处理
  • 公司买结构性存款算投资吗
  • 成本是否有含税金额
  • 采用支票结算方式的基本业务处理程序
  • 顶账的固定资产怎么入账
  • 删除文件需要管理员权限无法添加怎么办
  • 发放福利视同销售进项税要转出吗?
  • 如何界定企业的收益
  • win11如何添加快捷方式
  • php验证码代码怎么写
  • macOS Big Sur 11.3新功能 为M1 Mac带来了iOS应用的手柄模拟功能
  • 山毛榉树林里的草叫什么
  • php array数组
  • php的转义字符反斜杠
  • 资产负债表中应收账款根据什么填列
  • 购买固定资产后如何处理
  • laravel怎么用
  • php操作mysql数据库
  • 怎样退出快手粉丝团 已解决
  • 想学web前端
  • 数据可视化分析
  • vue2和vue3的兼容
  • es6从入门到实战
  • php中定义函数
  • 通行发票可以抵增值税吗
  • 民间非营利组织如何纳税
  • xclip命令怎么用
  • 增值税发票打印机
  • 如何登记现金明细账
  • 试生产产品计入研发费用吗
  • opengl全称
  • 金融商品转让和贷款服务
  • 事业单位相关规定有哪些
  • 租车费开票属于哪个类别
  • 不单独计价的包装物押金计入什么科目
  • c#连接数据库的基本步骤是什么
  • 销售返利冲抵货款怎么做账
  • 增值税扣缴义务发生时间为扣缴义务人扣缴税款的当天
  • 办公用品开普票几个点
  • 福利费需要发票吗
  • 党费返还款怎么做分录
  • 分公司财务归谁管
  • 法人存入公户的钱摘要
  • 开服务业发票要交印花税吗?
  • 金税盘发票认证怎么操作流程
  • 生产成本与工程施工
  • 咨询服务行业的收入与成本
  • 建账有哪几种方法
  • window10 bitlocker
  • vmware安装redhat6.5
  • mac怎么恢复出厂设置
  • Win10系统如何使用虚拟光驱加载ISO镜像文件?
  • linux012
  • 动画时期
  • android 自定义
  • 贴吧热门评论
  • qt opengl obj
  • javascript中常见的数据类型有哪些?
  • shell脚本编写简单计算器
  • jqueryui draggable
  • android基础入门教程
  • python 断言详细讲解用法及其案例
  • android studio怎么清除缓存
  • 互联网新闻信息服务提供者为用户提供互联网新闻
  • 税务局风险防控工作总结
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设