• Tp5自定义标签


     'taglib_build_in'    => 'cx,tags', // 内置标签库名称(标签使用不必指定标签库名称),以逗号分隔 注意解析顺序

    <?php

    namespace think emplate aglib;

    use think emplateTagLib;

    class Tags extends TagLib{

    /**

    * 定义标签列表

    */

    protected $tags = [

    'sel' => ['attr' => 'table,id,where,order,limit,field,page'],

    'find' => ['attr' => 'table,id,where,field'],

    'val' => ['attr' => 'table,where,value,getdata','close' => 0],
    ];
    /**

    * volist标签解析 循环输出数据集

    * 格式:

    * {volist name="userList" id="user" empty=""}

    * {user.username}

    * {user.email}

    * {/volist}

    * @access public

    * @param array $tag 标签属性

    * @param string $content 标签内容

    * @return string|void

    */

    public function tagsel($tag, $content)

    {
    $table = $tag['table'];

    $id = isset($tag['id'])?$tag['id']:'vo';

    $where = isset($tag['where'])?$tag['where']:'[]';

    $order = isset($tag['order'])?$tag['order']:'id desc';

    $limit = !empty($tag['limit']) ? $tag['limit'] : '0';

    $field = isset($tag['field'])?$tag['field']:'*';

    $page = isset($tag['page'])?$tag['page']:false;
    if($page){
    $pa=input('');
    if($pa){
    foreach($pa as $key => $val){
    $string[$key] = stripslashes($val);
    }
    $pa = $string;
    }else{
    $pa=[];
    }
    $querys= var_export(['query'=>$pa,'var_page'=>$page],TRUE);
    }else{
    $querys='[]';
    }
    $parseStr = '<?php ';
    //查看是否存在model类

    $file=[APP_PATH.'common/model/'.ucfirst($table).'.php',APP_PATH.request()->module().'model/'.ucfirst($table).'.php'];

    if(file_exists($file[0])) $parseStr .= '$db=model("appcommonmodel\'.ucfirst($table).'");';

    if(file_exists($file[1])) $parseStr .= '$db=model(app\'.request()->module().'model\'.ucfirst($table).');';

    if(!file_exists($file[0]) && !file_exists($file[1])){

    $parseStr .= '$db=db("'.$table.'");';

    }
    $parseStr .= $page?"$seldata=$db->where($where)->field('$field')->order('$order')->paginate('$limit',false,$querys);":"$seldata=$db->where($where)->field('$field')->order('$order')->limit('$limit')->select();";

    // 设置了输出数组长度

    $parseStr .= 'foreach($seldata as $key=>$' . $id . '): ?>';

    $parseStr .= $content;

    $parseStr .= '<?php endforeach; ?> ';

    if ($page) {

    $parseStr .= '<?php $' . $page . ' = $seldata->render(); ?>';

    }

    if (!empty($parseStr)) {
    return $parseStr;

    }

    return;

    }

    public function tagfind($tag, $content){

    $table = $tag['table'];

    $id = isset($tag['id'])?$tag['id']:'vo';

    $where = isset($tag['where'])?$tag['where']:'[]';

    $field = isset($tag['field'])?$tag['field']:'*';

    $parseStr = '<?php ';

    //查看是否存在model类

    $file=[APP_PATH.'common/model/'.ucfirst($table).'.php',APP_PATH.request()->module().'model/'.ucfirst($table).'.php'];

    if(file_exists($file[0])) $parseStr .= '$db=model("appcommonmodel\'.ucfirst($table).'");';

    if(file_exists($file[1])) $parseStr .= '$db=model(app\'.request()->module().'model\'.ucfirst($table).');';

    if(!file_exists($file[0]) && !file_exists($file[1])){

    $parseStr .= '$db=db("'.$table.'");';

    }

    $parseStr .= '$'.$id."=$db->where($where)->field('$field')->find(); ?>";

    $parseStr .= $content;

    if (!empty($parseStr)) {

    return $parseStr;

    }

    return;

    }

    public function tagval($tag){

    $table = $tag['table'];

    $where = isset($tag['where'])?$tag['where']:'[]';

    $value = isset($tag['value'])?$tag['value']:'id';

    $getdata = isset($tag['getdata'])?$tag['getdata']:false;

    $parseStr = '<?php ';

    //查看是否存在model类

    $file=[APP_PATH.'common/model/'.ucfirst($table).'.php',APP_PATH.request()->module().'model/'.ucfirst($table).'.php'];

    if(file_exists($file[0])) $parseStr .= '$db=model("appcommonmodel\'.ucfirst($table).'");';

    if(file_exists($file[1])) $parseStr .= '$db=model(app\'.request()->module().'model\'.ucfirst($table).');';

    if(file_exists($file[1])) $parseStr .= 'use app\'.request()->module().'model\'.ucfirst($table).'; $db=model("'.ucfirst($table).'");';

    if(!file_exists($file[0]) && !file_exists($file[1])){

    $parseStr .= '$db=db("'.$table.'");';

    }

    $parseStr .= "$arr=$db->where($where)->field('$value')->find(); ";

    $parseStr .= $getdata ?'echo $arr->getdata("'.$value.'");?>' :'echo $arr["'.$value.'"];?>';

    if (!empty($parseStr)) {

    return $parseStr;

    }

    return;

    }

    }

  • 相关阅读:
    【JMeter_22】JMeter逻辑控制器__录制控制器<Recording Controller>
    【JMeter_21】JMeter逻辑控制器__模块控制器<Module Controller>
    【JMeter_20】JMeter逻辑控制器__事务控制器<Transaction Controller>
    【JMeter_19】JMeter逻辑控制器__简单控制器<Simple Controller>
    【JMeter_18】JMeter逻辑控制器__吞吐量控制器<Throughput Controller>
    【JMeter_17】JMeter逻辑控制器__随机顺序控制器<Random Order Controller>
    【JMeter_16】JMeter逻辑控制器__随机控制器<Random Controller>
    【JMeter_15】JMeter逻辑控制器__仅一次控制器<Once Only Controller>
    Golang错误和异常处理的正确姿势
    用beego开发服务端应用
  • 原文地址:https://www.cnblogs.com/chengfengchi/p/10185635.html
Copyright © 2020-2023  润新知