commit 3bafbffd9a9c868f56f1fd709c0312bba2a84a62 Author: gangwen.lv Date: Mon Oct 23 15:51:36 2023 +0800 7.2.1 diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..b26a34e --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +7.2.1 diff --git a/config/config.php b/config/config.php new file mode 100755 index 0000000..9ccb942 --- /dev/null +++ b/config/config.php @@ -0,0 +1,175 @@ +version = '3.1'; // ZenTaoPHP的版本。 The version of ZenTaoPHP. Don't change it. +$config->charset = 'UTF-8'; // ZenTaoPHP的编码。 The encoding of ZenTaoPHP. +$config->cookieLife = time() + 2592000; // Cookie的生存时间。The cookie life time. +$config->timezone = 'Asia/Shanghai'; // 时区设置。 The time zone setting, for more see http://www.php.net/manual/en/timezones.php. +$config->webRoot = getWebRoot(); // URL根目录。 The root path of the url. + +/* 框架路由相关设置。Routing settings. */ +$config->requestType = 'PATH_INFO'; // 请求类型:PATH_INFO|PATHINFO2|GET。 The request type: PATH_INFO|PATH_INFO2|GET. +$config->requestFix = '-'; // PATH_INFO和PATH_INFO2模式的分隔符。 The divider in the url when PATH_INFO|PATH_INFO2. +$config->moduleVar = 'm'; // 请求类型为GET:模块变量名。 requestType=GET: the module var name. +$config->methodVar = 'f'; // 请求类型为GET:模块变量名。 requestType=GET: the method var name. +$config->viewVar = 't'; // 请求类型为GET:视图变量名。 requestType=GET: the view var name. +$config->sessionVar = 'rid'; // 请求类型为GET:session变量名。 requestType=GET: the session var name. +$config->views = ',html,json,mhtml,xhtml,'; // 支持的视图类型。 Supported view formats. + +/* 支持的主题和语言。Supported thems and languages. */ +$config->themes['default'] = 'default'; +$config->langs['zh-cn'] = '简体'; +$config->langs['zh-tw'] = '繁體'; +$config->langs['en'] = 'English'; + +/* 设备类型视图文件前缀。The prefix for view file for different device. */ +$config->devicePrefix['mhtml'] = 'm.'; +$config->devicePrefix['xhtml'] = 'x.'; + +/* 默认值设置。Default settings. */ +$config->default = new stdclass(); +$config->default->view = 'html'; //默认视图。 Default view. +$config->default->lang = 'en'; //默认语言。 Default language. +$config->default->theme = 'default'; //默认主题。 Default theme. +$config->default->module = 'index'; //默认模块。 Default module. +$config->default->method = 'index'; //默认方法。 Default method. + +/* 数据库设置。Database settings. */ +$config->db = new stdclass(); +$config->slaveDB = new stdclass(); +$config->db->persistant = false; // 是否为持续连接。 Pconnect or not. +$config->db->driver = 'mysql'; // 目前只支持MySQL数据库。Must be MySQL. Don't support other database server yet. +$config->db->encoding = 'UTF8'; // 数据库编码。 Encoding of database. +$config->db->strictMode = false; // 关闭MySQL的严格模式。 Turn off the strict mode of MySQL. +$config->db->prefix = ''; // 数据库表名前缀。 The prefix of the table name. +$config->slaveDB->persistant = false; +$config->slaveDB->driver = 'mysql'; +$config->slaveDB->encoding = 'UTF8'; +$config->slaveDB->strictMode = false; + +/* 可用域名后缀列表。Domain postfix lists. */ +$config->domainPostfix = "|com|com.cn|com.hk|com.tw|com.vc|edu.cn|es|"; +$config->domainPostfix .= "|eu|fm|gov.cn|gs|hk|im|in|info|jp|kr|la|me|"; +$config->domainPostfix .= "|mobi|my|name|net|net.cn|org|org.cn|pk|pro|"; +$config->domainPostfix .= "|sg|so|tel|tk|to|travel|tv|tw|uk|us|ws|"; +$config->domainPostfix .= "|ac.cn|bj.cn|sh.cn|tj.cn|cq.cn|he.cn|sn.cn|"; +$config->domainPostfix .= "|sx.cn|nm.cn|ln.cn|jl.cn|hl.cn|js.cn|zj.cn|"; +$config->domainPostfix .= "|ah.cn|fj.cn|jx.cn|sd.cn|ha.cn|hb.cn|hn.cn|"; +$config->domainPostfix .= "|gd.cn|gx.cn|hi.cn|sc.cn|gz.cn|yn.cn|gs.cn|pub|pw|"; +$config->domainPostfix .= "|qh.cn|nx.cn|xj.cn|tw.cn|hk.cn|mo.cn|xz.cn|xyz|wang|"; +$config->domainPostfix .= "|ae|asia|biz|cc|cd|cm|cn|co|co.jp|co.kr|co.uk|"; +$config->domainPostfix .= "|top|ren|club|space|tm|website|cool|company|city|email|"; +$config->domainPostfix .= "|market|software|ninja|bike|today|life|co.il|io|"; +$config->domainPostfix .= "|mn|ph|ps|tl|uz|vn|co.nz|cz|gg|gl|gr|je|md|me.uk|org.uk|pl|si|sx|vg|ag|"; +$config->domainPostfix .= "|bz|cl|ec|gd|gy|ht|lc|ms|mx|pe|tc|vc|ac|bi|mg|mu|sc|as|com.sb|cx|ki|nf|sh|"; +$config->domainPostfix .= "|rocks|social|co.com|bio|reviews|link|sexy|us.com|consulting|moda|desi|"; +$config->domainPostfix .= "|menu|info|events|webcam|dating|vacations|flights|cruises|global|ca|guru|"; +$config->domainPostfix .= "|futbol|rentals|dance|lawyer|attorney|democrat|republican|actor|condos|immobilien|"; +$config->domainPostfix .= "|villas|foundation|expert|works|tools|watch|zone|bargains|agency|best|solar|"; +$config->domainPostfix .= "|farm|pics|photo|marketing|holiday|gift|buzz|guitars|trade|construction|"; +$config->domainPostfix .= "|international|house|coffee|florist|rich|ceo|camp|education|repair|win|site|"; + +/* 系统框架配置。Framework settings. */ +$config->framework = new stdclass(); +$config->framework->autoConnectDB = true; // 是否自动连接数据库。 Whether auto connect database or not. +$config->framework->multiLanguage = true; // 是否启用多语言功能。 Whether enable multi lanuage or not. +$config->framework->multiTheme = true; // 是否启用多风格功能。 Whether enable multi theme or not. +$config->framework->multiSite = false; // 是否启用多站点模式。 Whether enable multi site mode or not. +$config->framework->extensionLevel = 1; // 0=>无扩展,1=>公共扩展,2=>站点扩展 0=>no extension, 1=> common extension, 2=> every site has it's extension. +$config->framework->jsWithPrefix = true; // js::set()输出的时候是否增加前缀。 When us js::set(), add prefix or not. +$config->framework->filterBadKeys = true; // 是否过滤不合要求的键值。 Whether filter bad keys or not. +$config->framework->filterTrojan = true; // 是否过滤木马攻击代码。 Whether strip trojan code or not. +$config->framework->filterXSS = true; // 是否过滤XSS攻击代码。 Whether strip xss code or not. +$config->framework->filterParam = 2; // 1=>默认过滤,2=>开启过滤参数功能。0=>default filter 2=>Whether strip param. +$config->framework->purifier = false; // 是否对数据做purifier处理。 Whether purifier data or not. +$config->framework->logDays = 14; // 日志文件保存的天数。 The days to save log files. + +$config->framework->detectDevice['zh-cn'] = true; // 在zh-cn语言情况下,是否启用设备检测功能。 Whether enable device detect or not. +$config->framework->detectDevice['zh-tw'] = true; // 在zh-tw语言情况下,是否启用设备检测功能。 Whether enable device detect or not. +$config->framework->detectDevice['en'] = true; // 在en语言情况下,是否启用设备检测功能。 Whether enable device detect or not. + +/* 文件上传设置。 Upload settings. */ +$config->file = new stdclass(); +$config->file->dangers = 'php,php3,php4,phtml,php5,jsp,py,rb,asp,aspx,ashx,asa,cer,cdx,aspl,shtm,shtml,html,htm'; +$config->file->allowed = 'txt,doc,docx,dot,wps,wri,pdf,ppt,pptx,xls,xlsx,ett,xlt,xlsm,csv,jpg,jpeg,png,psd,gif,ico,bmp,swf,avi,rmvb,rm,mp3,mp4,3gp,flv,mov,movie,rar,zip,bz,bz2,tar,gz'; + +/* 前端input标签属性设置。Html input tag settings. */ +$config->inputTag = new stdclass(); +$config->inputTag->disableAutocomplete = ',hours,money,workingHours,normal,late,early,absent,trip,egress,paidLeave,unpaidLeave,timeOvertime,restOvertime,holidayOvertime,lieu,deserve,actual,amount,saveDays,m,h,dom,mon,dow,consumed,estimate,left,teamEstimate,teamConsumed,teamLeft,teamEstimate,teamConsumed,teamLeft,reserveDays,values,width,height,investMoney,';// 涉及到数字的输入框禁用自带填充功能,避免造成干扰。 Disable the autocomplete function of html input tag to avoid interference. + +/* 配置参数过滤。Filter param settings. */ +$filterConfig = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'filter.php'; +if(file_exists($filterConfig)) include $filterConfig; + +/* 引用自定义的配置。 Include the custom config file. */ +$myConfig = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'my.php'; +if(file_exists($myConfig)) include $myConfig; + +/* 处理加密的自定义配置 $config->security。Handle security。Handle custom config in $config->security */ +if(isset($config->security)) +{ + $security = trim(base64_decode($config->security)); + + if(strpos($security, ' $value) + { + $parent = $config; + if(strpos($key, '.') < 0) + { + $keyPath = explode('.', $key); + $keyPathCount = count($keyPath); + $key = $keyPath[$keyPathCount - 1]; + if($keyPathCount < 2) continue; + + for($i = 0; $i < $keyPathCount - 1; $i++) + { + $subKey = $keyPath[$i]; + $parent = $parent->$subKey; + } + } + $parent->$key = $value; + } + } + } +} + +/* 喧喧配置文件。 xxb settings. */ +$xxbConfig = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'xxb.php'; +if(file_exists($xxbConfig)) include $xxbConfig; + +$rightsConfig = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'rights.php'; +if(file_exists($rightsConfig)) include $rightsConfig; + +/* Include extension config files. */ +$extConfigFiles = glob(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'ext/*.php'); +if($extConfigFiles) foreach($extConfigFiles as $extConfigFile) include $extConfigFile; + +if(!isset($config->debug)) $config->debug = true; diff --git a/config/ext/_0_xuanxuan.php b/config/ext/_0_xuanxuan.php new file mode 100755 index 0000000..b7373dd --- /dev/null +++ b/config/ext/_0_xuanxuan.php @@ -0,0 +1,114 @@ +minClientVerson = '5.0'; // 最低支持的客户端版本。The min client version of XXB support for + +$config->xuanxuan = new stdclass(); +$config->xuanxuan->version = '7.2.1'; +$config->xuanxuan->backend = 'xxb'; +$config->xuanxuan->backendLang = 'zh-cn'; +$config->xuanxuan->key = ''; //Set a 32 byte string as your key. + +$config->maps = array(); +$config->xxd = new stdclass(); + +if(!defined('TABLE_IM_CHAT')) define('TABLE_IM_CHAT', '`' . $config->db->prefix . 'im_chat`'); +if(!defined('TABLE_IM_CHATUSER')) define('TABLE_IM_CHATUSER', '`' . $config->db->prefix . 'im_chatuser`'); +if(!defined('TABLE_IM_CLIENT')) define('TABLE_IM_CLIENT', '`' . $config->db->prefix . 'im_client`'); +if(!defined('TABLE_IM_MESSAGE')) define('TABLE_IM_MESSAGE', '`' . $config->db->prefix . 'im_message`'); +if(!defined('TABLE_IM_MESSAGESTATUS')) define('TABLE_IM_MESSAGESTATUS', '`' . $config->db->prefix . 'im_messagestatus`'); +if(!defined('TABLE_IM_QUEUE')) define('TABLE_IM_QUEUE', '`' . $config->db->prefix . 'im_queue`'); +if(!defined('TABLE_IM_CONFERENCE')) define('TABLE_IM_CONFERENCE', '`' . $config->db->prefix . 'im_conference`'); +if(!defined('TABLE_IM_CONFERENCEACTION')) define('TABLE_IM_CONFERENCEACTION', '`' . $config->db->prefix . 'im_conferenceaction`'); +if(!defined('TABLE_IM_CONFERENCEUSER')) define('TABLE_IM_CONFERENCEUSER', '`' . $config->db->prefix . 'im_conferenceuser`'); +if(!defined('TABLE_IM_USERDEVICE')) define('TABLE_IM_USERDEVICE', '`' . $config->db->prefix . 'im_userdevice`'); + +if(!defined('TABLE_IM_MESSAGE_BACKUP')) define('TABLE_IM_MESSAGE_BACKUP', '`' . $config->db->prefix . 'im_message_backup`'); +if(!defined('TABLE_IM_MESSAGE_INDEX')) define('TABLE_IM_MESSAGE_INDEX', '`' . $config->db->prefix . 'im_message_index`'); +if(!defined('TABLE_IM_CHAT_MESSAGE_INDEX')) define('TABLE_IM_CHAT_MESSAGE_INDEX', '`' . $config->db->prefix . 'im_chat_message_index`'); + +$config->xuanxuan->enabledMethods['im']['sysserverstart'] = 'sysServerStart'; +$config->xuanxuan->enabledMethods['im']['sysgetserverinfo'] = 'sysGetServerInfo'; +$config->xuanxuan->enabledMethods['im']['sysgetdepts'] = 'sysGetDepts'; +$config->xuanxuan->enabledMethods['im']['userlogin'] = 'userLogin'; +$config->xuanxuan->enabledMethods['im']['userlogout'] = 'userLogout'; +$config->xuanxuan->enabledMethods['im']['usergetlist'] = 'userGetList'; +$config->xuanxuan->enabledMethods['im']['usergetlistbydept'] = 'userGetListByDept'; +$config->xuanxuan->enabledMethods['im']['usergetdeleted'] = 'userGetDeleted'; +$config->xuanxuan->enabledMethods['im']['usersearch'] = 'userSearch'; +$config->xuanxuan->enabledMethods['im']['userupdate'] = 'userUpdate'; +$config->xuanxuan->enabledMethods['im']['usersyncsettings'] = 'userSyncSettings'; +$config->xuanxuan->enabledMethods['im']['usersetdevicetoken'] = 'userSetDeviceToken'; +$config->xuanxuan->enabledMethods['im']['usergetauthtoken'] = 'userGetAuthToken'; +$config->xuanxuan->enabledMethods['im']['userrenewauthtoken'] = 'userRenewAuthToken'; +$config->xuanxuan->enabledMethods['im']['chatgetpubliclist'] = 'chatGetPublicList'; +$config->xuanxuan->enabledMethods['im']['chatgetlist'] = 'chatGetList'; +$config->xuanxuan->enabledMethods['im']['chatgetmembers'] = 'chatGetMembers'; +$config->xuanxuan->enabledMethods['im']['chatgetmemberdetails'] = 'chatGetMemberDetails'; +$config->xuanxuan->enabledMethods['im']['chatgetmessageinfo'] = 'chatGetMessageInfo'; +$config->xuanxuan->enabledMethods['im']['chatcreate'] = 'chatCreate'; +$config->xuanxuan->enabledMethods['im']['chataddadmins'] = 'chatAddAdmins'; +$config->xuanxuan->enabledMethods['im']['chatremoveadmins'] = 'chatRemoveAdmins'; +$config->xuanxuan->enabledMethods['im']['chatjoin'] = 'chatJoin'; +$config->xuanxuan->enabledMethods['im']['chatleave'] = 'chatLeave'; +$config->xuanxuan->enabledMethods['im']['chatrename'] = 'chatRename'; +$config->xuanxuan->enabledMethods['im']['chatarchive'] = 'chatArchive'; +$config->xuanxuan->enabledMethods['im']['chatdismiss'] = 'chatDismiss'; +$config->xuanxuan->enabledMethods['im']['chatsetcommitters'] = 'chatSetCommitters'; +$config->xuanxuan->enabledMethods['im']['chatsetvisibility'] = 'chatSetVisibility'; +$config->xuanxuan->enabledMethods['im']['chatsetconfig'] = 'chatSetConfig'; +$config->xuanxuan->enabledMethods['im']['chatsearch'] = 'chatSearch'; +$config->xuanxuan->enabledMethods['im']['chatsetavatar'] = 'chatSetAvatar'; +$config->xuanxuan->enabledMethods['im']['chatstar'] = 'chatStar'; +$config->xuanxuan->enabledMethods['im']['chathide'] = 'chatHide'; +$config->xuanxuan->enabledMethods['im']['chatmute'] = 'chatMute'; +$config->xuanxuan->enabledMethods['im']['chatfreeze'] = 'chatFreeze'; +$config->xuanxuan->enabledMethods['im']['chatsetcategory'] = 'chatSetCategory'; +$config->xuanxuan->enabledMethods['im']['chatinvite'] = 'chatInvite'; +$config->xuanxuan->enabledMethods['im']['chatkick'] = 'chatKick'; +$config->xuanxuan->enabledMethods['im']['chatchangeownership'] = 'chatChangeOwnership'; +$config->xuanxuan->enabledMethods['im']['chatpinmessages'] = 'chatPinMessages'; +$config->xuanxuan->enabledMethods['im']['chatunpinmessages'] = 'chatUnpinMessages'; +$config->xuanxuan->enabledMethods['im']['chatgethistory'] = 'chatGetHistory'; +$config->xuanxuan->enabledMethods['im']['chatsetlastreadmessage'] = 'chatSetLastReadMessage'; +$config->xuanxuan->enabledMethods['im']['chatsetlastreadmessagebyindex'] = 'chatSetLastReadMessageByIndex'; +$config->xuanxuan->enabledMethods['im']['chatmerge'] = 'chatMerge'; +$config->xuanxuan->enabledMethods['im']['chatgetbygid'] = 'chatGetByGid'; +$config->xuanxuan->enabledMethods['im']['messageretract'] = 'messageRetract'; +$config->xuanxuan->enabledMethods['im']['messagesend'] = 'messageSend'; +$config->xuanxuan->enabledMethods['im']['conferencegetbychat'] = 'conferenceGetByChat'; +$config->xuanxuan->enabledMethods['im']['conferencegetbynumber'] = 'conferenceGetByNumber'; +$config->xuanxuan->enabledMethods['im']['conferencegetbycondition'] = 'conferenceGetByCondition'; +$config->xuanxuan->enabledMethods['im']['conferencecreate'] = 'conferenceCreate'; +$config->xuanxuan->enabledMethods['im']['conferencecreatedetached'] = 'conferenceCreateDetached'; +$config->xuanxuan->enabledMethods['im']['conferencejoin'] = 'conferenceJoin'; +$config->xuanxuan->enabledMethods['im']['conferenceinvite'] = 'conferenceInvite'; +$config->xuanxuan->enabledMethods['im']['conferenceleave'] = 'conferenceLeave'; +$config->xuanxuan->enabledMethods['im']['conferenceclose'] = 'conferenceClose'; +$config->xuanxuan->enabledMethods['im']['conferencehide'] = 'conferenceHide'; +$config->xuanxuan->enabledMethods['im']['conferencecancelscheduled'] = 'conferencecancelscheduled'; +$config->xuanxuan->enabledMethods['im']['conferencesyncaction'] = 'conferenceSyncAction'; +$config->xuanxuan->enabledMethods['im']['conferenceclean'] = 'conferenceClean'; +$config->xuanxuan->enabledMethods['im']['conferenceedit'] = 'conferenceEdit'; +$config->xuanxuan->enabledMethods['im']['extensiongetlist'] = 'extensionGetList'; +$config->xuanxuan->enabledMethods['im']['syncofflinemessages'] = 'syncOfflineMessages'; +$config->xuanxuan->enabledMethods['im']['syncnotifications'] = 'syncNotifications'; +$config->xuanxuan->enabledMethods['im']['syncconferences'] = 'syncConferences'; +$config->xuanxuan->enabledMethods['im']['syncusers'] = 'syncUsers'; +$config->xuanxuan->enabledMethods['im']['syncdepts'] = 'syncDepts'; +$config->xuanxuan->enabledMethods['im']['syncconfig'] = 'syncConfig'; +$config->xuanxuan->enabledMethods['im']['fileupload'] = 'fileUpload'; +$config->xuanxuan->enabledMethods['im']['todoupsert'] = 'todoUpsert'; +$config->xuanxuan->enabledMethods['im']['todogetlist'] = 'todoGetList'; +$config->xuanxuan->enabledMethods['im']['updatelastpoll'] = 'updateLastPoll'; +$config->xuanxuan->enabledMethods['im']['checkpasswordchanges'] = 'checkpasswordchanges'; +$config->xuanxuan->enabledMethods['im']['messagesyncsinceoffline'] = 'messageSyncSinceOffline'; +$config->xuanxuan->enabledMethods['im']['messagesyncmissed'] = 'messageSyncMissed'; +$config->xuanxuan->enabledMethods['im']['chatgetlastmessage'] = 'chatGetLastMessage'; +$config->xuanxuan->enabledMethods['im']['messagesync'] = 'messageSync'; +$config->xuanxuan->enabledMethods['im']['messagesyncbyindexes'] = 'messageSyncByIndexes'; +$config->xuanxuan->enabledMethods['im']['messagegetlist'] = 'messageGetList'; +$config->xuanxuan->enabledMethods['im']['messagegetlistbyindexes'] = 'messageGetListByIndexes'; +$config->xuanxuan->enabledMethods['im']['maintenance'] = 'maintenance'; +$config->xuanxuan->enabledMethods['im']['checkuserstobekicked'] = 'checkUsersToBeKicked'; +$config->xuanxuan->enabledMethods['entry']['visit'] = 'visit'; + +// Please use lowercase keys in enabledMethods. diff --git a/config/ext/_1_maps.php b/config/ext/_1_maps.php new file mode 100755 index 0000000..27a7e31 --- /dev/null +++ b/config/ext/_1_maps.php @@ -0,0 +1,346 @@ +maps['$version'] = '7.2.0'; +$config->maps['pager'] = array('type' => 'object', 'name' => 'pager'); +$config->maps['pager']['dataType'][] = array('name' => 'gid', 'type' => 'basic'); +$config->maps['pager']['dataType'][] = array('name' => 'recTotal', 'type' => 'basic'); +$config->maps['pager']['dataType'][] = array('name' => 'pageID', 'type' => 'basic'); +$config->maps['pager']['dataType'][] = array('name' => 'recPerPage', 'type' => 'basic'); +$config->maps['pager']['dataType'][] = array('name' => 'data', 'type' => 'basic'); +$config->maps['memberStatus'] = array('name' => 'memberStatus', 'type' => 'basic', 'options' => array('','offline','online','busy','away','meeting'), 'dataType' => array()); +$config->maps['basicMember'] = array('type' => 'object', 'name' => 'basicMember'); +$config->maps['basicMember']['dataType'][] = array('name' => 'id', 'type' => 'basic'); +$config->maps['basicMember']['dataType'][] = array('name' => 'account', 'type' => 'basic'); +$config->maps['basicMember']['dataType'][] = array('name' => 'status', 'type' => $config->maps['memberStatus']['type'], 'options' => $config->maps['memberStatus']['options'], 'dataType' => &$config->maps['memberStatus']['dataType']); +$config->maps['basicMember']['dataType'][] = array('name' => 'realname', 'type' => 'basic'); +$config->maps['basicMember']['dataType'][] = array('name' => 'dept', 'type' => 'basic'); +$config->maps['member'] = array('type' => 'object', 'name' => 'member'); +$config->maps['member']['dataType'][] = array('name' => 'id', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'account', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'status', 'type' => $config->maps['memberStatus']['type'], 'options' => $config->maps['memberStatus']['options'], 'dataType' => &$config->maps['memberStatus']['dataType']); +$config->maps['member']['dataType'][] = array('name' => 'realname', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'avatar', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'gender', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'dept', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'role', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'signed', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'email', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'mobile', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'phone', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'site', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'admin', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'realnames', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'deleted', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'weixin', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'address', 'type' => 'basic'); +$config->maps['member']['dataType'][] = array('name' => 'qq', 'type' => 'basic'); +$config->maps['userUpdateData'] = array('type' => 'object', 'name' => 'userUpdateData'); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'account', 'type' => 'basic'); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'status', 'type' => $config->maps['memberStatus']['type'], 'options' => $config->maps['memberStatus']['options'], 'dataType' => &$config->maps['memberStatus']['dataType']); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'password', 'type' => 'basic'); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'address', 'type' => 'basic'); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'gender', 'type' => 'basic'); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'mobile', 'type' => 'basic'); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'phone', 'type' => 'basic'); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'qq', 'type' => 'basic'); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'realname', 'type' => 'basic'); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'weixin', 'type' => 'basic'); +$config->maps['userUpdateData']['dataType'][] = array('name' => 'email', 'type' => 'basic'); +$config->maps['extension'] = array('type' => 'object', 'name' => 'extension'); +$config->maps['extension']['dataType'][] = array('name' => 'name', 'type' => 'basic'); +$config->maps['extension']['dataType'][] = array('name' => 'entryID', 'type' => 'basic'); +$config->maps['extension']['dataType'][] = array('name' => 'md5', 'type' => 'basic'); +$config->maps['extension']['dataType'][] = array('name' => 'download', 'type' => 'basic'); +$config->maps['extension']['dataType'][] = array('name' => 'displayName', 'type' => 'basic'); +$config->maps['extension']['dataType'][] = array('name' => 'abbrName', 'type' => 'basic'); +$config->maps['extension']['dataType'][] = array('name' => 'webViewUrl', 'type' => 'basic'); +$config->maps['extension']['dataType'][] = array('name' => 'logo', 'type' => 'basic'); +$config->maps['extension']['dataType'][] = array('name' => 'data', 'type' => 'basic'); +$config->maps['extension']['dataType'][] = array('name' => 'optional', 'type' => 'basic'); +$config->maps['extension']['dataType'][] = array('name' => 'enable', 'type' => 'basic'); +$config->maps['extensionList'] = array('name' => 'extensionList', 'type' => 'list', 'dataType' => &$config->maps['extension']); +$config->maps['notification'] = array('type' => 'object', 'name' => 'notification'); +$config->maps['notification']['dataType'][] = array('name' => 'id', 'type' => 'basic'); +$config->maps['notification']['dataType'][] = array('name' => 'gid', 'type' => 'basic'); +$config->maps['notification']['dataType'][] = array('name' => 'title', 'type' => 'basic'); +$config->maps['notification']['dataType'][] = array('name' => 'date', 'type' => 'basic'); +$config->maps['notification']['dataType'][] = array('name' => 'sender', 'type' => 'basic'); +$config->maps['notification']['dataType'][] = array('name' => 'actions', 'type' => 'basic'); +$config->maps['notification']['dataType'][] = array('name' => 'url', 'type' => 'basic'); +$config->maps['notification']['dataType'][] = array('name' => 'cgid', 'type' => 'basic'); +$config->maps['notification']['dataType'][] = array('name' => 'content', 'type' => 'basic'); +$config->maps['notification']['dataType'][] = array('name' => 'subtitle', 'type' => 'basic'); +$config->maps['notification']['dataType'][] = array('name' => 'contentType', 'type' => 'basic', 'options' => array('text','plain')); +$config->maps['notification']['dataType'][] = array('name' => 'type', 'type' => 'basic', 'options' => array('notification')); +$config->maps['chatMessage'] = array('type' => 'object', 'name' => 'chatMessage'); +$config->maps['chatMessage']['dataType'][] = array('name' => 'gid', 'type' => 'basic'); +$config->maps['chatMessage']['dataType'][] = array('name' => 'cgid', 'type' => 'basic'); +$config->maps['chatMessage']['dataType'][] = array('name' => 'user', 'type' => 'basic'); +$config->maps['chatMessage']['dataType'][] = array('name' => 'date', 'type' => 'basic'); +$config->maps['chatMessage']['dataType'][] = array('name' => 'content', 'type' => 'basic'); +$config->maps['chatMessage']['dataType'][] = array('name' => 'id', 'type' => 'basic'); +$config->maps['chatMessage']['dataType'][] = array('name' => 'index', 'type' => 'basic'); +$config->maps['chatMessage']['dataType'][] = array('name' => 'data', 'type' => 'basic'); +$config->maps['chatMessage']['dataType'][] = array('name' => 'type', 'type' => 'basic', 'options' => array('','normal','broadcast','notification')); +$config->maps['chatMessage']['dataType'][] = array('name' => 'contentType', 'type' => 'basic', 'options' => array('','text','plain','image','file','emoticon','code','object')); +$config->maps['chatMessage']['dataType'][] = array('name' => 'deleted', 'type' => 'basic'); +$config->maps['chatMembers'] = array('type' => 'object', 'name' => 'chatMembers'); +$config->maps['chatMembers']['dataType'][] = array('name' => 'gid', 'type' => 'basic'); +$config->maps['chatMembers']['dataType'][] = array('name' => 'members', 'type' => 'basic'); +$config->maps['chatMemberDetail'] = array('type' => 'object', 'name' => 'chatMemberDetail'); +$config->maps['chatMemberDetail']['dataType'][] = array('name' => 'id', 'type' => 'basic'); +$config->maps['chatMemberDetail']['dataType'][] = array('name' => 'account', 'type' => 'basic'); +$config->maps['chatMemberDetail']['dataType'][] = array('name' => 'join', 'type' => 'basic'); +$config->maps['chatMemberDetail']['dataType'][] = array('name' => 'lastSeen', 'type' => 'basic'); +$config->maps['chatMemberDetail']['dataType'][] = array('name' => 'lastPost', 'type' => 'basic'); +$config->maps['chatMemberDetail']['dataType'][] = array('name' => 'isOwner', 'type' => 'basic'); +$config->maps['chatMemberDetail']['dataType'][] = array('name' => 'isAdmin', 'type' => 'basic'); +$config->maps['chatstar'] = array('type' => 'object', 'name' => 'chatstar'); +$config->maps['chatstar']['dataType'][] = array('name' => 'gid', 'type' => 'basic'); +$config->maps['chatstar']['dataType'][] = array('name' => 'star', 'type' => 'basic'); +$config->maps['chatMessageList'] = array('name' => 'chatMessageList', 'type' => 'list', 'dataType' => &$config->maps['chatMessage']); +$config->maps['sendingChatMessage'] = array('type' => 'object', 'name' => 'sendingChatMessage'); +$config->maps['sendingChatMessage']['dataType'][] = array('name' => 'gid', 'type' => 'basic'); +$config->maps['sendingChatMessage']['dataType'][] = array('name' => 'cgid', 'type' => 'basic'); +$config->maps['sendingChatMessage']['dataType'][] = array('name' => 'user', 'type' => 'basic'); +$config->maps['sendingChatMessage']['dataType'][] = array('name' => 'content', 'type' => 'basic'); +$config->maps['sendingChatMessage']['dataType'][] = array('name' => 'data', 'type' => 'basic'); +$config->maps['sendingChatMessage']['dataType'][] = array('name' => 'type', 'type' => 'basic', 'options' => array('','normal','broadcast','notification')); +$config->maps['sendingChatMessage']['dataType'][] = array('name' => 'contentType', 'type' => 'basic', 'options' => array('','text','plain','image','file','emoticon','code','object')); +$config->maps['sendingChatMessage']['dataType'][] = array('name' => 'date', 'type' => 'basic'); +$config->maps['sendingChatMessage']['dataType'][] = array('name' => 'deleted', 'type' => 'basic'); +$config->maps['sendingChatMessageList'] = array('name' => 'sendingChatMessageList', 'type' => 'list', 'dataType' => &$config->maps['sendingChatMessage']); +$config->maps['basicChat'] = array('type' => 'object', 'name' => 'basicChat'); +$config->maps['basicChat']['dataType'][] = array('name' => 'gid', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'createdDate', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'createdBy', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'ownedBy', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'id', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'name', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'lastActiveTime', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'lastMessage', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'public', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'archiveDate', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'star', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'freeze', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'mute', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'hide', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'editedDate', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'type', 'type' => 'basic', 'options' => array('group','one2one','system','robot')); +$config->maps['basicChat']['dataType'][] = array('name' => 'dismissDate', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'committers', 'type' => 'basic', 'options' => array('','$ADMINS','$ALL')); +$config->maps['basicChat']['dataType'][] = array('name' => 'admins', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'pinnedMessages', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'lastReadMessage', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'mergedDate', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'mergedChats', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'lastReadMessageIndex', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'lastMessageInfo', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'adminInvite', 'type' => 'basic'); +$config->maps['basicChat']['dataType'][] = array('name' => 'avatar', 'type' => 'basic'); +$config->maps['chat'] = $config->maps['basicChat']; +$config->maps['chat']['dataType'][] = array('name' => 'members', 'type' => 'basic'); +$config->maps['basicChatList'] = array('name' => 'basicChatList', 'type' => 'list', 'dataType' => &$config->maps['basicChat']); +$config->maps['chatList'] = array('name' => 'chatList', 'type' => 'list', 'dataType' => &$config->maps['chat']); +$config->maps['basicPack'] = array('type' => 'object', 'name' => 'basicPack'); +$config->maps['basicPack']['dataType'][] = array('name' => 'rid', 'type' => 'basic'); +$config->maps['basicPack']['dataType'][] = array('name' => 'method', 'type' => 'basic', 'options' => array('messagesend','syssessionid','usergetlist','chatgetlist','userlogin','userlogout','userupdate','usersyncsettings','userkickoff','messageretract','messageupdate','chattyping','chatcreate','chatrename','chatinvite','chatkick','chatjoin','chatleave','chatstar','chatunstar','chatmute','chatunmute','chatfreeze','chatunfreeze','chathide','chatarchive','chatdismiss','chatgethistory','chatgetpubliclist','chatsetcategory','chatrenamecategory','chatdeletecategory','chataddadmins','chatremoveadmins','chatsetcommitters','chatsetvisibility','chatsetconfig','chatsearch','chatsetavatar','chatsetlastreadmessage','chatsetlastreadmessagebyindex','syncusers','syncnotifications','syncofflinemessages','extensiongetlist','fileupload','filedownload','usersetdevicetoken','sysgetserverinfo','sysserverstart','ping')); +$config->maps['basicPack']['dataType'][] = array('name' => 'module', 'type' => 'basic', 'options' => array('','im','server','sys','chat','entry','user','extension')); +$config->maps['basicPack']['dataType'][] = array('name' => 'device', 'type' => 'basic', 'options' => array('desktop','mobile')); +$config->maps['requestPack'] = $config->maps['basicPack']; +$config->maps['requestPack']['dataType'][] = array('name' => 'params', 'type' => 'basic'); +$config->maps['requestPack']['dataType'][] = array('name' => 'userID', 'type' => 'basic'); +$config->maps['requestPack']['dataType'][] = array('name' => 'lang', 'type' => 'basic', 'options' => array('zh-cn','zh-tw','en')); +$config->maps['requestPack']['dataType'][] = array('name' => 'version', 'type' => 'basic', 'options' => array('4.0.beta3','4.0')); +$config->maps['responsePack'] = $config->maps['basicPack']; +$config->maps['responsePack']['dataType'][] = array('name' => 'data', 'type' => 'basic'); +$config->maps['responsePack']['dataType'][] = array('name' => 'result', 'type' => 'basic', 'options' => array('success','fail')); +$config->maps['responsePack']['dataType'][] = array('name' => 'message', 'type' => 'basic'); +$config->maps['messageResponsePack'] = $config->maps['responsePack']; +$config->maps['messageResponsePack']['dataType'][] = array('name' => 'code', 'type' => 'basic'); +$config->maps['memberResponsePack'] = $config->maps['responsePack']; +$config->maps['memberResponsePack']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['member']['type'], 'dataType' => &$config->maps['member']['dataType']); +$config->maps['chatResponsePack'] = $config->maps['responsePack']; +$config->maps['chatResponsePack']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['chat']['type'], 'dataType' => &$config->maps['chat']['dataType']); +$config->maps['chatListResponsePack'] = $config->maps['responsePack']; +$config->maps['chatListResponsePack']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['basicChatList']['type'], 'dataType' => &$config->maps['basicChatList']['dataType']); +$config->maps['messageListRequestPack'] = $config->maps['requestPack']; +$config->maps['messageListRequestPack']['dataType'][4] = array('name' => 'params', 'type' => 'list', 'dataType' => &$config->maps['sendingChatMessageList']); +$config->maps['messageListResponsePack'] = $config->maps['responsePack']; +$config->maps['messageListResponsePack']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['chatMessageList']['type'], 'dataType' => &$config->maps['chatMessageList']['dataType']); +$config->maps['sysgetdeptsResponse'] = $config->maps['responsePack']; +$config->maps['sysgetdeptsResponse']['dataType'][] = array('name' => 'roles', 'type' => 'basic'); +$config->maps['userloginResponse'] = $config->maps['memberResponsePack']; +$config->maps['userloginResponse']['name'] = 'userloginResponse'; +$config->maps['userlogoutResponse'] = $config->maps['memberResponsePack']; +$config->maps['userlogoutResponse']['name'] = 'userlogoutResponse'; +$config->maps['usergetlistResponse'] = $config->maps['responsePack']; +$config->maps['usergetlistResponse']['dataType'][4] = array('name' => 'data', 'type' => 'list', 'dataType' => &$config->maps['member']); +$config->maps['chatSearchResult'] = array('type' => 'object', 'name' => 'chatSearchResult'); +$config->maps['chatSearchResult']['dataType'][] = array('name' => 'id', 'type' => 'basic'); +$config->maps['chatSearchResult']['dataType'][] = array('name' => 'gid', 'type' => 'basic'); +$config->maps['chatSearchResult']['dataType'][] = array('name' => 'name', 'type' => 'basic'); +$config->maps['chatSearchResult']['dataType'][] = array('name' => 'public', 'type' => 'basic'); +$config->maps['chatSearchResult']['dataType'][] = array('name' => 'groupOwner', 'type' => 'basic'); +$config->maps['chatSearchResult']['dataType'][] = array('name' => 'createdDate', 'type' => 'basic'); +$config->maps['chatSearchResult']['dataType'][] = array('name' => 'archiveDate', 'type' => 'basic'); +$config->maps['chatSearchResult']['dataType'][] = array('name' => 'lastActiveTime', 'type' => 'basic'); +$config->maps['chatSearchResult']['dataType'][] = array('name' => 'userCount', 'type' => 'basic'); +$config->maps['chatsearchResponse'] = $config->maps['responsePack']; +$config->maps['chatsearchResponse']['dataType'][4] = array('name' => 'data', 'type' => 'list', 'dataType' => &$config->maps['chatSearchResult']); +$config->maps['chatsearchResponse']['dataType'][] = array('name' => 'pager', 'type' => $config->maps['pager']['type'], 'dataType' => &$config->maps['pager']['dataType']); +$config->maps['usergetbasiclistResponse'] = $config->maps['responsePack']; +$config->maps['usergetbasiclistResponse']['dataType'][4] = array('name' => 'data', 'type' => 'list', 'dataType' => &$config->maps['basicMember']); +$config->maps['usergetbasiclistResponse']['dataType'][] = array('name' => 'roles', 'type' => 'basic'); +$config->maps['usergetbasiclistResponse']['dataType'][] = array('name' => 'depts', 'type' => 'basic'); +$config->maps['usergetbasiclistResponse']['dataType'][] = array('name' => 'basic', 'type' => 'basic'); +$config->maps['usergetdeletedRequest'] = array('type' => 'object', 'name' => 'usergetdeletedRequest'); +$config->maps['usergetdeletedResponse'] = $config->maps['usergetlistResponse']; +$config->maps['usergetdeletedResponse']['name'] = 'usergetdeletedResponse'; +$config->maps['usersearchResponse'] = $config->maps['usergetlistResponse']; +$config->maps['usersearchResponse']['dataType'][] = array('name' => 'pager', 'type' => $config->maps['pager']['type'], 'dataType' => &$config->maps['pager']['dataType']); +$config->maps['usersearchidResponse'] = $config->maps['responsePack']; +$config->maps['usersearchidResponse']['dataType'][4] = array('name' => 'data', 'type' => 'basic'); +$config->maps['usersearchidResponse']['dataType'][] = array('name' => 'pager', 'type' => $config->maps['pager']['type'], 'dataType' => &$config->maps['pager']['dataType']); +$config->maps['chatgetlistResponse'] = $config->maps['chatListResponsePack']; +$config->maps['chatgetlistResponse']['name'] = 'chatgetlistResponse'; +$config->maps['chatgetmembersResponse'] = $config->maps['responsePack']; +$config->maps['chatgetmembersResponse']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['chatMembers']['type'], 'dataType' => &$config->maps['chatMembers']['dataType']); +$config->maps['chatgetmemberdetailsResponse'] = $config->maps['responsePack']; +$config->maps['chatgetmemberdetailsResponse']['dataType'][4] = array('name' => 'data', 'type' => 'list', 'dataType' => &$config->maps['chatMemberDetail']); +$config->maps['chatgetmemberdetailsResponse']['dataType'][] = array('name' => 'pager', 'type' => $config->maps['pager']['type'], 'dataType' => &$config->maps['pager']['dataType']); +$config->maps['chatstarResponse'] = $config->maps['responsePack']; +$config->maps['chatstarResponse']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['chatstar']['type'], 'dataType' => &$config->maps['chatstar']['dataType']); +$config->maps['chatgetlastmessageResponse'] = $config->maps['messageListResponsePack']; +$config->maps['chatgetlastmessageResponse']['name'] = 'chatgetlastmessageResponse'; +$config->maps['chatMessageInfoPack'] = array('type' => 'object', 'name' => 'chatMessageInfoPack'); +$config->maps['chatMessageInfoPack']['dataType'][] = array('name' => 'lastMessage', 'type' => 'basic'); +$config->maps['chatMessageInfoPack']['dataType'][] = array('name' => 'messageCount', 'type' => 'basic'); +$config->maps['chatgetmessageinfoResponse'] = $config->maps['responsePack']; +$config->maps['chatgetmessageinfoResponse']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['chatMessageInfoPack']['type'], 'dataType' => &$config->maps['chatMessageInfoPack']['dataType']); +$config->maps['usergetlistbydeptResponse'] = $config->maps['responsePack']; +$config->maps['usergetlistbydeptResponse']['dataType'][] = array('name' => 'pager', 'type' => $config->maps['pager']['type'], 'dataType' => &$config->maps['pager']['dataType']); +$config->maps['messagesendRequest'] = $config->maps['messageListRequestPack']; +$config->maps['messagesendRequest']['name'] = 'messagesendRequest'; +$config->maps['messagesendResponse'] = $config->maps['messageListResponsePack']; +$config->maps['messagesendResponse']['name'] = 'messagesendResponse'; +$config->maps['messageretractRequest'] = $config->maps['messageListRequestPack']; +$config->maps['messageretractRequest']['name'] = 'messageretractRequest'; +$config->maps['messageretractResponse'] = $config->maps['messageListResponsePack']; +$config->maps['messageretractResponse']['name'] = 'messageretractResponse'; +$config->maps['messagegetlistResponse'] = $config->maps['messageListResponsePack']; +$config->maps['messagegetlistResponse']['name'] = 'messagegetlistResponse'; +$config->maps['messagegetlistbyindexesResponse'] = $config->maps['messageListResponsePack']; +$config->maps['messagegetlistbyindexesResponse']['name'] = 'messagegetlistbyindexesResponse'; +$config->maps['messagesyncResponse'] = $config->maps['messageListResponsePack']; +$config->maps['messagesyncResponse']['name'] = 'messagesyncResponse'; +$config->maps['messagesyncidResponse'] = $config->maps['responsePack']; +$config->maps['messagesyncidResponse']['dataType'][4] = array('name' => 'data', 'type' => 'basic'); +$config->maps['messagesyncmissedResponse'] = $config->maps['messageListResponsePack']; +$config->maps['messagesyncmissedResponse']['name'] = 'messagesyncmissedResponse'; +$config->maps['messagesyncsinceofflineResponse'] = $config->maps['messageListResponsePack']; +$config->maps['messagesyncsinceofflineResponse']['name'] = 'messagesyncsinceofflineResponse'; +$config->maps['syncofflinemessagesResponse'] = $config->maps['messageListResponsePack']; +$config->maps['syncofflinemessagesResponse']['name'] = 'syncofflinemessagesResponse'; +$config->maps['syncnotificationsResponse'] = $config->maps['responsePack']; +$config->maps['syncnotificationsResponse']['dataType'][4] = array('name' => 'data', 'type' => 'list', 'dataType' => &$config->maps['notification']); +$config->maps['userupdateRequest'] = $config->maps['requestPack']; +$config->maps['userupdateRequest']['dataType'][4] = array('name' => 'params', 'type' => 'list', 'dataType' => &$config->maps['userUpdateData']); +$config->maps['chatcreateResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatcreateResponse']['name'] = 'chatcreateResponse'; +$config->maps['chatjoinResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatjoinResponse']['name'] = 'chatjoinResponse'; +$config->maps['chatleaveResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatleaveResponse']['name'] = 'chatleaveResponse'; +$config->maps['chatrenameResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatrenameResponse']['name'] = 'chatrenameResponse'; +$config->maps['chatinviteResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatinviteResponse']['name'] = 'chatinviteResponse'; +$config->maps['chatkickResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatkickResponse']['name'] = 'chatkickResponse'; +$config->maps['chatchangeownershipResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatchangeownershipResponse']['name'] = 'chatchangeownershipResponse'; +$config->maps['chatsetvisibilityResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatsetvisibilityResponse']['name'] = 'chatsetvisibilityResponse'; +$config->maps['chatsetconfigResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatsetconfigResponse']['name'] = 'chatsetconfigResponse'; +$config->maps['chataddadminsResponse'] = $config->maps['chatResponsePack']; +$config->maps['chataddadminsResponse']['name'] = 'chataddadminsResponse'; +$config->maps['chatremoveadminsResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatremoveadminsResponse']['name'] = 'chatremoveadminsResponse'; +$config->maps['chatsetcommittersResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatsetcommittersResponse']['name'] = 'chatsetcommittersResponse'; +$config->maps['chatarchiveResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatarchiveResponse']['name'] = 'chatarchiveResponse'; +$config->maps['chatdismissResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatdismissResponse']['name'] = 'chatdismissResponse'; +$config->maps['chatsetavatarResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatsetavatarResponse']['name'] = 'chatsetavatarResponse'; +$config->maps['chatgetbygidResponse'] = $config->maps['chatResponsePack']; +$config->maps['chatgetbygidResponse']['name'] = 'chatgetbygidResponse'; +$config->maps['chatgethistoryResponse'] = $config->maps['messageListResponsePack']; +$config->maps['chatgethistoryResponse']['dataType'][] = array('name' => 'pager', 'type' => $config->maps['pager']['type'], 'dataType' => &$config->maps['pager']['dataType']); +$config->maps['chatgetpubliclistResponse'] = $config->maps['chatListResponsePack']; +$config->maps['chatgetpubliclistResponse']['name'] = 'chatgetpubliclistResponse'; +$config->maps['extensiongetlistResponse'] = $config->maps['responsePack']; +$config->maps['extensiongetlistResponse']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['extensionList']['type'], 'dataType' => &$config->maps['extensionList']['dataType']); +$config->maps['entry/visitRequest'] = $config->maps['requestPack']; +$config->maps['entry/visitRequest']['dataType'][4] = array('name' => 'params', 'type' => 'basic'); +$config->maps['errormessageResponse'] = $config->maps['messageResponsePack']; +$config->maps['errormessageResponse']['name'] = 'errormessageResponse'; +$config->maps['conferenceAction'] = array('type' => 'object', 'name' => 'conferenceAction'); +$config->maps['conferenceAction']['dataType'][] = array('name' => 'room', 'type' => 'basic'); +$config->maps['conferenceAction']['dataType'][] = array('name' => 'type', 'type' => 'basic', 'options' => array('create','join','close','leave','invite','publish')); +$config->maps['conferenceAction']['dataType'][] = array('name' => 'invitee', 'type' => 'basic'); +$config->maps['conferenceAction']['dataType'][] = array('name' => 'participants', 'type' => 'basic'); +$config->maps['conferenceAction']['dataType'][] = array('name' => 'date', 'type' => 'basic'); +$config->maps['conferenceAction']['dataType'][] = array('name' => 'user', 'type' => 'basic'); +$config->maps['conferenceAction']['dataType'][] = array('name' => 'device', 'type' => 'basic'); +$config->maps['conferenceAction']['dataType'][] = array('name' => 'data', 'type' => 'basic'); +$config->maps['conferenceAction']['dataType'][] = array('name' => 'actions', 'type' => 'list', 'dataType' => &$config->maps['conferenceAction']); +$config->maps['conferenceAction']['dataType'][] = array('name' => 'number', 'type' => 'basic'); +$config->maps['conference'] = array('type' => 'object', 'name' => 'conference'); +$config->maps['conference']['dataType'][] = array('name' => 'cgid', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'room', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'status', 'type' => 'basic', 'options' => array('closed','open','notStarted')); +$config->maps['conference']['dataType'][] = array('name' => 'openedBy', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'openedDate', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'participants', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'invitee', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'actions', 'type' => 'list', 'dataType' => &$config->maps['conferenceAction']); +$config->maps['conference']['dataType'][] = array('name' => 'topic', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'startTime', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'endTime', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'password', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'type', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'number', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'subscribers', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'note', 'type' => 'basic'); +$config->maps['conference']['dataType'][] = array('name' => 'reminderTime', 'type' => 'basic'); +$config->maps['conferencecreateResponse'] = $config->maps['responsePack']; +$config->maps['conferencecreateResponse']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['conference']['type'], 'dataType' => &$config->maps['conference']['dataType']); +$config->maps['conferencecreatedetachedResponse'] = $config->maps['responsePack']; +$config->maps['conferencecreatedetachedResponse']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['conference']['type'], 'dataType' => &$config->maps['conference']['dataType']); +$config->maps['conferenceactionResponse'] = $config->maps['responsePack']; +$config->maps['conferenceactionResponse']['dataType'][4] = array('name' => 'data', 'type' => $config->maps['conferenceAction']['type'], 'dataType' => &$config->maps['conferenceAction']['dataType']); +$config->maps['conferenceinviteResponse'] = $config->maps['conferenceactionResponse']; +$config->maps['conferenceinviteResponse']['name'] = 'conferenceinviteResponse'; +$config->maps['conferencejoinResponse'] = $config->maps['conferenceactionResponse']; +$config->maps['conferencejoinResponse']['name'] = 'conferencejoinResponse'; +$config->maps['conferenceleaveResponse'] = $config->maps['conferenceactionResponse']; +$config->maps['conferenceleaveResponse']['name'] = 'conferenceleaveResponse'; +$config->maps['conferencecloseResponse'] = $config->maps['conferenceactionResponse']; +$config->maps['conferencecloseResponse']['name'] = 'conferencecloseResponse'; +$config->maps['conferencesyncactionResponse'] = $config->maps['conferenceactionResponse']; +$config->maps['conferencesyncactionResponse']['name'] = 'conferencesyncactionResponse'; +$config->maps['syncconferencesResponse'] = $config->maps['responsePack']; +$config->maps['syncconferencesResponse']['dataType'][4] = array('name' => 'data', 'type' => 'list', 'dataType' => &$config->maps['conference']); +$config->maps['conferenceGetByNumberResponse'] = $config->maps['responsePack']; +$config->maps['conferenceGetByNumberResponse']['dataType'][4] = array('name' => 'data', 'type' => 'list', 'dataType' => &$config->maps['conference']); +$config->maps['conferenceGetByConditionResponse'] = $config->maps['responsePack']; +$config->maps['conferenceGetByConditionResponse']['dataType'][4] = array('name' => 'data', 'type' => 'list', 'dataType' => &$config->maps['conference']); +$config->maps['conferenceGetByConditionResponse']['dataType'][] = array('name' => 'pager', 'type' => $config->maps['pager']['type'], 'dataType' => &$config->maps['pager']['dataType']); +$config->maps['usersubscribeRequest'] = array('type' => 'object', 'name' => 'usersubscribeRequest'); +$config->maps['usersubscribeRequest']['dataType'][] = array('name' => 'rid', 'type' => 'basic'); +$config->maps['usersubscribeRequest']['dataType'][] = array('name' => 'type', 'type' => 'basic'); +$config->maps['usersubscribeRequest']['dataType'][] = array('name' => 'objects', 'type' => 'basic'); +$config->maps['usersubscribeRequest']['dataType'][] = array('name' => 'userID', 'type' => 'basic'); diff --git a/config/ext/index.html b/config/ext/index.html new file mode 100755 index 0000000..e69de29 diff --git a/config/filter.php b/config/filter.php new file mode 100755 index 0000000..f1216d3 --- /dev/null +++ b/config/filter.php @@ -0,0 +1,85 @@ +rules = new stdclass(); +$filter->default = new stdclass(); +$filter->block = new stdclass(); +$filter->entry = new stdclass(); +$filter->file = new stdclass(); +$filter->sso = new stdclass(); +$filter->upgrade = new stdclass(); +$filter->user = new stdclass(); + +$filter->rules->any = '/./'; +$filter->rules->base64 = '/^[a-zA-Z0-9\+\/\=]+$/'; +$filter->rules->browseType = '/^by[a-z]+$/'; +$filter->rules->callback = '/^[a-zA-Z0-9=\&\%\.\/\-\:\?]+$/'; +$filter->rules->character = '/^[a-zA-Z_\-]+$/'; +$filter->rules->checked = '/^[0-9,]+$/'; +$filter->rules->common = '/^[a-zA-Z0-9_]+$/'; +$filter->rules->idList = '/^[0-9\|]+$/'; +$filter->rules->key = '/^[a-z0-9]{32}+$/'; +$filter->rules->lang = '/^[a-zA-Z_\-]+$/'; +$filter->rules->md5 = '/^[a-z0-9]{32}$/'; +$filter->rules->number = '/^[0-9]+$/'; +$filter->rules->orderBy = '/^\w+_(desc|asc)$/i'; +$filter->rules->paramName = '/^[a-zA-Z0-9_\.]+$/'; +$filter->rules->paramValue = '/^[a-zA-Z0-9=_,:\-\?\&`#+\^\/\.%\|\x7f-\xff]+$/'; +$filter->rules->path = '/(^//.|^/|^[a-zA-Z])?:?/.+(/$)?/'; +$filter->rules->word = '/^\w+$/'; + +$filter->default->moduleName = 'code'; +$filter->default->methodName = 'code'; +$filter->default->paramName = 'reg::paramName'; +$filter->default->paramValue = 'reg::paramValue'; + +$filter->default->get['onlybody'] = 'equal::yes'; +$filter->default->get['lang'] = 'reg::lang'; +$filter->default->get['HTTP_X_REQUESTED_WITH'] = 'equal::XMLHttpRequest'; + +$filter->default->cookie['lang'] = 'reg::lang'; +$filter->default->cookie['theme'] = 'reg::common'; +$filter->default->cookie['device'] = 'reg::common'; +$filter->default->cookie['ra'] = 'reg::common'; +$filter->default->cookie['rp'] = 'reg::common'; +$filter->default->cookie['keepLogin'] = 'equal::on'; + +$filter->block->default = new stdclass(); +$filter->block->default->get['mode'] = 'reg::character'; +$filter->block->default->get['blockid'] = 'reg::character'; +$filter->block->default->get['hash'] = 'reg::md5'; +$filter->block->default->get['sso'] = 'reg::word'; +$filter->block->default->get['app'] = 'reg::character'; +$filter->block->default->get['param'] = 'reg::base64'; + +$filter->entry->depts = new stdclass(); +$filter->entry->users = new stdclass(); +$filter->entry->visit = new stdclass(); +$filter->entry->depts->get['key'] = 'reg::key'; +$filter->entry->users->get['key'] = 'reg::key'; +$filter->entry->visit->get['referer'] = 'reg::base64'; + +$filter->file->ajaxueditorupload = new stdclass(); +$filter->file->filemanager = new stdclass(); +$filter->file->download = new stdclass(); +$filter->file->ajaxueditorupload->get['action'] = 'equal::config'; +$filter->file->filemanager->get['path'] = 'reg::path'; +$filter->file->filemanager->get['order'] = 'reg::common'; +$filter->file->download->cookie[$config->sessionVar] = 'reg::common'; + +$filter->sso->check = new stdclass(); +$filter->sso->leaveusers = new stdclass(); +$filter->sso->check->get['callback'] = 'reg::callback'; +$filter->sso->check->get['referer'] = 'reg::base64'; +$filter->sso->check->get['token'] = 'reg::key'; +$filter->sso->check->get['auth'] = 'reg::key'; +$filter->sso->check->get['userIP'] = 'ip'; +$filter->sso->leaveusers->get['code'] = 'code'; +$filter->sso->leaveusers->get['key'] = 'reg::key'; + +$filter->upgrade->upgradelicense = new stdclass(); +$filter->upgrade->upgradelicense->get['agree'] = 'equal::true'; + +$filter->user->admin = new stdclass(); +$filter->user->login = new stdclass(); +$filter->user->admin->paramValue['query'] = 'reg::any'; +$filter->user->login->get['lang'] = 'reg::lang'; diff --git a/config/index.html b/config/index.html new file mode 100755 index 0000000..e69de29 diff --git a/config/license/callback.php b/config/license/callback.php new file mode 100755 index 0000000..88e257f --- /dev/null +++ b/config/license/callback.php @@ -0,0 +1,52 @@ +errCode = $errCode; + $licenseData->errType = $errType; + $licenseData->company = $company; + $licenseData->expireDate = $expireDate; + $licenseData->ip = $ip; + $licenseData->mac = $mac; + $licenseData->users = $users; + $licenseData->mobile = $mobile; + $licenseData->email = $email; + $licenseData->qq = $qq; + $licenseData->version = $version; + $licenseData->params = $params; + + include '../www/license.php'; + + exit; +} diff --git a/config/license/index.html b/config/license/index.html new file mode 100755 index 0000000..e69de29 diff --git a/config/license/xuancallback.php b/config/license/xuancallback.php new file mode 100755 index 0000000..07f1a6a --- /dev/null +++ b/config/license/xuancallback.php @@ -0,0 +1,53 @@ +errCode = $errCode; + $licenseData->errType = $errType; + $licenseData->company = $company; + $licenseData->expireDate = $expireDate; + $licenseData->ip = $ip; + $licenseData->mac = $mac; + $licenseData->users = $users; + $licenseData->mobile = $mobile; + $licenseData->email = $email; + $licenseData->qq = $qq; + $licenseData->version = $version; + $licenseData->params = $params; + + include dirname(dirname(dirname(__FILE__))) . '/www/license.php'; + + exit; +} + diff --git a/config/license/xxb.php b/config/license/xxb.php new file mode 100755 index 0000000..b6660ea --- /dev/null +++ b/config/license/xxb.php @@ -0,0 +1,20 @@ + + + +------ LICENSE FILE DATA ------- +345VU301aUrT3tBRlugg7rCijFUhK3ky +yuwt2PAkrw5WTN2SagbBJZ6glZSVZLe+ +QO0GeudOwxqbSclY7YFxLViARVto7sQl +ESkrbQg+DxC97FWUKxjI/BBsJPo6IFtA +YPOadkJXTfHy1urXKzG6MMAy6KmCGV7i +kjnjiiOIn/qGrhe8LdV7jBoM47HeE91a +JAosU8PEU6vmWbSEwC7P5z+eXufUSi+g +3wrbn2NX/5kj+nnD53EQvFYs+MrVKXSU +u0gXomFJMCHJnY60aHGiDNYh7gl4ayFe +z8YJPXiRdIQM5rbhS8XYAUkjdXlWYTbi +y4cK3lmoOIsZKME40IyeNfojc/QW5b7G +OfxT7cmQ0O6kP4Awso2uZuZNdLVeU3gl +3x7UeG5BbtTnBv2jA0umAh+VQEZAVRX2 +gCj8uy+tQAnPI5iKBLLn7wuRWcqhdgE5 +/Tlvy6S0BoD0XoEPoaZFC8yVy206YLf= +-------------------------------- diff --git a/config/rights.php b/config/rights.php new file mode 100755 index 0000000..5eb5f58 --- /dev/null +++ b/config/rights.php @@ -0,0 +1,70 @@ + + * @package config + * @version $Id$ + * @link https://xuanim.com + */ +/* Init the rights. */ +$config->rights = new stdclass(); + +$config->rights->guest = array(); + +$config->rights->member['index']['index'] = 'index'; +$config->rights->member['entry']['visit'] = 'visit'; +$config->rights->member['entry']['blocks'] = 'blocks'; +$config->rights->member['entry']['setblock'] = 'setblock'; +$config->rights->member['entry']['printblock'] = 'printblock'; +$config->rights->member['entry']['customsort'] = 'customsort'; +$config->rights->member['entry']['updateentrymenu'] = 'updateentrymenu'; + +$config->rights->member['user']['profile'] = 'profile'; +$config->rights->member['user']['thread'] = 'thread'; +$config->rights->member['user']['reply'] = 'reply'; +$config->rights->member['user']['message'] = 'message'; +$config->rights->member['user']['setreferer'] = 'setreferer'; +$config->rights->member['user']['changepassword'] = 'changepassword'; +$config->rights->member['user']['vcard'] = 'vcard'; +$config->rights->member['user']['uploadavatar'] = 'uploadavatar'; +$config->rights->member['file']['uploadchatavatar'] = 'uploadchatavatar'; + +$config->rights->member['user']['cropavatar'] = 'cropavatar'; +$config->rights->member['user']['changeavatar'] = 'changeavatar'; +$config->rights->member['user']['editself'] = 'editself'; + +$config->rights->member['search']['buildform'] = 'buildform'; +$config->rights->member['search']['buildquery'] = 'buildquery'; +$config->rights->member['search']['savequery'] = 'savequery'; +$config->rights->member['search']['deletequery'] = 'deletequery'; + +$config->rights->member['misc']['qrcode'] = 'qrcode'; +$config->rights->member['misc']['about'] = 'about'; +$config->rights->member['tree']['redirect'] = 'redirect'; + +$config->rights->member['action']['createrecord'] = 'createrecord'; +$config->rights->member['action']['editrecord'] = 'editrecord'; +$config->rights->member['action']['history'] = 'history'; +$config->rights->member['action']['editcomment'] = 'editcomment'; +$config->rights->member['action']['read'] = 'read'; + +$config->rights->member['file']['buildform'] = 'buildform'; +$config->rights->member['file']['buildlist'] = 'buildlist'; +$config->rights->member['file']['printfiles'] = 'printfiles'; +$config->rights->member['file']['ajaxupload'] = 'ajaxupload'; +$config->rights->member['file']['browse'] = 'browse'; +$config->rights->member['file']['senddownheader'] = 'senddownheader'; +$config->rights->member['file']['ajaxpasteimage'] = 'ajaxpasteimage'; +$config->rights->member['file']['filemanager'] = 'filemanager'; +$config->rights->member['file']['sort'] = 'sort'; + +$config->rights->member['client']['downloadclient'] = 'downloadclient'; +$config->rights->member['client']['ajaxgetclientpackage'] = 'ajaxgetclientpackage'; +$config->rights->member['client']['ajaxgetpackagesize'] = 'ajaxgetpackagesize'; +$config->rights->member['client']['ajaxsetclientconfig'] = 'ajaxsetclientconfig'; + +$config->rights->member['device']['browse'] = 'browse'; +$config->rights->member['device']['remove'] = 'remove'; diff --git a/config/xxb.php b/config/xxb.php new file mode 100755 index 0000000..4ce6bfa --- /dev/null +++ b/config/xxb.php @@ -0,0 +1,57 @@ + + * @package config + * @version $Id: config.php 4211 2017-06-20 14:30:10Z pengjx $ + * @link https://xuanim.com + */ +$config->product = 'xxb'; +$config->version = '7.2.1'; // 喧喧的版本。 The version of XXB. Don't change it. +$config->buildDate = "build at Sun Jul 9 00:49:31 PDT 2023"; + +/* 基本设置。Rangerteam basic settings. */ +$config->sessionVar = 'xid'; // 请求类型为GET:session变量名。 requestType=GET: the session var name. +$config->cookiePath = '/'; // cookies路径分隔符。 The path of cookies. +$config->checkVersion = true; // 是否自动检测新版本。 Auto check for new version or not. +$config->timeout = 30 * 1000; // ajax请求超时时间,单位毫秒。 The timeout of ajax request. +$config->pingInterval = 60; // 心跳请求发送间隔,单位秒。 The interval of ping request, seconds. +$config->customerLimit = 50; // 页面加载时载入客户的最大数量。 The maximum number of customers that are loaded when the page loads. +$config->searchLimit = 50; // 使用ajax搜索客户时页面显示的最大条目数量。The maximum number of customers displays in search customer page. + +/* Supported charsets. */ +$config->charsets['zh-cn']['utf-8'] = 'UTF-8'; +$config->charsets['zh-cn']['gbk'] = 'GBK'; +$config->charsets['zh-tw']['utf-8'] = 'UTF-8'; +$config->charsets['zh-tw']['big5'] = 'BIG5'; +$config->charsets['en']['utf-8'] = 'UTF-8'; + +/* IP white list settings.*/ +$config->ipWhiteList = '*'; +$config->allowedTags = '