微信自定义菜单

/**
	 *     自定义创建菜单栏
	 * */

	public function createMenusOp()
	{
		if (request()->isAjax() && request()->isPost()) {
			$openid = input('post.openid');
			if ($openid == '') {
				return jsons(['status' => '0', 'msg' => '操作异常']);
			}
			$custom_menu = model('custom_menu')->where(['open_id' => $openid, 'parent_id' => '0'])->order('id abs')->select()->toArray();
			$result = [];
			$param = model('parameter')->getval();
			$this->grant = new grant($param->token, $param->encodingAesKey, $param->appid, $param->appsecret);
			$getctoken = model('parameter')->getctoken();
			if ($getctoken['code'] == '0') {
				return jsons(['status' => '0', 'msg' => $getctoken['msg']]);
			} else {
				$component_access_token = $getctoken['component_access_token'];
			}
			$gettoken = $this->grant->gettoken($openid, $component_access_token, $this->userinfo['uid']);
			if ($gettoken['code'] == '0') {
				return jsons(['status' => '0', 'msg' => $gettoken['msg']]);
			} else {
				$access_token = $gettoken['access_token'];
			}
			$del = $this->grant->custommenu($access_token, '', 2);
			foreach ($custom_menu as $key => $value) {
				$data = model('custom_menu')->where(['open_id' => $openid, 'parent_id' => $value['id']])->select()->toArray();
				if (empty($data)) {
					$submenu = model('submenu')->where(['open_id' => $openid, 'key' => $value['key']])->field('type,content,media_id')->find();
					if ($submenu) {
						switch ($submenu['type']) {
							case 'view':
								$result['button'][$key]['name'] = $value['name'];
								$result['button'][$key]['type'] = $submenu['type'];
								$result['button'][$key]['url'] = $submenu['content'];
								break;
							case 'text':
								$result['button'][$key]['name'] = $value['name'];
								$result['button'][$key]['type'] = 'click';
								$result['button'][$key]['key'] = $value['key'];
								break;
							case 'image':
								$result['button'][$key]['name'] = $value['name'];
								$result['button'][$key]['type'] = 'media_id';
								$result['button'][$key]['media_id'] = $submenu['media_id'];
								break;
							case 'news':
								$submenu = model('management')->where(['open_id' => $openid, 'id' => $submenu['content']])->field('content,media_id')->find();
								$result['button'][$key]['name'] = $value['name'];
								$result['button'][$key]['type'] = 'view_limited';
								$result['button'][$key]['media_id'] = $submenu['media_id'];
								break;
							default:
								break;
						}
					} else {
						$result['button'][$key]['name'] = $value['name'];
						$result['button'][$key]['key'] = $value['key'];
						$result['button'][$key]['type'] = 'click';
					}
				} else {
					$result['button'][]['name'] = $value['name'];
					foreach ($data as $k => $v) {
						$submenu = model('submenu')->where(['open_id' => $openid, 'key' => $v['key']])->field('type,content,media_id')->find();
						if ($submenu) {
							switch ($submenu['type']) {
								case 'view':
									$result['button'][$key]['sub_button'][$k]['name'] = $v['name'];
									$result['button'][$key]['sub_button'][$k]['type'] = $submenu['type'];
									$result['button'][$key]['sub_button'][$k]['url'] = $submenu['content'];
									break;
								case 'text':
									$result['button'][$key]['sub_button'][$k]['name'] = $v['name'];
									$result['button'][$key]['sub_button'][$k]['type'] = 'click';
									$result['button'][$key]['sub_button'][$k]['key'] = $v['key'];
									break;
								case 'image':
									$result['button'][$key]['sub_button'][$k]['name'] = $v['name'];
									$result['button'][$key]['sub_button'][$k]['type'] = 'media_id';
									$result['button'][$key]['sub_button'][$k]['media_id'] = $submenu['media_id'];
									break;
								case 'news':
									$submenu = model('management')->where(['open_id' => $openid, 'id' => $submenu['content']])->field('content,media_id')->find();
									$result['button'][$key]['sub_button'][$k]['name'] = $v['name'];
									$result['button'][$key]['sub_button'][$k]['type'] = 'view_limited';
									$result['button'][$key]['sub_button'][$k]['media_id'] = $submenu['media_id'];
									break;
								default:
									break;
							}
						}
					}
				}
			}
			$dataType = json_decode($this->grant->custommenu($access_token, $result), true);
			if (!in_array('ok', $dataType)) {
				return jsons(['status' => '0', 'msg' => '保存失败']);
			}
			return jsons(['status' => '1', 'msg' => '保存成功']);
		}

	}
/**
	 *  添加顶级菜单
	 */
	public function addmenu_ziOp()
	{
		if (request()->isPost() && request()->isAjax()) {
			$open_id = input('open_id');
			$menuName = input('menuName');		//菜单名字
			if (strlen($menuName) > 16) {
				return jsons(['status' => '0', 'msg' => '菜单标题过长']);
			}
			$need = input('need');   //是否有子菜单
			$parent_id = input('parent_id');
			$key = input('name_key');
			$order = input('order');
			$type = 'click';
			$id = model('wx_authorization_information')->where(['uid' => $this->userinfo['uid'], 'user_name' => $open_id])->value('id');
			if ($id == '') {
				return jsons(['status' => '0', 'msg' => '参数异常']);
			}
			$customMenuId = model('custom_menu')->where(['uid' => $this->userinfo['uid'], 'open_id' => $open_id, 'key' => $key])->value('id');
			if ($customMenuId == '') {
				$customMenu_array = [
					'uid' => $this->userinfo['uid'],
					'name' => $menuName,
					'type' => $type,
					'open_id' => $open_id,
					'parent_id' => '0',
					'key' => $key,
					'order_type' => $order,
					'switch' => 9,
				];
				$customMenu = model('custom_menu')->allowField(true)->isUpdate(false)->save($customMenu_array);
				if ($customMenu === false) {
					return jsons(['status' => '0', 'msg' => '保存失败']);
				}
			} else {
				$customMenu_array = [
					'name' => $menuName,
					'type' => $type,
					'switch' => 9,
				];
				$customMenu = model('custom_menu')->allowField(true)->isUpdate(false)->save($customMenu_array, ['key' => $key]);
				if ($customMenu === false) {
					return jsons(['status' => '0', 'msg' => '保存失败']);
				}
			}
			$submenu = model('submenu')->where(['key' => $key])->field('id,type,media_id,content')->find();
			if (!empty($submenu)) {
				if ($submenu['type'] == 'image') {
					$param = model('parameter')->getval();
					$this->grant = new grant($param->token, $param->encodingAesKey, $param->appid, $param->appsecret);
					$getctoken = model('parameter')->getctoken();
					if ($getctoken['code'] == '0') {
						return jsons(['status' => '0', 'msg' => $getctoken['msg']]);
					} else {
						$component_access_token = $getctoken['component_access_token'];
					}
					$gettoken = $this->grant->gettoken($open_id, $com
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值