- <?php
 
 - /**
 
 -  * 用于DISCUZ X站长注册的工具
 
 -  *
 
 -  * $Id: discuzx_utility.php 12116 2012-03-12 07:07:22Z yexinhao $
 
 -  */
 
  
- require './source/class/class_core.php';
 
  
- $cachelist = array();
 
 - $discuz = & discuz_core::instance();
 
  
- $discuz->cachelist = $cachelist;
 
 - $discuz->init_cron = false;
 
 - $discuz->init_setting = true;
 
 - $discuz->init_user = false;
 
 - $discuz->init_session = false;
 
  
- $discuz->init();
 
  
- if ($_POST) {
 
 -         $fromCloud = $_POST['fromCloud'];
 
 -         if ($fromCloud) {
 
 -                 if (is_file(DISCUZ_ROOT . './data/discuzx_utility.lock')) {
 
 -                         echo "LOCK";
 
 -                 } else {
 
 -                         echo "OK";
 
 -                 }
 
 -                 exit;
 
 -         }
 
  
-         $siteUrl = $_POST['siteUrl'];
 
  
-         $action = $_POST['action'];
 
 -         if ($action == 'restore') {
 
 -                 $my_siteid = $_POST['my_siteid'];
 
 -                 $my_sitekey = $_POST['my_sitekeys'][$my_siteid];
 
 -                 $cloud_status = intval($_POST['cloud_status'][$my_siteid]);
 
  
-                 if (!$my_siteid || !$my_sitekey) {
 
 -                         echo "无效的my_siteid或my_sitekey";
 
 -                         exit;
 
 -                 }
 
  
-                 DB::query("REPLACE INTO " . DB::table('common_setting') . " (skey, svalue) VALUES ('my_siteid', '{$my_siteid}'), ('my_sitekey', '{$my_sitekey}'), ('cloud_status', $cloud_status)");
 
 - //                C::t('common_setting')->update_batch(array('my_siteid' => $my_siteid, 'my_sitekey' =>$my_sitekey ,'cloud_status' => $cloud_status));
 
 -                 require_once libfile('function/cache');
 
 -                 updatecache('setting');
 
 -                 my_show_message("Discuz!云平台站点信息恢复成功 (请立即到管理后台云平台同步站点信息)");
 
 -         }
 
 - } else {
 
 -         if ($_GET['q'] == 'forgot') {
 
 -                 $sites = my_site_restore();
 
 -                 my_forgot($sites);
 
  
-         } else {
 
 -                 my_index();
 
 -         }
 
 - }
 
  
- function my_header() {
 
 -         header("Content-Type: text/html; charset=utf-8");
 
 -         echo <<<EOT
 
 - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
 - <html xmlns="http://www.w3.org/1999/xhtml">
 
 -         <head>
 
 -                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
 -                 <title>DISCUZ X站点注册工具 | 找回(恢复)站点信息、删除站点信息</title>
 
 -                 <style type="text/css">
 
 -                         body {
 
 -                                 width: 70%;
 
 -                         }
 
 -                         .msg, .warning {
 
 -                                 padding: 10px;
 
 -                                 border: 1px solid #06c;
 
 -                                 background-color: #c6dff9;
 
 -                         }
 
  
-                         .warning {
 
 -                                 border-color: #ffd700;
 
 -                                 background-color: #ffc;
 
 -                         }
 
 -                         .op {
 
 -                                 line-height: 2em;
 
 -                         }
 
 -                         .op a {
 
 -                                 font-size: 1.2em;
 
 -                         }
 
 -                 </style>
 
 -         </head>
 
 -         <body class="sidebars">\n
 
 - EOT;
 
 - }
 
  
- function my_footer() {
 
 -         global $_G;
 
 -         echo <<<EOT
 
 -                         <hr />
 
 -                         <div class="warn">
 
 -                                 <h3>注意事项</h3>
 
 -                                 <ul>
 
 -                                         <li>请勿随意公开该文件地址</li>
 
 -                                         <li>使用完毕之后,请<strong>立即删除</strong>该文件</li>
 
 -                                 </ul>
 
 -                         </div>
 
 -                         <p><a href="{$_G['siteurl']}">返回我的网站</a> | <a href="http://www.discuz.net/" target="_blank">支持论坛</a></p>
 
 -         </body>
 
 - </html>\n
 
 - EOT;
 
 - }
 
  
