广

织梦CMS教程

  • 帝国cms教程
  • 织梦CMS教程
  • PHP CMS教程
  • ECSHOP教程
  • WordPress教程
  • Discuz教程
  • CMS学习

    DEDECMS扩展标签演示实例

    2018-04-02 20:47:34 次阅读 稿源:互联网
    广告

    我们可以看一个示例标签:demotag.lib.php 

    1. if(!defined('DEDEINC')) 
    2.   { 
    3.   exit("Request Error!"); 
    4.   } 
    5.   function lib_demotag(&$ctag,&$refObj) 
    6.   { 
    7.   global $dsql,$envs; 
    8.  
    9.   $attlist="row|12,titlelen|24"
    10.   FillAttsDefault($ctag->CAttribute->Items,$attlist); 
    11.   extract($ctag->CAttribute->Items, EXTR_SKIP); 
    12.   $revalue = ''
    13.  
    14.   //------------------------------------------------------ 
    15.   $revalue = 'Hello Word!'
    16.   //------------------------------------------------------ 
    17.   retu $revalue; 
    18.   } 
    19.   ?> 

    我们会发现标签起作用了,输出了我们的内容。
     

     

     

    1. $revalue = 'Hello Word!'
    2. $revalue .=" 
    3. Row:".$row.";TitleLen:".$titlelen

     

     



    这样我们可以看到,这个属性已经被创建变量并且赋值了。
    接下来我们可以再进一步去修改这个标签。

    1. function lib_writerarc(&$ctag,&$refObj) 

    接下来我们就可以编写查询语句及对底层模板处理的相关函数了

    1. $revalue = ''
    2.   $innertext = $ctag->GetInnerText(); 
    3.   $ctp = new DedeTagParse(); 
    4.   $ctp->SetNameSpace('field''['']'); 
    5.   $sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row"
    6.  
    7.  
    8.  
    9.   $dsql->Execute('me',$sql); 
    10.   while($rs = $dsql->GetArray('me')) 
    11.   { 
    12.  
    13.   $rs['title'] = cn_substr($rs['title'], $titlelen); 
    14.  
    15.   $ctp->LoadSource($innertext); 
    16.   foreach($ctp->CTags as $tagid=>$ctag) { 
    17.   if(!empty($rs[strtolower($ctag->GetName())])) { 
    18.   $ctp->Assign($tagid,$rs[$ctag->GetName()]); 
    19.   } 
    20.   } 
    21.  
    22.   $revalue .= $ctp->GetResult(); 
    23.   } 

    最后返回这个值retu $revalue;
    整个文件内容如下:

    1. if(!defined('DEDEINC')) 
    2.   { 
    3.   exit("Request Error!"); 
    4.   } 
    5.   function lib_writerarc(&$ctag,&$refObj
    6.   { 
    7.   global $dsql,$envs
    8.  
    9.   $attlist="row|12,titlelen|24"
    10.   FillAttsDefault($ctag->CAttribute->Items,$attlist); 
    11.   extract($ctag->CAttribute->Items, EXTR_SKIP); 
    12.   $revalue = ''
    13.   $innertext = $ctag->GetInnerText(); 
    14.   $ctp = new DedeTagParse(); 
    15.   $ctp->SetNameSpace('field''['']'); 
    16.   $sql = "SELECT * FROM dede_archives WHERE writer='{$refObj->Fields['writer']}' limit 0, $row"
    17.   $dsql->Execute('me',$sql); 
    18.   while($rs = $dsql->GetArray('me')) 
    19.   { 
    20.  
    21.   $rs['title'] = cn_substr($rs['title'], $titlelen); 
    22.  
    23.   $ctp->LoadSource($innertext); 
    24.   foreach($ctp->CTags as $tagid=>$ctag) { 
    25.   if(!empty($rs[strtolower($ctag->GetName())])) { 
    26.   $ctp->Assign($tagid,$rs[$ctag->GetName()]); 
    27.   } 
    28.   } 
    29.  
    30.   $revalue .= $ctp->GetResult(); 
    31.   } 
    32.   retu $revalue
    33.   } 
    34.   ?> 

    通过动态浏览页面进行查看调试?aid=3

    1. {dede:writerarc row='10' titlelen='6'
    2. [field:title/]  
    3.  
    4. {/dede:writerarc} 

     

     

     

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告