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
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');
|
|
}
|
|
} |