实现多图文添加,上传和预览

添加多图文:

它是通过post方式提交的,所以我们在后台用I方法获取添加的内容,因为是多图文,所以用foreach来遍历取值,有两个数据表(media_news,media_news_list;),news表存第一个图文封面,news_list表存添加的所有图文,用news_id来连接。

然后再添加到数据库。代码如下:

public function addnews(){
		if(IS_GET){
			$this->display();
		}else{
			$data1 = I('post.data');
			// dump($data1);
			// exit;
			$mp = $this->mp;
			foreach ($data1 as $key => &$value) {
				$row['title'] = $value['title'];
				$row['mp_id'] = $mp['id'];
				$row['create_time'] = time();
				if($key == 0){
					$model = M('media_news');
				    $ret = $model->add($row);
				}
				$data = $value;	
				$data['news_id'] = $ret;
				$cover = $value['cover'];
				$result = M('media_news_list')->add($data);
			}
				$this->ajaxReturn(array('msg'=>'添加成功')); 
		}
	}

当我们点击上传按钮的时候会在news表里添加一个图文的media_id,代码如下:

public function uploadMediaNews($news_id=''){
    $MediaNewsList = M('media_news_list')->where("news_id = $news_id")->select();
		// dump($MediaNewsList);
		// exit;
	foreach ($MediaNewsList as $key =>&$value) {
			
	    if(empty($value['thumb_media_id'])){
		$ret = $this->uploadimg($value['cover']);
		    if(is_array($ret)){
			$where['id'] = $value['id'];
		        $result = M('media_news_list')->where($where)->setField('thumb_media_id',$ret['media_id']);
		    }else{
			echo $ret;
		     }
		}
	}

		 $where['news_id'] = $news_id;
		 $articles = M('media_news_list')->field('thumb_media_id,author,title,content_source_url,content,digest,show_cover_pic')->where($where)->select();
		 // print_r($articles);
		 // exit;
		 include_once APP_PATH . 'LaneWeChat/lanewechat.php';
		 $ret = \LaneWeChat\Core\AdvancedBroadcast::uploadNews($articles);
		 // dump($ret);
		 // exit;
		 if(isset($ret)){
		 	$arr['media_id'] = $ret;
		 	$arr['status_type'] = 1;
		 	M('media_news')->where($where)->save($arr);
		 	echo "上传成功";
		 }else{
		 	echo "上传失败" . json_encode($ret);
		 }
	}

然后我们写预览方法:

代码如下:

public function newsPreview($news_id=""){
		$where['news_id'] = $news_id;
		$newsPreview = M('media_news')->where($where)->getField('media_id');
		// dump($newsPreview);
		// exit;
		
		$wxid = I('post.wxid');

		$accessToken = getAccess_token();
		include_once APP_PATH . 'LaneWeChat/lanewechat.php';
		
		// $ret=\LaneWeChat\Core\AdvancedBroadcast::previewNewsByGroup($wxid,$newsPreviewa);
		$api = "https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=$accessToken";
		$arr = array();
		$arr['touser'] = $wxid;
		$arr['mpnews']['media_id'] = $newsPreview;
		$arr['msgtype'] = 'mpnews';
		
		$arr = json_encode($arr,JSON_UNESCAPED_UNICODE);
		// print_r($arr);
		// exit;
		$ret = Curl::callWebServer($api,$arr,'post',true,false);
		// dump($ret);
		if($ret['errcode']==0){
	        $this->ajaxReturn(array('msg'=>'预览成功'));
	    }else{
	        $this->ajaxReturn(array('msg'=>$ret));
	    }
		
	}

然后我们点击预览,会弹出一个框,输入测试号openid,会有对应news_id的多图文发送到测试号。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值