- function my_index() {
 
 -         global $_G;
 
 -         $siteUrl = $_G['siteurl'];
 
 -         $my_siteid = $_G['setting']['my_siteid'] ? $_G['setting']['my_siteid'] : '无';
 
 -         $my_sitekey = $_G['setting']['my_sitekey'] ? $_G['setting']['my_sitekey'] : '无';
 
 -         $cloud_status = $_G['setting']['cloud_status'] ? ($_G['setting']['cloud_status'] ? '开启': '关闭') : '无';;
 
 -         $uri = my_get_uri();
 
 -         my_header();
 
 -         echo <<<EOT
 
 -                 <form method="POST">
 
 -                         <dl>
 
 -                                 <dt>当前站点地址:</dt>
 
 -                                 <dd>$siteUrl</dd>
 
  
-                                 <dt>当前站点ID:</dt>
 
 -                                 <dd>$my_siteid</dd>
 
  
-                                 <dt>当前站点Key:</dt>
 
 -                                 <dd>$my_sitekey</dd>
 
  
-                                 <dt>当前云平台状态:</dt>
 
 -                                 <dd>$cloud_status</dd>
 
 -                         </dl>
 
 -                         <p class="op">
 
 -                                 如果您要恢复Discuz!云平台数据,请<a href="$uri?q=forgot">点这里继续</a>
 
 -                         </p>
 
 -                         <p class="warning">以上操作可能导致Discuz!云平台中当前站点服务无法使用、用户信息丢失!</p>
 
 -                 </form>
 
 - EOT;
 
 -         my_footer();
 
 - }
 
  
- function my_forgot($sites) {
 
 -         global $_G;
 
 -         my_header();
 
 -         my_title('恢复Discuz!云平台上的站点信息');
 
 -         $siteUrl = $_G['siteurl'];
 
 -         $table = "<table border="1">
 
 -                 <tr>
 
 -                         <th></th>
 
 -                         <th>站点ID</th>
 
 -                         <th>站点Key</th>
 
 -                         <th>站点uniqueid</th>
 
 -                         <th>创建时间</th>
 
 -                         <th>状态</th>
 
 -                 </tr>";
 
 -         foreach($sites as $site) {
 
 -                 $sId = $site['sId'];
 
 -                 $table .= "<tr>
 
 -                                 <td><input type='radio' name='my_siteid' value='$sId' /></td>
 
 -                                 <td>{$site['sId']}</td>
 
 -                                 <td>{$site['sKey']}</td>
 
 -                                 <td>{$site['sSiteKey']}</td>
 
 -                                 <td>{$site['sCreated']}</td>
 
 -                                 <td>{$site['status']}</td>
 
 -                                 <input type='hidden' name='my_sitekeys[$sId]' value='$site[sKey]' />
 
 -                                 <input type='hidden' name='cloud_status[$sId]' value='$site[cloudStatus]' />
 
 -                         </tr>";
 
 -         }
 
 -         $table .= "</table>\n";
 
 -         echo <<<EOT
 
 -                 <form method="POST">
 
 -                         $table
 
 -                         <p>
 
 -                                 <input type="hidden" name="action" value="restore" />
 
 -                                 <input type="submit" name="submit" value="恢复云平台数据" />
 
 -                         </p>
 
 -                 </form>
 
 - EOT;
 
 -         my_footer();
 
 - }
 
  
- function my_title($title = 'index') {
 
 -         echo "<h2>$title</h2>\n";
 
 -         return true;
 
 - }
 
  
- function my_site_restore() {
 
  
-     if (class_exists('Cloud')) {
 
 -         // X2.5 修复
 
 -         $cloudClient = Cloud::loadClass('Service_Client_Cloud');
 
  
-         try {
 
 -             $result = $cloudClient->resume();
 
 -         } catch (Exception $e) {
 
 -             $msg = sprintf('操作失败:%s (#%s)', $e->getMessage(), $e->getCode());
 
 -             my_show_message($msg);
 
 -         }
 
 -     } else {
 
 -         // X2 修复
 
 -         require_once DISCUZ_ROOT.'/api/manyou/Manyou.php';
 
 -         $cloudClient = new Discuz_Cloud_Client();
 
  
-         $result = $cloudClient->resume();
 
  
-         if(!$result || $cloudClient->errno) {
 
 -             $msg = sprintf('操作失败:%s (#%s)', $cloudClient->errmsg, $cloudClient->errno);
 
 -             my_show_message($msg);
 
 -         }
 
 -     }
 
  
-         // lock file
 
 -         $fp = fopen(DISCUZ_ROOT . './data/discuzx_utility.lock', 'w');
 
 -         if ($fp === false) {
 
 -                 my_show_message(sprintf('请确保 <strong>%s/data/discuzx_utility.lock</strong> 文件可写!', DISCUZ_ROOT));
 
 -         }
 
 -         fclose($fp);
 
 -         return $result;
 
  
- }
 
  
- function my_show_message($msg) {
 
 -         my_header();
 
 -         printf('<p class="msg">%s</p>', $msg);
 
 -         my_footer();
 
 -         exit;
 
 - }
 
  
- function my_get_uri() {
 
 -         $uri = $_SERVER['REQUEST_URI']?$_SERVER['REQUEST_URI']:($_SERVER['PHP_SELF']?$_SERVER['PHP_SELF']:$_SERVER['SCRIPT_NAME']);
 
 -         return $uri;
 
 - }
 
  
- ?>
 
 
  复制代码 
 
 |