admin/business/asset/weworkapi/api/datastructure/Menu.class.php

361 lines
13 KiB
PHP

<?php
include_once(__DIR__."/../../utils/Utils.class.php");
include_once(__DIR__."/../../utils/error.inc.php");
class Menu {
public $button = null; // xxxMenu array, 即各种子菜单array
public function __construct($xxmenuArray=null)
{
$this->button = $xxmenuArray;
}
public static function CheckMenuCreateArgs($menu) {
}
public static function Array2Menu($arr)
{
$menu = new Menu();
foreach($arr["button"] as $item) {
$subButton = null;
if ( ! array_key_exists("type", $item)) {
$subButton = SubMenu::Array2Menu($item);
} else {
$type = $item["type"];
if ($type == "click") $subButton = ClickMenu::Array2Menu($item);
if ($type == "view") $subButton = viewMenu::Array2Menu($item);
if ($type == "scancode_push") $subButton = ScanCodePushMenu::Array2Menu($item);
if ($type == "scancode_waitmsg") $subButton = ScanCodeWaitMsgMenu::Array2Menu($item);
if ($type == "pic_sysphoto") $subButton = PicSysPhotoMenu::Array2Menu($item);
if ($type == "pic_photo_or_album") $subButton = PicPhotoOrAlbumMenu::Array2Menu($item);
if ($type == "pic_weixin") $subButton = PicWeixinMenu::Array2Menu($item);
if ($type == "location_select") $subButton = LocationSelectMenu::Array2Menu($item);
}
$menu->button[] = $subButton;
}
return $menu;
}
} // class
// ------------------------ 各种类型子菜单 ------------------------------------
class SubMenu {
public $name = null; // string
public $sub_button = null; // xxxMenu array
public function __construct($name=null, $xxmenuArray=null)
{
$this->name = $name;
$this->sub_button = $xxmenuArray;
}
public static function Array2Menu($arr)
{
$menu = new SubMenu();
$menu->name = Utils::arrayGet($arr, "name");
foreach($arr["sub_button"] as $item) {
$subButton = null;
if ( ! array_key_exists("type", $item)) {
$subButton = SubMenu::Array2Menu($item);
} else {
$type = $item["type"];
if ($type == "click") $subButton = ClickMenu::Array2Menu($item);
if ($type == "view") $subButton = viewMenu::Array2Menu($item);
if ($type == "scancode_push") $subButton = ScanCodePushMenu::Array2Menu($item);
if ($type == "scancode_waitmsg") $subButton = ScanCodeWaitMsgMenu::Array2Menu($item);
if ($type == "pic_sysphoto") $subButton = PicSysPhotoMenu::Array2Menu($item);
if ($type == "pic_photo_or_album") $subButton = PicPhotoOrAlbumMenu::Array2Menu($item);
if ($type == "pic_weixin") $subButton = PicWeixinMenu::Array2Menu($item);
if ($type == "location_select") $subButton = LocationSelectMenu::Array2Menu($item);
}
$menu->sub_button[] = $subButton;
}
return $menu;
}
}
class ClickMenu {
public $type = "click";
public $name = null; // string
public $key = null; // string
public function __construct($name=null, $key=null, $xxmenuArray=null)
{
$this->name = $name;
$this->key = $key;
}
public static function Array2Menu($arr)
{
$menu = new ClickMenu();
$menu->type = Utils::arrayGet($arr, "type");
$menu->name = Utils::arrayGet($arr, "name");
$menu->key = Utils::arrayGet($arr, "key");
return $menu;
}
}
class viewMenu {
public $type = "view";
public $name = null; // string
public $url = null; // string
public function __construct($name=null, $url= null)
{
$this->name = $name;
$this->url = $url;
}
public static function Array2Menu($arr)
{
$menu = new viewMenu();
$menu->type = "view";
$menu->name = Utils::arrayGet($arr, "name");
$menu->url = Utils::arrayGet($arr, "url");
return $menu;
}
}
class ScanCodePushMenu {
public $type = "scancode_push";
public $name = null; // string
public $key = null; // string
public $sub_button = null; // xxxMenu array
public function __construct($name=null, $key=null, $xxmenuArray=null)
{
$this->name = $name;
$this->key = $key;
$this->sub_button = $xxmenuArray;
}
public static function Array2Menu($arr)
{
$menu = new ScanCodePushMenu();
$menu->type = Utils::arrayGet($arr, "type");
$menu->name = Utils::arrayGet($arr, "name");
$menu->key = Utils::arrayGet($arr, "key");
foreach($arr["sub_button"] as $item) {
$subButton = null;
if ( ! array_key_exists("type", $item)) {
$subButton = SubMenu::Array2Menu($item);
} else {
$type = $item["type"];
if ($type == "click") $subButton = ClickMenu::Array2Menu($item);
if ($type == "view") $subButton = viewMenu::Array2Menu($item);
if ($type == "scancode_push") $subButton = ScanCodePushMenu::Array2Menu($item);
if ($type == "scancode_waitmsg") $subButton = ScanCodeWaitMsgMenu::Array2Menu($item);
if ($type == "pic_sysphoto") $subButton = PicSysPhotoMenu::Array2Menu($item);
if ($type == "pic_photo_or_album") $subButton = PicPhotoOrAlbumMenu::Array2Menu($item);
if ($type == "pic_weixin") $subButton = PicWeixinMenu::Array2Menu($item);
if ($type == "location_select") $subButton = LocationSelectMenu::Array2Menu($item);
}
$menu->sub_button[] = $subButton;
}
return $menu;
}
}
class ScanCodeWaitMsgMenu {
public $type = "scancode_waitmsg";
public $name = null; // string
public $key = null; // string
public $sub_button = null; // xxxMenu array
public function __construct($name=null, $key=null, $xxmenuArray=null)
{
$this->name = $name;
$this->key = $key;
$this->sub_button = $xxmenuArray;
}
public static function Array2Menu($arr)
{
$menu = new ScanCodeWaitMsgMenu();
$menu->type = Utils::arrayGet($arr, "type");
$menu->name = Utils::arrayGet($arr, "name");
$menu->key = Utils::arrayGet($arr, "key");
foreach($arr["sub_button"] as $item) {
$subButton = null;
if ( ! array_key_exists("type", $item)) {
$subButton = SubMenu::Array2Menu($item);
} else {
$type = $item["type"];
if ($type == "click") $subButton = ClickMenu::Array2Menu($item);
if ($type == "view") $subButton = viewMenu::Array2Menu($item);
if ($type == "scancode_push") $subButton = ScanCodePushMenu::Array2Menu($item);
if ($type == "scancode_waitmsg") $subButton = ScanCodeWaitMsgMenu::Array2Menu($item);
if ($type == "pic_sysphoto") $subButton = PicSysPhotoMenu::Array2Menu($item);
if ($type == "pic_photo_or_album") $subButton = PicPhotoOrAlbumMenu::Array2Menu($item);
if ($type == "pic_weixin") $subButton = PicWeixinMenu::Array2Menu($item);
if ($type == "location_select") $subButton = LocationSelectMenu::Array2Menu($item);
}
$menu->sub_button[] = $subButton;
}
return $menu;
}
}
class PicSysPhotoMenu {
public $type = "pic_sysphoto";
public $name = null; // string
public $key = null; // string
public $sub_button = null; // xxxMenu array
public function __construct($name=null, $key=null, $xxmenuArray=null)
{
$this->name = $name;
$this->key = $key;
$this->sub_button = $xxmenuArray;
}
public static function Array2Menu($arr)
{
$menu = new PicSysPhotoMenu();
$menu->type = Utils::arrayGet($arr, "type");
$menu->name = Utils::arrayGet($arr, "name");
$menu->key = Utils::arrayGet($arr, "key");
foreach($arr["sub_button"] as $item) {
$subButton = null;
if ( ! array_key_exists("type", $item)) {
$subButton = SubMenu::Array2Menu($item);
} else {
$type = $item["type"];
if ($type == "click") $subButton = ClickMenu::Array2Menu($item);
if ($type == "view") $subButton = viewMenu::Array2Menu($item);
if ($type == "scancode_push") $subButton = ScanCodePushMenu::Array2Menu($item);
if ($type == "scancode_waitmsg") $subButton = ScanCodeWaitMsgMenu::Array2Menu($item);
if ($type == "pic_sysphoto") $subButton = PicSysPhotoMenu::Array2Menu($item);
if ($type == "pic_photo_or_album") $subButton = PicPhotoOrAlbumMenu::Array2Menu($item);
if ($type == "pic_weixin") $subButton = PicWeixinMenu::Array2Menu($item);
if ($type == "location_select") $subButton = LocationSelectMenu::Array2Menu($item);
}
$menu->sub_button[] = $subButton;
}
return $menu;
}
}
class PicPhotoOrAlbumMenu {
public $type = "pic_photo_or_album";
public $name = null; // string
public $key = null; // string
public $sub_button = null; // xxxMenu array
public function __construct($name=null, $key=null, $xxmenuArray=null)
{
$this->name = $name;
$this->key = $key;
$this->sub_button = $xxmenuArray;
}
public static function Array2Menu($arr)
{
$menu = new PicPhotoOrAlbumMenu();
$menu->type = Utils::arrayGet($arr, "type");
$menu->name = Utils::arrayGet($arr, "name");
$menu->key = Utils::arrayGet($arr, "key");
foreach($arr["sub_button"] as $item) {
$subButton = null;
if ( ! array_key_exists("type", $item)) {
$subButton = SubMenu::Array2Menu($item);
} else {
$type = $item["type"];
if ($type == "click") $subButton = ClickMenu::Array2Menu($item);
if ($type == "view") $subButton = viewMenu::Array2Menu($item);
if ($type == "scancode_push") $subButton = ScanCodePushMenu::Array2Menu($item);
if ($type == "scancode_waitmsg") $subButton = ScanCodeWaitMsgMenu::Array2Menu($item);
if ($type == "pic_sysphoto") $subButton = PicSysPhotoMenu::Array2Menu($item);
if ($type == "pic_photo_or_album") $subButton = PicPhotoOrAlbumMenu::Array2Menu($item);
if ($type == "pic_weixin") $subButton = PicWeixinMenu::Array2Menu($item);
if ($type == "location_select") $subButton = LocationSelectMenu::Array2Menu($item);
}
$menu->sub_button[] = $subButton;
}
return $menu;
}
}
class PicWeixinMenu {
public $type = "pic_weixin";
public $name = null; // string
public $key = null; // string
public $sub_button = null; // xxxMenu array
public function __construct($name=null, $key=null, $xxmenuArray=null)
{
$this->name = $name;
$this->key = $key;
$this->sub_button = $xxmenuArray;
}
public static function Array2Menu($arr)
{
$menu = new PicWeixinMenu();
$menu->type = Utils::arrayGet($arr, "type");
$menu->name = Utils::arrayGet($arr, "name");
$menu->key = Utils::arrayGet($arr, "key");
foreach($arr["sub_button"] as $item) {
$subButton = null;
if ( ! array_key_exists("type", $item)) {
$subButton = SubMenu::Array2Menu($item);
} else {
$type = $item["type"];
if ($type == "click") $subButton = ClickMenu::Array2Menu($item);
if ($type == "view") $subButton = viewMenu::Array2Menu($item);
if ($type == "scancode_push") $subButton = ScanCodePushMenu::Array2Menu($item);
if ($type == "scancode_waitmsg") $subButton = ScanCodeWaitMsgMenu::Array2Menu($item);
if ($type == "pic_sysphoto") $subButton = PicSysPhotoMenu::Array2Menu($item);
if ($type == "pic_photo_or_album") $subButton = PicPhotoOrAlbumMenu::Array2Menu($item);
if ($type == "pic_weixin") $subButton = PicWeixinMenu::Array2Menu($item);
if ($type == "location_select") $subButton = LocationSelectMenu::Array2Menu($item);
}
$menu->sub_button[] = $subButton;
}
return $menu;
}
}
class LocationSelectMenu {
public $type = "location_select";
public $name = null; // string
public $key = null; // string
public function __construct($name=null, $key=null, $xxmenuArray=null)
{
$this->name = $name;
$this->key = $key;
}
public static function Array2Menu($arr)
{
$menu = new LocationSelectMenu();
$menu->type = Utils::arrayGet($arr, "type");
$menu->name = Utils::arrayGet($arr, "name");
$menu->key = Utils::arrayGet($arr, "key");
return $menu;
}
}