添加多图文:
它是通过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的多图文发送到测试号。