dedecms织梦的自定义标签使用攻略
温馨提示:DedeCMS用户请及时前往织梦官网处理官方版权事宜。
dedecms织梦新增自定义标签使用攻略
dedecms织梦新增自定义标签使用攻略
在include/taglib文件夹中新建文件diy.lib.php
其中diy也就是你标签的名字。function的名字也必须跟文件名对应,固定格式lib_标签名,如lib_diy,本例子以调取文章为例。
<?php function lib_diy(&$ctag,&$refObj) { global $dsql,$envs; /*** * &$ctag 获取标签信息类 * &$refObj 数据库信息类 * $dsql 数据库操作类 * $envs 栏目助手,记录着栏目的部分信息 * 前台标签 */ /**默认属性定义*/ $attlist="row|12,titlelen|24"; /**给前台没有给出的属性变量值,前台有标明的不变*/ FillAttsDefault($ctag->CAttribute->Items,$attlist); /**绑定默认参数$ctag->CAttribute->Items 是前台模板标签传来的值array (size=2) 'row' => string '2' (length=1) 'titlelen' => string '36' (length=2) 获取参数 row='2' titlelen='36'*/ extract($ctag->CAttribute->Items, EXTR_SKIP); $revalue = ''; /** 定义空字符串用于返回数据*/ /**获取标签内的值 <span>[field:title/]</span>*/ $innertext = $ctag->GetInnerText(); $ctp = new DedeTagParse(); /** 声明Dede织梦模板类*/ $ctp->SetNameSpace('field', '[', ']'); /** 设置标记的命名空间,默认为dede*/ $sql = "SELECT * FROM `#@__archives` WHERE 1=1 limit 0, $row"; /** 编写sql语句*/ $dsql->Execute('me',$sql); /** 执行一个带返回结果的函数*/ while($rs = $dsql->GetArray('me')) { /**根据属性处理查询变量*/ $rs['title'] = cn_substr($rs['title'], $titlelen); /**获取底层模板,将模板设置到CTags变量中*/ $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; } ?>
前台标签调用方法
{dede:diy row='2' titlelen='36'} <span>[field:title/]</span> {/dede:diy}
本文属原创,转载请注明原文:http://www.zhimatong.com/jiaocheng/631.html
为保证教程的实用性及扩大知识面覆盖,如果您有相似问题而未解决,可联系在线客服免费技术支持。
点赞 1
热门主题
相关阅读
- 织梦DedeCMS手机端自动压缩保存独立图片
- 织梦DedeCMS如何调用点赞率
- 织梦dedecms通过AJAX实现PHP自动检测订单数量,并发送语音提示
- DedeCMS查询最近30分钟内提交的数据的方法
- 织梦dedecms标签tag伪静态升级版,将URL设置为id.html附伪静态规则
- 织梦问答模块PHP7报错解决方法
- dedecms织梦调用文章图片数量的标签方法
- 织梦DedeCMS删除TAG标签后百度抓取返回404状态码的解决方法
- dedecms织梦arclist判断自定义字段为空时,输出自定义内容
- 织梦后台添加了一篇文章,但是前台显示两篇一模一样的文章的解决方法
- 织梦后台文档列表数据统计错乱的解决方法
- dedecms图集的关键词保存后再编辑关键词之间隔开的逗号消失的修复方法