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

  • 华为nova9Pro和荣耀50Pro怎么选(华为nova9pro和荣耀v40)

    华为nova9Pro和荣耀50Pro怎么选(华为nova9pro和荣耀v40)

  • 华为mate30pro能root吗(华为mate30pro能装两张电信卡吗)

    华为mate30pro能root吗(华为mate30pro能装两张电信卡吗)

  • 微信怎么查看朋友圈点赞和回复记录(微信怎么查看朋友圈屏蔽的人)

    微信怎么查看朋友圈点赞和回复记录(微信怎么查看朋友圈屏蔽的人)

  • applewatch5防水性能(apple watch series 5防水怎么样)

    applewatch5防水性能(apple watch series 5防水怎么样)

  • 电脑出现americanmegatrends怎么办(电脑出现americanmegatrends怎么办图片)

    电脑出现americanmegatrends怎么办(电脑出现americanmegatrends怎么办图片)

  • 手机如何查找pdf中的文字(手机如何查找pdf文件)

    手机如何查找pdf中的文字(手机如何查找pdf文件)

  • 低数据模式会降低网速吗(低数据模式会省电吗)

    低数据模式会降低网速吗(低数据模式会省电吗)

  • 京东已实名的账号忘了(京东实名账户)

    京东已实名的账号忘了(京东实名账户)

  • iphonexr蓝牙无法配对(苹果xr蓝牙无法连接)

    iphonexr蓝牙无法配对(苹果xr蓝牙无法连接)

  • 怎么删除qq里的自动回复(怎么删除qq里的小世界功能)

    怎么删除qq里的自动回复(怎么删除qq里的小世界功能)

  • 打印照片的机器叫什么(t恤衫上打印照片的机器)

    打印照片的机器叫什么(t恤衫上打印照片的机器)

  • 华为录屏功能不见了(华为屏幕录制不好使了怎么办)

    华为录屏功能不见了(华为屏幕录制不好使了怎么办)

  • 网易云音乐最近播放在哪(网易云音乐最近播放的歌曲删除有影响吗)

    网易云音乐最近播放在哪(网易云音乐最近播放的歌曲删除有影响吗)

  • 三星n9600是什么型号(三星n960u是什么型号)

    三星n9600是什么型号(三星n960u是什么型号)

  • 华为手机界面出现个圆圈怎么清除(华为手机界面出现安全模式怎么回事)

    华为手机界面出现个圆圈怎么清除(华为手机界面出现安全模式怎么回事)

  • 手机名称和型号不一致怎么回事(手机名称和型号有什么区别)

    手机名称和型号不一致怎么回事(手机名称和型号有什么区别)

  • pchm10是什么手机型号(pchm10是什么手机是OPPOa11)

    pchm10是什么手机型号(pchm10是什么手机是OPPOa11)

  • qq的解除关系是什么功能(qq解除关系是对方删的还是自己)

    qq的解除关系是什么功能(qq解除关系是对方删的还是自己)

  • ipad如何清理垃圾(如何清理ipad中的垃圾)

    ipad如何清理垃圾(如何清理ipad中的垃圾)

  • 荣耀手环4能否接电话(荣耀手环4支持nfc吗)

    荣耀手环4能否接电话(荣耀手环4支持nfc吗)

  • 宽带无法上网怎么解决(宽带无法上网怎么找客服)

    宽带无法上网怎么解决(宽带无法上网怎么找客服)

  • azw3手机用什么看(azw3手机用什么软件看)

    azw3手机用什么看(azw3手机用什么软件看)

  • ps学了怎么接私活(学了ps后如何兼职)

    ps学了怎么接私活(学了ps后如何兼职)

  • 爱剪辑如何剪辑音频(爱剪辑如何剪辑视频)

    爱剪辑如何剪辑音频(爱剪辑如何剪辑视频)

  • 高清电话怎么关闭(手机高清电话怎么关)

    高清电话怎么关闭(手机高清电话怎么关)

  • 路由器怎么才能设置成交换机?(路由器怎么才能用)

    路由器怎么才能设置成交换机?(路由器怎么才能用)

  • 引用第三方插件到分包中即如何把uni_modules文件夹中的插件放入分包中(第三方库引用)

    引用第三方插件到分包中即如何把uni_modules文件夹中的插件放入分包中(第三方库引用)

  • 房屋契税缴纳比例
  • 出售投资性房地产取得的收入
  • 普通发票的税率1%
  • 生产企业发票单位
  • 多缴税款抵税有期限吗
  • 企业多交所得税不想退税在电子税务局如何处理
  • 未达起征点是什么
  • 个体工商户经营范围查询
  • 员工上班期间应穿
  • 公益性捐赠会计分录金额
  • 预收保费属于什么会计科目类别
  • 企业购买硬件与软件该如何做账?
  • 高原补贴算工资吗
  • 没建账的个体户如何交个人所得税?
  • 7月1日起税务新规
  • 所有利息收入都免税吗
  • 医院医保统筹支付后还能报销吗
  • 固定资产抵扣的税率
  • 1697506445
  • 环保税与排污费的关系
  • 呆账怎么写会计分录
  • 如何维护电脑系统安全?
  • 代理报关的报关单发货人
  • 新税法中工资薪金的规定
  • linux怎么增加磁盘空间
  • 已抵扣的发票怎么撤销
  • 压缩文件损坏怎么回事
  • php array_replace
  • services.exe
  • win10 1909无法连接到这个网络
  • Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
  • 哪些货物出口不需要运输条件
  • php获取数据库中的数据,输出到div中
  • 土地增值税扣除项目税金包括哪些
  • 变化检测是应用在图像的哪个运算中
  • php二分查找算法两种方法
  • 什么是资产评估的价值类型
  • python输入三科成绩
  • 小规模季报附加税怎么报
  • 逐步结转分步法的步骤
  • 出资比例为0
  • 融资租赁首付租金会计账务处理
  • sql2008用ip连接不了
  • 收到社保稳岗补贴需要交税吗
  • 专票认证之后怎么做账
  • 车辆保险费印花税计税金额含进项税吗
  • 销售返利如何做会计分录
  • 注销时其他应付款借方余额怎么账务处理
  • 第三季度利润
  • 投资子公司现金流量表
  • 年底本年利润结转错了怎么调
  • 冲回去年收入会计分录
  • 营业成本年末怎么结转
  • 收到个人所得税手续费返还如何做账
  • 预计负债 负债 区别
  • 房地产开发企业土地增值税怎么计算
  • 生产销售库存表
  • sqlserver1053怎么解决
  • xp系统鼠标设置在哪
  • windows Server 2008配置IE使用代理操作步骤
  • win back什么意思
  • win8.0升级win8.1
  • bd是什么文件
  • linux0.12内核代码多少行
  • win7旗舰版用户
  • win8怎么开启蓝牙
  • 深入理解新发展理念心得体会3篇
  • android Unable to execute dex问题的解决
  • android view动画
  • 有关表格边框的快捷键
  • cocos2dx 3.0 quick lua schedler
  • unity物理效果
  • 吉林省地方税务局
  • 学校 税务登记
  • 云南国税局官网网站
  • 开发商卖商铺需要哪些资质条件?
  • 小学语文教学的核心素养
  • 小规模纳税人30万免税政策
  • 2020年税务系统关闭
  • 深圳布吉下水径旧改
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设