123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- <?php
- /**
- * [Discuz!] (C)2001-2099 Comsenz Inc.
- * This is NOT a freeware, use is subject to license terms
- *
- * $Id: Cloud.php 29177 2012-03-28 05:56:17Z yexinhao $
- */
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- class Cloud_Service_Server_Cloud extends Cloud_Service_Server_Restful {
- protected static $_instance;
- public static function getInstance() {
- if (!(self::$_instance instanceof self)) {
- self::$_instance = new self();
- }
- return self::$_instance;
- }
- public function onCloudGetApps($appName = '') {
- $appService = Cloud::loadClass('Service_App');
- $utilService = Cloud::loadClass('Service_Util');
- $apps = $appService->getCloudApps(false);
- if ($appName) {
- $apps = array($appName => $apps[$appName]);
- }
- $apps['apiVersion'] = $utilService->getApiVersion();
- $apps['siteInfo'] = $this->_getBaseInfo();
- return $apps;
- }
- public function onCloudSetApps($apps) {
- if (!is_array($apps)) {
- return false;
- }
- $appService = Cloud::loadClass('Service_App');
- $utilService = Cloud::loadClass('Service_Util');
- $res = array();
- $res['apiVersion'] = $utilService->getApiVersion();
- foreach ($apps as $appName => $status) {
- $res[$appName] = $appService->setCloudAppStatus($appName, $status, false, false);
- }
- try {
- require_once libfile('function/cache');
- updatecache(array('plugin', 'setting', 'styles'));
- cleartemplatecache();
- } catch (Exception $e) {
- }
- $res['siteInfo'] = $this->_getBaseInfo();
- return $res;
- }
- public function onCloudOpenCloud() {
- $appService = Cloud::loadClass('Service_App');
- $utilService = Cloud::loadClass('Service_Util');
- $this->_openCloud();
- $res = array();
- $res['status'] = true;
- $res['siteInfo'] = $this->_getBaseInfo();
- return $res;
- }
- protected function _openCloud() {
- require_once libfile('function/cache');
- $result = C::t('common_setting')->update('cloud_status', 1);
- try {
- C::t('common_setting')->delete(array('connectsiteid', 'connectsitekey', 'my_siteid_old', 'my_sitekey_sign_old'));
- } catch (Exception $e) {
- }
- updatecache('setting');
- return true;
- }
- protected function _getBaseInfo() {
- global $_G;
- $info = array();
- loadcache(array('userstats', 'historyposts'));
- $indexData = memory('get', 'forum_index_page_1');
- if(is_array($indexData) && $indexData) {
- $indexData = array();
- $info['threads'] = $indexData['threads'] ? $indexData['threads'] : 0;
- $info['todayPosts'] = $indexData['todayposts'] ? $indexData['todayposts'] : 0;
- $info['allPosts'] = $indexData['posts'] ? $indexData['posts'] : 0;
- } else {
- $threads = $posts = $todayposts = 0;
- $query = C::t('forum_forum')->fetch_all_by_status(1, 0);
- foreach($query as $forum) {
- if($forum['type'] != 'group') {
- $threads += $forum['threads'];
- $posts += $forum['posts'];
- $todayposts += $forum['todayposts'];
- }
- }
- $info['threads'] = $threads ? $threads : 0;
- $info['allPosts'] = $posts ? $posts : 0;
- $info['todayPosts'] = $todayposts ? $todayposts : 0;
- }
- $info['members'] = $_G['cache']['userstats']['totalmembers'] ? intval($_G['cache']['userstats']['totalmembers']) : 0;
- $postdata = $_G['cache']['historyposts'] ? explode("\t", $_G['cache']['historyposts']) : array(0,0);
- $info['yesterdayPosts'] = intval($postdata[0]);
- return $info;
- }
- public function onCloudGetStats() {
- global $_G;
- $info = array();
- $tableprelen = strlen(C::t('common_setting')->get_tablepre());
- $table = array(
- 'forum_thread' => 'threads',
- 'forum_post' => 'allPosts',
- 'common_member' => 'members'
- );
- foreach(C::t('common_setting')->fetch_all_table_status() as $row) {
- $tablename = substr($row['Name'], $tableprelen);
- if(!isset($table[$tablename])) {
- continue;
- }
- $info[$table[$tablename]] = $row['Rows'];
- }
- loadcache(array('historyposts'));
- $postdata = $_G['cache']['historyposts'] ? explode("\t", $_G['cache']['historyposts']) : array(0,0);
- $info['yesterdayPosts'] = intval($postdata[0]);
- $postnum = 0;
- $postrow = 0;
- $avg_posts = C::t('common_stat')->fetch_post_avg();
- $info['avgPosts'] = intval($avg_posts);
- $info['statsCode'] = $_G['setting']['statcode'];
- return $info;
- }
- }
|