欢迎来到苹果cms10365bet好还是九州好_365bet被封了_365bet官方网址_Discuz365bet好还是九州好_365bet被封了_365bet官方网址_海洋cms365bet好还是九州好_365bet被封了_365bet官方网址_织梦cms365bet好还是九州好_365bet被封了_365bet官方网址_苹果cms365bet好还是九州好_365bet被封了_365bet官方网址 - 3K365bet好还是九州好_365bet被封了_365bet官方网址网!我们致力于3K365bet好还是九州好_365bet被封了_365bet官方网址更新
-->

扩展标签

相关案例演示
DedeCMS从V5.3开始就支持自己扩展标签,不过许多新人很少用那个东西,简单的介绍下如何编写自己的调用标签。   我们需要知道下扩展标签的存放目录及文件名构成,首先,扩展的标签都是存放在/include/taglib这个目录,名称都是以“标签名.lib.php”格式,例如{dede:channel/}标签对应的是channel.lib.php文件。   我们可以看一个示例标签:demotag.lib.php      if(!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;   }   ?>   我们登录系统后台的[365bet好还是九州好_365bet被封了_365bet官方网址]-[全局标签测试]中运行{dede:demotag/},显示如下的结果: ,我们会发现标签起作用了,输出了我们的内容。   至此我们完成了标签的编写,这里面主要涉及到PHP、MySQL的很多知识,需要有一定相关方面的基础才能够编写标签了,当然这里只是一个简单的标签开发例子,还有许多的东西可以去开发。   这里我们知道,其实标签生成的内容其实是这个函数的一个返回值,这里返回的内容都是字符串,也就是函数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)   接下来我们就可以编写查询语句及对底层365bet好还是九州好_365bet被封了_365bet官方网址处理的相关函数了   $revalue = '';   $innertext = $ctag->GetInnerText();   $ctp = new DedeTagParse();   $ctp->SetNameSpace('field', '[', ']');   $sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row";   $innertext这个是用来获取标签的底层365bet好还是九州好_365bet被封了_365bet官方网址的,$ctp创建用于处理底层365bet好还是九州好_365bet被封了_365bet官方网址中的变量,并处理进行替换。我们根据获取的属性编写我们的sql语句,这里我们使用limit 0, $row,这样就可以根据$row来确定查询的内容数目。   当然我们可以获取更多的属性以便我们这个标签更强大,例如我们可以增加类似于arclist中的相关属性,并在函数中进行处理,不过这个需要有一定的PHP基础。   接下来我们通过执行查询对sql及输出变量进行处理:   $dsql->Execute('me',$sql);   while($rs = $dsql->GetArray('me'))   {   //根据属性处理查询变量   $rs['title'] = cn_substr($rs['title'], $titlelen);   //获取底层365bet好还是九州好_365bet被封了_365bet官方网址   $ctp->LoadSource($innertext);   foreach($ctp->CTags as $tagid=>$ctag) {   if(!empty($rs[strtolower($ctag->GetName())])) {   $ctp->Assign($tagid,$rs[$ctag->GetName()]);   }   }   //根据底层365bet好还是九州好_365bet被封了_365bet官方网址及查询变量得到处理结果   $revalue .= $ctp->GetResult();   }   这样我们就将查询出来的结果同底层365bet好还是九州好_365bet被封了_365bet官方网址中出现的相关变量进行替换,然后生成输出字符串,将所有的字符串信息存储到$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);   //获取底层365bet好还是九州好_365bet被封了_365bet官方网址   $ctp->LoadSource($innertext);   foreach($ctp->CTags as $tagid=>$ctag) {   if(!empty($rs[strtolower($ctag->GetName())])) {   $ctp->Assign($tagid,$rs[$ctag->GetName()]);   }   }   //根据底层365bet好还是九州好_365bet被封了_365bet官方网址及查询变量得到处理结果   $revalue .= $ctp->GetResult();   }   return $revalue;   }   ?>   接下来我们来测试我们这个标签,我们修改article_article.htm365bet好还是九州好_365bet被封了_365bet官方网址,在里面加入以下的标签代码:   {dede:writerarc row='10' titlelen='6'}   [field:title/]   {/dede:writerarc}   通过动态浏览页面进行查看调试http://www.dedecms.com/plus/view.php?aid=3   至此我们完成了标签的编写,这里面主要涉及到PHP、MySQL的很多知识,需要有一定相关方面的基础才能够编写标签了,当然这里只是一个简单的标签开发例子,还有许多的东西可以去开发。
作者:3kmb.com 关注: 时间:2019-06-23 08:31
首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品织梦源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站织梦程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、365bet好还是九州好_365bet被封了_365bet官方网址、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(3214953)进行交流。
相关织梦教程