thinkphp自定义标签

云游道人 云游道人 2025-06-19 12 阅读 0 评论

自定义标签函数

public function tagVod($tag,$content){
   if(empty($tag['id'])){
       $tag['id'] = 'vo';
   }
   if(empty($tag['key'])){
       $tag['key'] = 'key';
   }
   if(!empty($tag['where'])){
       $arr = json_decode($tag['where']);
       $tag['where'] = array_merge($arr,[['vod_status','=',1]]);
   }else{
       $tag['where'] = [['vod_status','=',1]];
   }
   $parse = '<?php ';
   $parse .= '$__TAG__ = \'' . json_encode($tag) . '\';';
   $parse .= '$__Vod__ = VodData($__TAG__);';
   $parse .= '$__LIST__ = $__Vod__;';
   $parse .= ' ?>';
   $parse .= '{volist name="__LIST__" id="'. $tag['id'].'" key="'.$tag['key'].'"}';
   $parse .= $content;
   $parse .= '{/volist}';

   return $parse;
}


模板调用自定义标签


{cymini:vod where='[["type_id","=",16]]' limit='5' }
<p>{$vo.vod_name}</p>
{/cymini:vod}


自定义标签调用函数


function VodData($args){
   if(!is_array($args)){
       $args = json_decode($args,true);
       if(!is_array($args['where'])){
           $args['where'] = json_decode($args['where']);
       }
   }
   static $defaults = [
       'table'=>'vod',
       'where'=>[],
       'order'=>'vod_id desc',
       'field'=>'*',
       'page'=>0,
       'limit'=>10,
   ];
   $table = $args['table'] ?? $defaults['table'];
   $where = $args['where'] ?? $defaults['where'];
   $order = $args['order'] ?? $defaults['order'];
   $field = $args['field'] ?? $defaults['field'];
   $page = $args['page'] ?? $defaults['page'];
   $limit = $args['limit'] ?? $defaults['limit'];
   return Db::name($table)->field($field)->where($where)->order($order)->page($page,$limit)->select()->toArray();
}


日常开发Vlog

下一篇

相关阅读

发表评论

访客 访客
快捷回复: 表情:
评论列表 (有 0 条评论,12人围观)