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

  • 微信怎么发抖音视频(微信怎么发抖音长视频到朋友圈)

    微信怎么发抖音视频(微信怎么发抖音长视频到朋友圈)

  • 苹果xr有时候会出现屏幕按不动(苹果xr有时候会自动重启)

    苹果xr有时候会出现屏幕按不动(苹果xr有时候会自动重启)

  • 智行火车票学生票为啥还是原价(智行火车票学生认证怎么解绑)

    智行火车票学生票为啥还是原价(智行火车票学生认证怎么解绑)

  • 手机号码挂失后别人还能用吗(手机号码挂失后号码还可以用吗)

    手机号码挂失后别人还能用吗(手机号码挂失后号码还可以用吗)

  • b站弹幕屏蔽等级是根据什么(b站弹幕屏蔽等级机制)

    b站弹幕屏蔽等级是根据什么(b站弹幕屏蔽等级机制)

  • 抖音做电影剪切有版权问题吗(抖音电影剪切怎么赚钱?)

    抖音做电影剪切有版权问题吗(抖音电影剪切怎么赚钱?)

  • 快手被限流作品上不了热门咋办(快手被限流作品发不出去怎么办)

    快手被限流作品上不了热门咋办(快手被限流作品发不出去怎么办)

  • 小米手机喇叭破音修复方法(小米手机喇叭破音官网维修)

    小米手机喇叭破音修复方法(小米手机喇叭破音官网维修)

  • 卫星电话和手机的区别(卫星电话手机壳)

    卫星电话和手机的区别(卫星电话手机壳)

  • 显卡性能怎么看(电脑显卡性能怎么看)

    显卡性能怎么看(电脑显卡性能怎么看)

  • GTX显卡是独显吗

    GTX显卡是独显吗

  • word把两个表格合并(word把两个表格连在一起)

    word把两个表格合并(word把两个表格连在一起)

  • 手机打不出去电话怎么回事(手机打不出去电话也接不了电话怎么回事)

    手机打不出去电话怎么回事(手机打不出去电话也接不了电话怎么回事)

  • 手机为什么软件会停止运行(手机为什么软件打不开怎么办)

    手机为什么软件会停止运行(手机为什么软件打不开怎么办)

  • 手机感应有什么用(手机感应功能叫什么)

    手机感应有什么用(手机感应功能叫什么)

  • 蓝海词怎么找(蓝海词怎么找产品)

    蓝海词怎么找(蓝海词怎么找产品)

  • 拼多多买家怎么修改评价(拼多多买家怎么申请开票)

    拼多多买家怎么修改评价(拼多多买家怎么申请开票)

  • 群聊没有了是被踢了吗(群聊没有了,怎么能找回?)

    群聊没有了是被踢了吗(群聊没有了,怎么能找回?)

  • vivox27微信美颜在哪(vivox27微信美颜在哪里开启)

    vivox27微信美颜在哪(vivox27微信美颜在哪里开启)

  • 红米k20支持dc调光吗(红米k20有lhdc吗)

    红米k20支持dc调光吗(红米k20有lhdc吗)

  • 邮乐小店怎么开店(邮乐小店怎么开发票)

    邮乐小店怎么开店(邮乐小店怎么开发票)

  • 小米运动行为标注有什么用(小米运动行为标注)

    小米运动行为标注有什么用(小米运动行为标注)

  • 相机lock是什么开关(相机lock是什么功能)

    相机lock是什么开关(相机lock是什么功能)

  • 淘宝开店需要营业执照吗(如何开一家淘宝店)

    淘宝开店需要营业执照吗(如何开一家淘宝店)

  • vivo屏幕上方图标全解(vivo手机上方图标)

    vivo屏幕上方图标全解(vivo手机上方图标)

  • 当月红冲发票账务怎么处理
  • 处置固定资产增值税税率
  • 对公付款对方不开发票怎么处理
  • 交通补贴算工资收入吗
  • 无销项税额
  • 申报同步更正
  • 2021年停车费税率
  • 供暖企业收取的容量热价费怎么计入收入
  • 负债类科目有借方余额吗
  • 不征税收入怎么申报企业所得税
  • 辞退员工补偿金账务处理
  • 税务退税会计分录
  • 出租厂房的摊销额会计分录
  • 中国公司可以给境外公司开发票吗
  • 质量扣款不开票怎么处理
  • 普通发票单张限额
  • 临时工的个人所得税怎么算
  • 总资产利润率计算公式是什么意思
  • 生产成本属于什么会计要素
  • 电梯维保公司缴税标准
  • 增值税发票已经认证可以撤销吗?
  • 工伤补偿需要缴税吗
  • 对外捐赠款属于什么会计科目
  • 物业公司的水电工工作职责
  • 域名停靠是病毒吗
  • 绝地求生闪退怎么解决win10
  • 专柜公司货什么意思
  • 工会会员会费缴费证明怎么开
  • 如何才能显示效果更好
  • 公司购买写字楼怎么入账
  • php pack
  • regsvr32 shmedia.dll
  • 微软即将终止当前系统版本
  • 支付给员工的工伤赔偿款账务
  • 微信公众号支付的钱能追回吗
  • php中imagestring
  • 前端如何适配移动端
  • 长期股权投资后续计量收到红利账务处理
  • 微信认证费是什么意思
  • springboot升级到2.1.6需要注意
  • c语言f lf
  • 材料已经入库但是没有发票怎么做账
  • 三方协议的
  • 房地产公司测绘费怎么做会计分录
  • 税控盘开票机号在哪里能查到
  • 不入库存商品直接走成本会怎样
  • 解决在sql脚本中怎么写
  • 通行费抵扣进项税怎么做账
  • 小规模纳税人申报步骤
  • 设备维修费可以抵扣进项税吗
  • 建设工程项目设计阶段的投资控制方法有哪些
  • 收回理财款会计分录
  • 研发费用属于哪类会计科目
  • 测绘费计入什么明细科目
  • 哪些业务需要计提国别风险准备金
  • 购入固定资产一次性扣除政策
  • 网上充值平台不能提现怎么办
  • 远程连接局域网内的电脑
  • 解决Windows Server远程断开后自动
  • u盘发光
  • linux使用su命令出错
  • ensmix32.exe进程安全吗 ensmix32进程是什么文件产生的
  • win7记事本可以保存的格式
  • 重装系统开机出现几个系统
  • outpost.exe - outpost是什么进程 有什么用
  • 如何删除win7系统自带游戏软件
  • JavaScript中的变量名不区分大小写
  • ExtJS4给Combobox设置列表中的默认值示例
  • Unity3D游戏开发引擎
  • JAVA的OPENGL,JOGL入门实例----不断变色的点阵 (源代码)
  • 网页布局设计的一般步骤
  • jquery鼠标点击事件怎么写
  • staticlayout 换行
  • JavaScript的函数定义
  • jquery简单吗
  • 佛山市国家税务局狮山分局简介
  • 房地产预缴土增值税
  • 123600是税务电话吗
  • 江苏省地税局公众号关注
  • 电信电普
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设