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

  • 金融类APP该如何做好内容运营?(金融类app该如何选择)

    金融类APP该如何做好内容运营?(金融类app该如何选择)

  • 小米人脸识别智能门锁x怎么反锁(小米人脸识别智能门锁 X)

    小米人脸识别智能门锁x怎么反锁(小米人脸识别智能门锁 X)

  • iqoo怎么自定义图标(iQOO怎么自定义手势)

    iqoo怎么自定义图标(iQOO怎么自定义手势)

  • 华为电脑怎么设置桌面壁纸(华为电脑怎么设置锁屏壁纸)

    华为电脑怎么设置桌面壁纸(华为电脑怎么设置锁屏壁纸)

  • qq怎么转账给别人(qq怎么转账给别人微信)

    qq怎么转账给别人(qq怎么转账给别人微信)

  • 淘宝怎么设置最爱(淘宝怎么设置最晚发货时间)

    淘宝怎么设置最爱(淘宝怎么设置最晚发货时间)

  • 苹果12有指纹解锁吗(苹果12有指纹解锁和人脸识别吗)

    苹果12有指纹解锁吗(苹果12有指纹解锁和人脸识别吗)

  • 苹果xs max短信怎么全部删除(苹果xs max短信怎么切换成副卡)

    苹果xs max短信怎么全部删除(苹果xs max短信怎么切换成副卡)

  • 路由器怎么隐藏不被别人发现(电视柜路由器怎么隐藏)

    路由器怎么隐藏不被别人发现(电视柜路由器怎么隐藏)

  • 一天开关机十次对手机有害吗(一天开关机三四次对手机好吗)

    一天开关机十次对手机有害吗(一天开关机三四次对手机好吗)

  • 个人热点连上后有叹号(个人热点连上后一会就自动断开了,怎么办)

    个人热点连上后有叹号(个人热点连上后一会就自动断开了,怎么办)

  • 笔记本带麦克风吗(笔记本带麦克风的耳机)

    笔记本带麦克风吗(笔记本带麦克风的耳机)

  • 荣耀v8电池感叹号是什么原因(荣耀v8电池感叹号闪烁)

    荣耀v8电池感叹号是什么原因(荣耀v8电池感叹号闪烁)

  • 网易云电台审核要多久(网易云电台审核存在版权争议)

    网易云电台审核要多久(网易云电台审核存在版权争议)

  • 苹果6s电池容量多少(苹果6s电池容量8000多毫安是真的吗)

    苹果6s电池容量多少(苹果6s电池容量8000多毫安是真的吗)

  • 华为mate20手机怎么设置桌面?(华为mate20手机怎么样)

    华为mate20手机怎么设置桌面?(华为mate20手机怎么样)

  • ios怎么屏蔽垃圾信息(苹果怎么屏蔽垃圾广告信息)

    ios怎么屏蔽垃圾信息(苹果怎么屏蔽垃圾广告信息)

  • 蓝绿厂是指什么手机(蓝绿厂是指什么意思)

    蓝绿厂是指什么手机(蓝绿厂是指什么意思)

  • 怎么查收邮件(电子邮件怎么弄)

    怎么查收邮件(电子邮件怎么弄)

  • vivox27升降摄像头光效(vivox27升降摄像头)

    vivox27升降摄像头光效(vivox27升降摄像头)

  • 荣耀20pro怎么清理缓存(荣耀20pro怎么清洁听筒)

    荣耀20pro怎么清理缓存(荣耀20pro怎么清洁听筒)

  • 京东待评价商品可以删除吗(京东待评价商品怎么删除掉)

    京东待评价商品可以删除吗(京东待评价商品怎么删除掉)

  • 苹果11拍夜景怎么设置(苹果11拍夜景怎么调相机)

    苹果11拍夜景怎么设置(苹果11拍夜景怎么调相机)

  • 手机4g+128g是什么意思(手机 4+128g是什么意思)

    手机4g+128g是什么意思(手机 4+128g是什么意思)

  • airpods2怎么看电量(airpods2怎么看电池损耗情况)

    airpods2怎么看电量(airpods2怎么看电池损耗情况)

  • Linux查看系统信息的常用命令(linux查看系统信息工具)

    Linux查看系统信息的常用命令(linux查看系统信息工具)

  • 坎塔布里亚的小教堂,西班牙 (© Luis Miguel Martin/Getty Images)(坎塔布莱恩)

    坎塔布里亚的小教堂,西班牙 (© Luis Miguel Martin/Getty Images)(坎塔布莱恩)

  • function 函数(function函数的定义)

    function 函数(function函数的定义)

  • 劳务派遣公司差额征税的账务处理
  • 买材料通过公司走账合法吗
  • 预收账款属于什么科目借贷方向
  • 个人捐款合法吗
  • 成本费用的关系
  • 什么情况需要预缴增值税
  • 出口退税是按照出口金额吗
  • 银行存款利息收入要交增值税吗
  • 公司给员工租赁住房算成本吗
  • 境外增值税代扣代缴
  • 销售发票的会计处理
  • 原材料盈亏会计分录怎么写
  • 非货币资产交换的会计处理原则
  • 材料亏损怎么做会计分录?
  • 不动产税征收标准
  • 为在建工程发生的管理费用
  • 财务费用过多有什么影响
  • 汇算清缴预提费用调整政策
  • 原材料没发票能结转成本吗?
  • 支付收购股权款如何做账
  • 货代行业红字冲正发票怎么做凭证
  • 以前年度损益调整属于哪类科目
  • 固定资产报废残料收入的账务处理
  • 注销时分公司欠款怎么办
  • 低值易耗品进项税额转出账务处理
  • 预缴企业所得税是含税还是不含税
  • 购入增值税税控系统专用设备为什么全额计入固定资产
  • 收不到租金怎么解除合同
  • 公司法人如何从公司提钱
  • 个人所得税累计减免税额为0
  • 什么叫非成品油发票
  • 历年亏损企业开什么发票
  • 固定资产的折旧从什么时候开始
  • 工地买东西怎么记账
  • 融资性售后回租承租方为什么不交税
  • 3070和3070ti性能差多少
  • 银行贷款核销后还产生利息吗
  • 材料没入库的会计分录
  • 资产处置收益与固定资产清理
  • win10好几个操作系统
  • php自动跳转页面
  • 企业扣除内容有哪些
  • 其他费用的账务处理
  • php5.4升级到php7
  • AI:ModelScope(一站式开源的模型即服务共享平台)的简介、安装、使用方法之详细攻略
  • 政府基金如何开立账户
  • 什么叫非侵入性装置
  • pytorch 例子
  • mkfs.ext4 命令 对磁盘设备进行Ext4格式化
  • php递归函数桃子一天吃一半
  • php读取文件内容的方法和函数
  • 差旅费账务处理例子
  • 买一赠一的销售方式
  • 公司全部股权转让流程
  • 支票的法人章盖倒了了可以吗
  • 金税四期监控什么
  • 增值税中进项税额转出是什么意思
  • 生物资产包括哪两类
  • 账面价值和公允价值的关系
  • 公司如果不交社保会怎么样
  • 发票冲销后还能用吗
  • 递延收益确认的递延所得税资产有期限吗
  • 固定资产计提折旧的方法
  • 会计记账科目表
  • 债权投资和其他应收款的区别
  • windos桌面
  • win7系统的笔记本电脑有哪些
  • 电脑出现系统状态
  • servers.mcs
  • win8.1 应用商店是不是不能用了
  • webpack基本使用
  • cmd常用命令详解
  • node 发邮件
  • linux命令批量执行
  • 显示自己的ip的手机
  • chrome version
  • 研发费用加计扣除75%还是100%
  • 携程怎么订
  • 湖北国税办税人是谁
  • 什么叫税务协查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设