You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
2.8 KiB

<?php
namespace LaneWeChat\Core;
class Menu{
public static function setMenu($menuList){
$menuList2 = $menuList;
foreach($menuList as $key=>$menu){
foreach($menuList2 as $k=>$menu2){
if($menu['id'] == $menu2['pid']){
$menuList[$key]['sub_button'][] = $menu2;
unset($menuList[$k]);
}
}
}
foreach($menuList as $key=>$menu){
if($menu['type'] == 'view'){
$menuList[$key]['url'] = urlencode($menu['code']);
}else if($menu['type'] == 'click'){
$menuList[$key]['key'] = $menu['code'];
}else if(!empty($menu['type'])){
$menuList[$key]['key'] = $menu['code'];
if(!isset($menu['sub_button'])) $menuList[$key]['sub_button'] = array();
}
unset($menuList[$key]['code'], $menuList[$key]['id'], $menuList[$key]['pid']);
$menuList[$key]['name'] = urlencode($menu['name']);
if(isset($menu['sub_button'])){
unset($menuList[$key]['type']);
foreach($menu['sub_button'] as $k=>$son){
if($son['type'] == 'view'){
$menuList[$key]['sub_button'][$k]['url'] = urlencode($son['code']);
}else if($son['type'] == 'click'){
$menuList[$key]['sub_button'][$k]['key'] = $son['code'];
}else{
$menuList[$key]['sub_button'][$k]['key'] = $son['code'];
$menuList[$key]['sub_button'][$k]['sub_button'] = array();
}
unset($menuList[$key]['sub_button'][$k]['code'], $menuList[$key]['sub_button'][$k]['id'], $menuList[$key]['sub_button'][$k]['pid']);
$menuList[$key]['sub_button'][$k]['name'] = urlencode($son['name']);
}
}
}
$data = array('button' => array_values($menuList));
$data = json_encode($data);
$data = urldecode($data);
$accessToken = AccessToken::getAccessToken();
$url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$accessToken;
$result = Curl::callWebServer($url, $data, 'POST');
return $result['errcode'] == 0 ? true : $result;
}
public static function getMenu(){
$accessToken = AccessToken::getAccessToken();
$url = 'https://api.weixin.qq.com/cgi-bin/menu/get?access_token='.$accessToken;
return Curl::callWebServer($url, '', 'GET');
}
public static function delMenu(){
$accessToken = AccessToken::getAccessToken();
$url = 'https://api.weixin.qq.com/cgi-bin/menu/delete?access_token='.$accessToken;
return Curl::callWebServer($url, '', 'GET');
}
}