www.gusucode.com > 高端教育培训门户+论坛网站源码程序 > 整站安装/整站源码/source/admincp/admincp_cloud.php
<?php /** * [Discuz!] (C)2001-2099 Comsenz Inc. * This is NOT a freeware, use is subject to license terms * * $Id: admincp_cloud.php 33808 2013-08-15 11:22:45Z nemohou $ */ if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) { exit('Access Denied'); } @set_time_limit(600); cpheader(); if(empty($admincp) || !is_object($admincp)) { exit('Access Denied'); } $adminscript = ADMINSCRIPT; $cloudDomain = 'http://cp.discuz.qq.com'; $utilService = Cloud::loadClass('Service_Util'); $appService = Cloud::loadClass('Service_App'); $cloudClient = Cloud::loadClass('Service_Client_Cloud'); try { $cloudstatus = $appService->checkCloudStatus(); } catch (Cloud_Service_AppException $e) { if($operation == 'doctor' || $operation == 'siteinfo') { } else { cpmsg_error('cloud_status_error'); } } $forceOpen = !empty($_GET['force_open']) ? true : false; if(!$operation || $operation == 'open') { if($cloudstatus == 'cloud' && !$forceOpen) { cpmsg('cloud_turnto_applist', '', 'succeed', array(), '<p class="marginbot"><a href="###" onclick="top.location = \''.ADMINSCRIPT.'?frames=yes&action=cloud&operation=applist\'" class="lightlink">'.cplang('message_redirect').'</a></p><script type="text/JavaScript">setTimeout("top.location = \''.ADMINSCRIPT.'?frames=yes&action=cloud&operation=applist\'", 3000);</script>'); } else { if ($_GET['getConfirmInfo']) { ajaxshowheader(); ajaxshowfooter(); } $step = max(1, intval($_GET['step'])); $type = $cloudstatus == 'upgrade' ? 'upgrade' : 'open'; if($step == 1) { $utilService->generateUniqueId(); if($cloudstatus == 'upgrade' || ($cloudstatus == 'cloud' && $forceOpen)) { shownav('navcloud', 'menu_cloud_upgrade'); $itemtitle = cplang('menu_cloud_upgrade'); } else { shownav('navcloud', 'menu_cloud_open'); $itemtitle = cplang('menu_cloud_open'); } echo ' <div class="itemtitle"> <h3>'.$itemtitle.'</h3> <ul style="margin-right: 10px;" class="tab1"></ul> <ul class="stepstat" id="nav_steps"></ul> <ul class="tab1"></ul> </div> <div id="loading"> <div id="loadinginner" style="display: block; padding: 100px 0; text-align: center; color: #999;"> <img src="'.$_G['style']['imgdir'].'/loading.gif" alt="loading..." style="vertical-align: middle;" /> '.$lang['cloud_page_loading'].' </div> </div> <div style="display:none;" id="title"></div>'; showformheader('', 'onsubmit="return submitForm();"'); if($cloudstatus == 'upgrade' || ($cloudstatus == 'cloud' && $forceOpen)) { echo '<div style="margin-top:10px; color: red; padding-left: 10px;" id="manyou_update_tips"></div>'; } showtableheader('', '', 'id="mainArea" style="display:none;"'); echo ' <tr><td id="" style="border:none;"><div id="msg" class="tipsblock"></div></td></tr> <tr><td style="border-top:none;"><br /> <label><input onclick="if(this.checked) {$(\'submit_submit\').disabled=false; $(\'submit_submit\').style.color=\'#000\';} else {$(\'submit_submit\').disabled=true; $(\'submit_submit\').style.color=\'#aaa\';}" id="agreeProtocal" class="checkbox" type="checkbox" checked="checked" value="1" />' . cplang('cloud_agree_protocal') . '</label><a id="protocal_url" href="javascript:;" target="_blank">' . cplang('read_protocal') . '</a> </td> </tr>'; showsubmit('submit', 'cloud_will_open', '', '<script type="text/javascript">$(\'submit_submit\').disabled = true; $(\'submit_submit\').style.color = \'#aaa\';</script><span id="cloud_doctor_site_test_result_div"><img src="' . $_G['style']['imgdir'] . '/loading.gif" class="vm"> '.cplang('cloud_waiting').'</span>'); showtablefooter(); showformfooter(); echo ' <div id="siteInfo" style="display:none;;"> <h3 class="flb"><em>'.cplang('message_title').'</em><span><a href="javascript:;" class="flbc" onclick="hideWindow(\'open_cloud\');" title="'.cplang('close').'">'.cplang('close').'</a></span></h3>'; showformheader('cloud&operation=open&step=2'.(($cloudstatus == 'cloud' && $forceOpen) ? '&force_open=1' : ''), ''); echo ' <div class="c"> <div class="tplw"> <p class="mbn tahfx"> <strong>'.cplang('jump_to_cloud').'</strong><input type="hidden" id="cloud_api_ip" name="cloud_api_ip" value="" /> </p> </div> </div> <div class="o pns"><button type="submit" class="pn pnc" id="btn_1"><span>'.cplang('continue').'</span></button></div>'; showformfooter(); echo "</div>"; echo <<<EOT <link rel="stylesheet" type="text/css" href="static/image/admincp/cloud/cloud.css" /> <script type="text/javascript" src="static/image/admincp/cloud/cloud.js"></script> <script type="text/JavaScript"> var cloudStatus = "$cloudstatus"; var disallowfloat = 'siteInfo'; var cloudApiIp = ''; var dialogHtml = ''; var getMsg = false; var millisec = 10 * 1000; //10秒 var expirationText = '{$lang['cloud_time_out']}'; expirationTimeout = setTimeout("expiration()", millisec); </script> EOT; $introUrl = $cloudDomain.'/cloud/introduction'; if($cloudstatus == 'upgrade') { $params = array('type' => 'upgrade'); if ($_G['setting']['my_app_status']) { $params['apps']['manyou'] = array('status' => true); } if (isset($_G['setting']['my_search_status'])) { $params['apps']['search'] = array('status' => !empty($_G['setting']['my_search_status']) ? true : false); $oldSiteId = empty($_G['setting']['my_siteid_old'])?'':$_G['setting']['my_siteid_old']; $oldSitekeySign = empty($_G['setting']['my_sitekey_sign_old'])?'':$_G['setting']['my_sitekey_sign_old']; if($oldSiteId && $oldSiteId != $_G['setting']['my_siteid'] && $oldSitekeySign) { $params['apps']['search']['oldSiteId'] = $oldSiteId; $params['apps']['search']['searchSig'] = $oldSitekeySign; } } if (isset($_G['setting']['connect'])) { $params['apps']['connect'] = array('status' => !empty($_G['setting']['connect']['allow']) ? true : false); $oldSiteId = empty($_G['setting']['connectsiteid'])?'':$_G['setting']['connectsiteid']; $oldSitekey = empty($_G['setting']['connectsitekey'])?'':$_G['setting']['connectsitekey']; if($oldSiteId && $oldSiteId != $_G['setting']['my_siteid'] && $oldSitekey) { $params['apps']['connect']['oldSiteId'] = $oldSiteId; $params['apps']['connect']['connectSig'] = substr(md5(substr(md5($oldSiteId.'|'.$oldSitekey), 0, 16)), 16, 16); } } $params['ADTAG'] = 'CP.DISCUZ.INTRODUCTION'; $signUrl = $utilService->generateSiteSignUrl($params); $introUrl .= '?'.$signUrl; } echo '<script type="text/JavaScript" charset="UTF-8" src="'.$introUrl.'"></script>'; $doctorService = Cloud::loadClass('Service_Doctor'); $doctorService->showCloudDoctorJS('open'); } elseif($step == 2) { $statsUrl = $cloudDomain . '/cloud/stats/registerclick'; echo '<script type="text/JavaScript" charset="UTF-8" src="'.$statsUrl.'"></script>'; try { if($_G['setting']['my_siteid'] && $_G['setting']['my_sitekey']) { if($_G['setting']['my_app_status']) { $manyouClient = Cloud::loadClass('Service_Client_Manyou'); $manyouClient->sync(); } $cloudClient->upgradeManyou(trim($_GET['cloud_api_ip'])); } else { $cloudClient->registerCloud(trim($_GET['cloud_api_ip'])); } } catch (Cloud_Service_Client_RestfulException $exception) { switch ($exception->getCode()) { case 1: cpmsg('cloud_unknown_dns', '', 'error'); case 2: $msgValues = array( 'errorMessage' => $exception->getMessage(), 'errorCode' => $exception->getCode() ); cpmsg('cloud_network_busy', '', 'error', $msgValues); default: $msgValues = array(); $errorMessage = $exception->getMessage(); $checkUrl = preg_match('/<a.+?>.+?<\/a>/i', $errorMessage, $results); if($checkUrl) { foreach($results as $key => $result) { $errorMessage = str_replace($result, '{replace_' . $key . '}', $errorMessage); $msgValues = array('replace_' . $key => $result); } } cpmsg($errorMessage, '', 'error', $msgValues); } } $params['ADTAG'] = 'CP.CLOUD.BIND.INDEX'; $bindUrl = $cloudDomain . '/bind/index?' . $utilService->generateSiteSignUrl($params); echo '<script>top.location="' . $bindUrl . '";</script>'; } } } elseif($operation == 'applist') { if($cloudstatus != 'cloud') { cpmsg('cloud_open_first', '', 'succeed', array(), '<p class="marginbot"><a href="###" onclick="top.location = \''.ADMINSCRIPT.'?frames=yes&action=plugins\'" class="lightlink">'.cplang('message_redirect').'</a></p><script type="text/JavaScript">setTimeout("top.location = \''.ADMINSCRIPT.'?frames=yes&action=plugins\'", 3000);</script>'); } $signParams = array('refer' => $_G['siteurl'], 'ADTAG' => 'CP.DISCUZ.APPLIST'); $signUrl = $utilService->generateSiteSignUrl($signParams); $utilService->redirect($cloudDomain . '/cloud/appList/?' . $signUrl); } elseif(in_array($operation, array('siteinfo', 'doctor'))) { require libfile("cloud/$operation", 'admincp'); } elseif(in_array($operation, array('manyou', 'connect', 'security', 'stats', 'search', 'smilies', 'qqgroup', 'union', 'storage'))) { if($cloudstatus != 'cloud') { cpmsg('cloud_open_first', '', 'succeed', array(), '<p class="marginbot"><a href="###" onclick="top.location = \''.ADMINSCRIPT.'?frames=yes&action=plugins\'" class="lightlink">'.cplang('message_redirect').'</a></p><script type="text/JavaScript">setTimeout("top.location = \''.ADMINSCRIPT.'?frames=yes&action=plugins\'", 3000);</script>'); } if($operation != 'security') { $apps = $appService->getCloudApps(); if(empty($apps) || empty($apps[$operation]) || $apps[$operation]['status'] == 'close') { cpmsg('cloud_application_close', 'action=plugins', 'error'); } if($apps[$operation]['status'] == 'disable') { cpmsg('cloud_application_disable', 'action=plugins', 'error'); } } require libfile("cloud/$operation", 'admincp'); } else { exit('Access Denied'); }