zoukankan      html  css  js  c++  java
  • dedeCMS自定义dede标签

    在include/taglib文件夹中新建文件hlh.lib.php,其中hlh也就是你标签的名字,function的名字也必须跟文件名对应,固定格式lib_标签名,如lib_hlh,本例子以调取文章为例

    <?php
    /**
     * Created by PhpStorm.
     * User: 侯蜀黍
     * Date: 2019/4/24
     * Time: 16:32
     *
     */
    function lib_hlh(&$ctag,&$refObj)
    {
        global $dsql,$envs;
        /***
         * &$ctag 获取标签信息类
         * &$refObj 数据库信息类
         * $dsql 数据库操作类
         * $envs  栏目助手,记录着栏目的部分信息
         * 前台标签
         * {dede:hlh row='2' titlelen='36'}
          <span>[field:title/]</span>
          {/dede:hlh}
         *
         */
        /**默认属性定义*/
        $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:hlh row='2' titlelen='36'}
      <span>[field:title/]</span>
     {/dede:hlh}
    

      效果显示

  • 相关阅读:
    python -第七节课之redis操作
    python 实战之商品管理数据库操作
    python 操作extel实战之写一个函数,传入一个表名,导出到excel中
    python -第六节课-异常处理和发送邮件的方法
    python -argv方法讲解
    python -第五节-python导入模块的顺序结构 和if __name__的讲解 包含两个练习
    python -第四节函数
    pycharm的设置
    第二节python基础
    第一节python基础
  • 原文地址:https://www.cnblogs.com/houss/p/10770273.html
Copyright © 2011-2022 走看看