可能很多人安装了卡券插件的人都注意到了一个小细节,这个细节小的可怜毫不起眼十分容易被忽略掉,那就是全站发布内容的时候点引用按钮里面有卡券的调用,插件的数据放到引用中和模块是大不一样的,模块中基本就是你做了模块99.9%的情况下就会自动调用到这里,插件的不行那么下面我给大家分享一个实例怎么进行插件数据引用化调用。
下面的插件目录 泛指实例中的 plugins\coupon, model和index目录下面的 Quote.php 不允许改名必须是这个名字, 最后记得 coupon 目录指的是你自己的插件目录名
最后再强调一次 model和index目录下面的 Quote.php 只能是这个名字 否则无法调用数据
第一步需要在我们的插件目录下面建立 model 目录 在model目录下面建立 Quote.php 这个model将是我们数据的调用的标志,plugins\coupon\model\Quote.php 存在这个文件才会调用显示按钮所以不能改名,至于这个文件中的内容 可以为空的 也可以写内容,下面是示例中的内容
<?php namespace plugins\coupon\model; use think\Model; class Quote extends Model{ protected $name='kaquan'; //数据库名 不需要写前缀 对应数据库名是 qb_kaquan public static function getAll($map=[],$order="id desc",$rows=0,$pages=[]){ $array=self::where($map)->order($order)->paginate(empty($rows)?null:$rows, empty($pages[0])?false:$pages[0],empty($pages[1])?['query'=>input('get.')]:$pages[1]); return $array; } }
第二步:在我们的插件目录下 建立一个 index 目录 里面新建一个 Quote.php 这个是数据调用的关键文件 plugins\coupon\index\Quote.php 这个文件就是数据列表的显示了,所以也不能改,他的作用就是把我们点击了按钮后的数据显示出来供我们调用。这个文件的格式也是有要求的。
<?php namespace plugins\coupon\index; use plugins\coupon\model\Quote AS Model; use app\common\controller\IndexBase; class Quote extends IndexBase{ protected $model; protected function _initialize(){ parent::_initialize(); $this->model=new Model(); } /** * 数据调用的方法名必须是 listbyuid 他仅有三个参数 * @param int $uid 登录会员的uid * @param int $rows 每页显示的数量 * @param string $keyword 搜索的关键词 * @return 最后输出json 格式的 */ public function listbyuid($uid=0,$rows=10,$keyword=''){ if(empty($uid)){ $uid=$this->user['uid']; } if(empty($uid)){ return $this->err_js('UID不存在'); } $map=[ 'uid'=>$uid, ]; if($keyword!=''){ $map['title']=['like','%'.$keyword.'%']; $data=$this->model->getAll($map,"id desc",$rows,$pages=[],$format=false); }else{ $data=$this->model->getAll($map,"id desc",$rows,$pages=[],$format=false); } $array=getArray($data); foreach($array['data'] AS $key=>$rs){ $rs['content']=get_word(del_html($rs['content']),100); //内容字段 没有内容就为空 $rs['picurl']=tempdir($rs['picurl']); //略缩图 $rs['url']=purl('coupon/index/show',['id'=>$rs['id']],'index');//点击后的网址 $array['data'][$key]=$rs; } return $this->ok_js($array); } }
数据调用的方法名必须是 listbyuid
输出的就几个标签 id,title,content,picurl,url 看完了示例是不是感觉很容易,开启你的数据调用之路吧。
此方法也适合一些其他模块的整合调用,比如你可以做一个插件调用默认调用不能调用出的模块数据,插件接口的调用可以说是万能接口要比模块调用灵活很多,因为他可以调用指定表的数据。
最后再强调一次 model和index目录下面的 Quote.php 只能是这个名字 否则无法调用数据
严重警告一点:如果调用会员表必须用field限制调用的字段 不然全部字段都出来了 包含了加密后的密码
附录一个 调用单聊的调用示例,匆忙之作也许有不足 自己耍着玩吧,下载解压放到plugins目录后台安装本地插件即可,没有后台设置,引用中可以插入单聊按钮点击就跳转到聊天框。跳到的是手机版聊天框 电脑版可能不大好看