t9026 8 سال پیش
کامیت
a8968c5b9c
100فایلهای تغییر یافته به همراه4508 افزوده شده و 0 حذف شده
  1. 66 0
      admin.php
  2. 32 0
      api.php
  3. 18 0
      api/addons/channel.htm
  4. 0 0
      api/addons/index.htm
  5. 9 0
      api/addons/zendcheck.php
  6. 3 0
      api/addons/zendcheck52.php
  7. 3 0
      api/addons/zendcheck53.php
  8. 1 0
      api/connect/index.htm
  9. 40 0
      api/connect/like.php
  10. 910 0
      api/db/dbbak.php
  11. 0 0
      api/db/index.htm
  12. 259 0
      api/google/google.php
  13. 0 0
      api/google/index.htm
  14. 1 0
      api/index.htm
  15. 23 0
      api/javascript/advertisement.php
  16. 0 0
      api/javascript/index.htm
  17. 31 0
      api/javascript/javascript.php
  18. 12 0
      api/manyou/channel.htm
  19. 9 0
      api/manyou/cloud_channel.htm
  20. 9 0
      api/manyou/getmaillist.htm
  21. 1 0
      api/manyou/index.htm
  22. 37 0
      api/manyou/my.php
  23. 21 0
      api/mobile/index.php
  24. 0 0
      api/remote/index.htm
  25. 136 0
      api/remote/index.php
  26. 0 0
      api/remote/mod/index.htm
  27. 36 0
      api/remote/mod/mod_cron.php
  28. 24 0
      api/remote/mod/mod_index.php
  29. 296 0
      api/trade/api_alipay.php
  30. 582 0
      api/trade/api_tenpay.php
  31. 0 0
      api/trade/index.htm
  32. 73 0
      api/trade/notify_credit.php
  33. 90 0
      api/trade/notify_invite.php
  34. 118 0
      api/trade/notify_trade.php
  35. 427 0
      api/uc.php
  36. 30 0
      archiver/index.php
  37. 103 0
      config/config_global.php
  38. 202 0
      config/config_global_default.php
  39. 19 0
      config/config_ucenter.php
  40. 32 0
      config/config_ucenter_default.php
  41. 1 0
      config/index.htm
  42. 41 0
      connect.php
  43. 11 0
      cp.php
  44. 4 0
      crossdomain.xml
  45. 52 0
      data/addonmd5/baidusubmit.plugin.xml
  46. 42 0
      data/addonmd5/freeaddon_seo_360sitemapauto.plugin.xml
  47. 0 0
      data/addonmd5/index.htm
  48. 123 0
      data/addonmd5/milu_seotool.plugin.xml
  49. 20 0
      data/addonmd5/mini_kf.plugin.xml
  50. 11 0
      data/addonmd5/study_plugin_pack.pack.xml
  51. 46 0
      data/addonmd5/study_seo_sitemap.plugin.xml
  52. 504 0
      data/addonmd5/yeei_dream.template.xml
  53. 0 0
      data/attachment/album/index.htm
  54. BIN
      data/attachment/block/00/00f231102f3b855a5e518355cb620b41.jpg
  55. 0 0
      data/attachment/block/00/index.html
  56. BIN
      data/attachment/block/03/03d5072f5232561b9c0f44488afb3c17.jpg
  57. 0 0
      data/attachment/block/03/index.html
  58. BIN
      data/attachment/block/15/155282fd9a8d0cbf64e78d2f9e91c953.jpg
  59. 0 0
      data/attachment/block/15/index.html
  60. BIN
      data/attachment/block/18/186418823641f2a4b216a4f9fc6d391d.jpg
  61. 0 0
      data/attachment/block/18/index.html
  62. 0 0
      data/attachment/block/19/index.html
  63. 0 0
      data/attachment/block/22/index.html
  64. BIN
      data/attachment/block/23/236aad35faaa352f17e3cdcd765c487b.jpg
  65. 0 0
      data/attachment/block/23/index.html
  66. 0 0
      data/attachment/block/3c/index.html
  67. 0 0
      data/attachment/block/3d/index.html
  68. BIN
      data/attachment/block/3e/3e32fabfe55e4f307675624a26bf63a0.jpg
  69. 0 0
      data/attachment/block/3e/index.html
  70. 0 0
      data/attachment/block/40/index.html
  71. BIN
      data/attachment/block/43/43579b9b7c6eff141d29f00d0114dd66.jpg
  72. 0 0
      data/attachment/block/43/index.html
  73. BIN
      data/attachment/block/44/448ebb8f9102091273c7acc695809989.jpg
  74. 0 0
      data/attachment/block/44/index.html
  75. 0 0
      data/attachment/block/46/index.html
  76. BIN
      data/attachment/block/4b/4b5c049d40e0c67ec0cc6eeec060ff00.jpg
  77. 0 0
      data/attachment/block/4b/index.html
  78. BIN
      data/attachment/block/50/5070ee4732b20592e418beaa83950695.jpg
  79. 0 0
      data/attachment/block/50/index.html
  80. BIN
      data/attachment/block/59/594153466da5ebef5c29d533b5635fd6.jpg
  81. 0 0
      data/attachment/block/59/index.html
  82. BIN
      data/attachment/block/5d/5d938cc273b8500227ee3e9052615af6.jpg
  83. 0 0
      data/attachment/block/5d/index.html
  84. BIN
      data/attachment/block/69/699495b94a5e4b003a767ecff158235f.jpg
  85. 0 0
      data/attachment/block/69/index.html
  86. BIN
      data/attachment/block/6c/6cb7e163a85f789a9e076a92d563a25d.jpg
  87. 0 0
      data/attachment/block/6c/index.html
  88. BIN
      data/attachment/block/6e/6eb9d9fe9a532133a3df3fea2be10e66.jpg
  89. 0 0
      data/attachment/block/6e/index.html
  90. BIN
      data/attachment/block/72/7236949d7bd947771f40f8ac5017a0ec.jpg
  91. 0 0
      data/attachment/block/72/index.html
  92. 0 0
      data/attachment/block/73/index.html
  93. BIN
      data/attachment/block/77/77d35751c56b95f21124f5f6b9390d1d.jpg
  94. 0 0
      data/attachment/block/77/index.html
  95. BIN
      data/attachment/block/78/78637432b61e4e2131ccf3a31bfef3b4.jpg
  96. 0 0
      data/attachment/block/78/index.html
  97. 0 0
      data/attachment/block/79/index.html
  98. BIN
      data/attachment/block/7a/7af3c7f4157d1a4b2beaa9083264065f.jpg
  99. 0 0
      data/attachment/block/7a/index.html
  100. 0 0
      data/attachment/block/7c/index.html

+ 66 - 0
admin.php

xqd
@@ -0,0 +1,66 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: admin.php 34285 2013-12-13 03:39:35Z hypowang $
+ */
+
+define('IN_ADMINCP', TRUE);
+define('NOROBOT', TRUE);
+define('ADMINSCRIPT', basename(__FILE__));
+define('CURSCRIPT', 'admin');
+define('HOOKTYPE', 'hookscript');
+define('APPTYPEID', 0);
+
+
+require './source/class/class_core.php';
+require './source/function/function_misc.php';
+require './source/function/function_forum.php';
+require './source/function/function_admincp.php';
+require './source/function/function_cache.php';
+
+$discuz = C::app();
+$discuz->init();
+
+$admincp = new discuz_admincp();
+$admincp->core  = & $discuz;
+$admincp->init();
+
+
+$admincp_actions_founder = array('templates', 'db', 'founder', 'postsplit', 'threadsplit', 'cloudaddons', 'upgrade', 'patch', 'optimizer');
+$admincp_actions_normal = array('index', 'setting', 'members', 'admingroup', 'usergroups', 'usertag',
+	'forums', 'threadtypes', 'threads', 'moderate', 'attach', 'smilies', 'recyclebin', 'recyclebinpost', 'prune', 'grid',
+	'styles', 'addons', 'plugins', 'tasks', 'magics', 'medals', 'google', 'announce', 'faq', 'ec',
+	'tradelog', 'jswizard', 'project', 'counter', 'misc', 'adv', 'logs', 'tools', 'portalperm', 'blogrecyclebin',
+	'checktools', 'search', 'article', 'block', 'blockstyle', 'blockxml', 'portalcategory', 'blogcategory', 'albumcategory', 'topic', 'credits',
+	'doing', 'group', 'blog', 'feed', 'album', 'pic', 'comment', 'share', 'click', 'specialuser', 'postsplit', 'threadsplit', 'report',
+	'district', 'diytemplate', 'verify', 'nav', 'domain', 'postcomment', 'tag', 'connect', 'card', 'portalpermission', 'collection', 'membersplit', 'makehtml');
+
+$action = preg_replace('/[^\[A-Za-z0-9_\]]/', '', getgpc('action'));
+$operation = preg_replace('/[^\[A-Za-z0-9_\]]/', '', getgpc('operation'));
+$do = preg_replace('/[^\[A-Za-z0-9_\]]/', '', getgpc('do'));
+$frames = preg_replace('/[^\[A-Za-z0-9_\]]/', '', getgpc('frames'));
+lang('admincp');
+$lang = & $_G['lang']['admincp'];
+$page = max(1, intval(getgpc('page')));
+$isfounder = $admincp->isfounder;
+
+if(empty($action) || $frames != null) {
+	$admincp->show_admincp_main();
+} elseif($action == 'logout') {
+	$admincp->do_admin_logout();
+	dheader("Location: ./index.php");
+} elseif(in_array($action, $admincp_actions_normal) || ($admincp->isfounder && in_array($action, $admincp_actions_founder))) {
+	if($admincp->allow($action, $operation, $do) || $action == 'index') {
+		require $admincp->admincpfile($action);
+	} else {
+		cpheader();
+		cpmsg('action_noaccess', '', 'error');
+	}
+} else {
+	cpheader();
+	cpmsg('action_noaccess', '', 'error');
+}
+?>

+ 32 - 0
api.php

xqd
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: api.php 33591 2013-07-12 06:39:49Z andyzheng $
+ */
+
+define('IN_API', true);
+define('CURSCRIPT', 'api');
+
+$modarray = array('js' => 'javascript/javascript', 'ad' => 'javascript/advertisement');
+
+$mod = !empty($_GET['mod']) ? $_GET['mod'] : '';
+if(empty($mod) || !in_array($mod, array('js', 'ad'))) {
+	exit('Access Denied');
+}
+
+require_once './api/'.$modarray[$mod].'.php';
+
+function loadcore() {
+	global $_G;
+	require_once './source/class/class_core.php';
+
+	$discuz = C::app();
+	$discuz->init_cron = false;
+	$discuz->init_session = false;
+	$discuz->init();
+}
+
+?>

+ 18 - 0
api/addons/channel.htm

xqd
@@ -0,0 +1,18 @@
+<!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=gbk" />
+		<script type="text/javascript">
+			var querystring = location.search.substr(1);
+			if(querystring.indexOf('/') != -1) {
+				var e = querystring.split('/');
+				var url = '../../admin.php?frames=yes&action=cloudaddons&operation=download&addonids=' + e[0] + '&md5hash=' + e[1] + '&timestamp=' + e[2];
+				try {
+					top.location.href = url;
+				} catch(e) {}
+			}
+		</script>
+	</head>
+	<body>
+	</body>
+</html>

+ 0 - 0
api/addons/index.htm


+ 9 - 0
api/addons/zendcheck.php

xqd
@@ -0,0 +1,9 @@
+<?php
+
+if(phpversion() >= '5.3') {
+	include 'zendcheck53.php';
+} else {
+	include 'zendcheck52.php';
+}
+
+?>

+ 3 - 0
api/addons/zendcheck52.php

xqd
@@ -0,0 +1,3 @@
+<?php @Zend;
+4123;
+/*

+ 3 - 0
api/addons/zendcheck53.php

xqd
@@ -0,0 +1,3 @@
+<?php @Zend;
+3074;
+/*

+ 1 - 0
api/connect/index.htm

xqd
@@ -0,0 +1 @@
+ 

+ 40 - 0
api/connect/like.php

xqd
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: like.php 25510 2011-11-14 02:22:26Z yexinhao $
+ */
+
+define('IN_API', true);
+define('CURSCRIPT', 'api');
+
+require_once '../../source/class/class_core.php';
+
+$cachelist = array();
+$discuz = C::app();
+$discuz->init_setting = true;
+$discuz->init();
+
+$body = '';
+$style = 'body { background: transparent; color: '.$_G['style']['tabletext'].'; font: '.$_G['style']['fontsize'].' '.$_G['style']['font'].'; margin:0; }'.
+	'a { color: '.$_G['style']['link'].'; text-decoration: none; } a:hover { text-decoration: underline; }';
+
+if($_G['setting']['connect']['like_allow'] && $_G['setting']['connect']['like_url']) {
+	$style .= '#txQZ { border: medium none; float: left; height:21px; margin-top: 4px; overflow: hidden; width: 110px; }'.
+		'.vm { vertical-align: middle; }';
+	$body .= '<iframe id="txQZ" src="'.$_G['setting']['connect']['like_url'].'" class="vm" allowtransparency="true" scrolling="no" border="0" frameborder="0"></iframe>';
+}
+
+if($_G['setting']['connect']['turl_allow'] && $_G['setting']['connect']['turl_code']) {
+	$style .= '#txWB_W1 { background: url("../../static/image/common/weibo.png") no-repeat scroll 0 50% transparent; float: left; line-height: 28px; padding: 0 5px 0 20px; }'.
+		'#txWB_W1 img { display: none; }'.
+		'#txWB_W1 b { font-weight: 400; }'.
+		'#txWB_W1 a { color: '.$_G['style']['highlightlink'].'; }';
+	$body .= $_G['setting']['connect']['turl_code'];
+}
+
+if($style && $body) {
+	echo '<style>'.$style.'</style><body>'.$body.'</body>';
+}

+ 910 - 0
api/db/dbbak.php

xqd
@@ -0,0 +1,910 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: dbbak.php 35016 2014-10-13 08:16:14Z nemohou $
+ */
+
+@define('IN_API', true);
+@define('CURSCRIPT', 'api');
+
+error_reporting(0);
+
+$code = @$_GET['code'];
+$apptype = @$_GET['apptype'];
+
+$apptype = strtolower($apptype);
+
+define('IN_COMSENZ', TRUE);
+if($apptype == 'discuzx') {
+	define('ROOT_PATH', dirname(__FILE__).'/../../');
+} else {
+	define('ROOT_PATH', dirname(__FILE__).'/../');
+}
+define('EXPLOR_SUCCESS', 0);
+define('IMPORT_SUCCESS', 0);
+define('DELETE_SQLPATH_SUCCESS', 4);
+define('MKDIR_ERROR', 1);
+define('DATABASE_EXPORT_FILE_INVALID', 2);
+define('RUN_SQL_ERROR', 3);
+define('SQLPATH_NULL_NOEXISTS', 4);
+define('SQLPATH_NOMATCH_BAKFILE', 5);
+define('BAK_FILE_LOSE', 6);
+define('DIR_NO_EXISTS', 7);
+define('DELETE_DUMPFILE_ERROR', 8);
+define('DB_API_NO_MATCH', 9);
+
+$sizelimit = 2000;
+$usehex = true;
+
+if($apptype == 'discuz') {
+	require ROOT_PATH.'./config.inc.php';
+} elseif($apptype == 'uchome' || $apptype == 'supesite' || $apptype == 'supev') {
+	require ROOT_PATH.'./config.php';
+} elseif($apptype == 'ucenter') {
+	require ROOT_PATH.'./data/config.inc.php';
+} elseif($apptype == 'ecmall') {
+	require ROOT_PATH.'./data/inc.config.php';
+} elseif($apptype == 'ecshop') {
+	require ROOT_PATH.'./data/config.php';
+} elseif($apptype == 'discuzx') {
+	require ROOT_PATH.'./config/config_global.php';
+	require ROOT_PATH.'./config/config_ucenter.php';
+} else {
+	api_msg('db_api_no_match', $apptype);
+}
+
+parse_str(_authcode($code, 'DECODE', UC_KEY), $get);
+if(get_magic_quotes_gpc()) {
+	$get = _stripslashes($get);
+}
+
+if(empty($get)) {
+	exit('Invalid Request');
+}
+
+$timestamp = time();
+if($timestamp - $get['time'] > 3600) {
+	exit('Authracation has expiried');
+}
+$get['time'] = $timestamp;
+
+class dbstuff {
+	var $querynum = 0;
+	var $link;
+	var $histories;
+	var $time;
+	var $tablepre;
+
+	function connect($dbhost, $dbuser, $dbpw, $dbname = '', $dbcharset, $pconnect = 0, $tablepre='', $time = 0) {
+		$this->time = $time;
+		$this->tablepre = $tablepre;
+		if($pconnect) {
+			if(!$this->link = mysql_pconnect($dbhost, $dbuser, $dbpw)) {
+				$this->halt('Can not connect to MySQL server');
+			}
+		} else {
+			if(!$this->link = mysql_connect($dbhost, $dbuser, $dbpw, 1)) {
+				$this->halt('Can not connect to MySQL server');
+			}
+		}
+
+		if($this->version() > '4.1') {
+			if($dbcharset) {
+				mysql_query("SET character_set_connection=".$dbcharset.", character_set_results=".$dbcharset.", character_set_client=binary", $this->link);
+			}
+
+			if($this->version() > '5.0.1') {
+				mysql_query("SET sql_mode=''", $this->link);
+			}
+		}
+
+		if($dbname) {
+			mysql_select_db($dbname, $this->link);
+		}
+
+	}
+
+	function fetch_array($query, $result_type = MYSQL_ASSOC) {
+		return mysql_fetch_array($query, $result_type);
+	}
+
+	function result_first($sql) {
+		$query = $this->query($sql);
+		return $this->result($query, 0);
+	}
+
+	function fetch_first($sql) {
+		$query = $this->query($sql);
+		return $this->fetch_array($query);
+	}
+
+	function fetch_all($sql) {
+		$arr = array();
+		$query = $this->query($sql);
+		while($data = $this->fetch_array($query)) {
+			$arr[] = $data;
+		}
+		return $arr;
+	}
+
+	function cache_gc() {
+		$this->query("DELETE FROM {$this->tablepre}sqlcaches WHERE expiry<$this->time");
+	}
+
+	function query($sql, $type = '', $cachetime = FALSE) {
+		$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query';
+		if(!($query = $func($sql, $this->link)) && $type != 'SILENT') {
+			$this->halt('MySQL Query Error', $sql);
+		}
+		$this->querynum++;
+		$this->histories[] = $sql;
+		return $query;
+	}
+
+	function affected_rows() {
+		return mysql_affected_rows($this->link);
+	}
+
+	function error() {
+		return (($this->link) ? mysql_error($this->link) : mysql_error());
+	}
+
+	function errno() {
+		return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());
+	}
+
+	function result($query, $row) {
+		$query = @mysql_result($query, $row);
+		return $query;
+	}
+
+	function num_rows($query) {
+		$query = mysql_num_rows($query);
+		return $query;
+	}
+
+	function num_fields($query) {
+		return mysql_num_fields($query);
+	}
+
+	function free_result($query) {
+		return mysql_free_result($query);
+	}
+
+	function insert_id() {
+		return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);
+	}
+
+	function fetch_row($query) {
+		$query = mysql_fetch_row($query);
+		return $query;
+	}
+
+	function fetch_fields($query) {
+		return mysql_fetch_field($query);
+	}
+
+	function version() {
+		return mysql_get_server_info($this->link);
+	}
+
+	function escape_string($str) {
+		return mysql_escape_string($str);
+	}
+
+	function close() {
+		return mysql_close($this->link);
+	}
+
+	function halt($message = '', $sql = '') {
+		api_msg('run_sql_error', $message.'<br /><br />'.$sql.'<br /> '.mysql_error());
+	}
+}
+class dbstuffi {
+	var $querynum = 0;
+	var $link;
+	var $histories;
+	var $time;
+	var $tablepre;
+
+	function connect($dbhost, $dbuser, $dbpw, $dbname = '', $dbcharset, $pconnect = 0, $tablepre='', $time = 0) {
+		$this->time = $time;
+		$this->tablepre = $tablepre;
+		$this->link = new mysqli();
+		if(!$this->link->real_connect($dbhost, $dbuser, $dbpw, $dbname, null, null, MYSQLI_CLIENT_COMPRESS)) {
+			$this->halt('Can not connect to MySQL server');
+		}
+
+		if($this->version() > '4.1') {
+			if($dbcharset) {
+				$this->link->set_charset($dbcharset);
+			}
+
+			if($this->version() > '5.0.1') {
+				$this->query("SET sql_mode=''");
+			}
+		}
+
+
+	}
+
+	function fetch_array($query, $result_type = MYSQLI_ASSOC) {
+		return $query ? $query->fetch_array($result_type) : null;
+	}
+
+	function result_first($sql) {
+		$query = $this->query($sql);
+		return $this->result($query, 0);
+	}
+
+	function fetch_first($sql) {
+		$query = $this->query($sql);
+		return $this->fetch_array($query);
+	}
+
+	function fetch_all($sql) {
+		$arr = array();
+		$query = $this->query($sql);
+		while($data = $this->fetch_array($query)) {
+			$arr[] = $data;
+		}
+		return $arr;
+	}
+
+	function cache_gc() {
+		$this->query("DELETE FROM {$this->tablepre}sqlcaches WHERE expiry<$this->time");
+	}
+
+	function query($sql, $type = '', $cachetime = FALSE) {
+		$resultmode = $type == 'UNBUFFERED' ? MYSQLI_USE_RESULT : MYSQLI_STORE_RESULT;
+		if(!($query = $this->link->query($sql, $resultmode)) && $type != 'SILENT') {
+			$this->halt('MySQL Query Error', $sql);
+		}
+		$this->querynum++;
+		$this->histories[] = $sql;
+		return $query;
+	}
+
+	function affected_rows() {
+		return $this->link->affected_rows;
+	}
+
+	function error() {
+		return (($this->link) ? $this->link->error : mysqli_error());
+	}
+
+	function errno() {
+		return intval(($this->link) ? $this->link->errno : mysqli_errno());
+	}
+
+	function result($query, $row) {
+		if(!$query || $query->num_rows == 0) {
+			return null;
+		}
+		$query->data_seek($row);
+		$assocs = $query->fetch_row();
+		return $assocs[0];
+	}
+
+	function num_rows($query) {
+		$query = $query ? $query->num_rows : 0;
+		return $query;
+	}
+
+	function num_fields($query) {
+		return $query ? $query->field_count : 0;
+	}
+
+	function free_result($query) {
+		return $query ? $query->free() : false;
+	}
+
+	function insert_id() {
+		return ($id = $this->link->insert_id) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);
+	}
+
+	function fetch_row($query) {
+		$query = $query ? $query->fetch_row() : null;
+		return $query;
+	}
+
+	function fetch_fields($query) {
+		return $query ? $query->fetch_field() : null;
+	}
+
+	function version() {
+		return $this->link->server_info;
+	}
+
+	function escape_string($str) {
+		return $this->link->escape_string($str);
+	}
+
+	function close() {
+		return $this->link->close();
+	}
+
+	function halt($message = '', $sql = '') {
+		api_msg('run_sql_error', $message.'<br /><br />'.$sql.'<br /> '.$this->link->error());
+	}
+}
+
+
+$db = function_exists("mysql_connect") ? new dbstuff() : new dbstuffi();
+$version = '';
+if($apptype == 'discuz') {
+
+	define('BACKUP_DIR', ROOT_PATH.'forumdata/');
+	$tablepre = $tablepre;
+	if(empty($dbcharset)) {
+		$dbcharset = in_array(strtolower($charset), array('gbk', 'big5', 'utf-8')) ? str_replace('-', '', $charset) : '';
+	}
+	$db->connect($dbhost, $dbuser, $dbpw, $dbname, $dbcharset, $pconnect, $tablepre);
+	define('IN_DISCUZ', true);
+	include ROOT_PATH.'discuz_version.php';
+	$version = DISCUZ_VERSION;
+
+} elseif($apptype == 'uchome' || $apptype == 'supesite') {
+
+	define('BACKUP_DIR', ROOT_PATH.'./data/');
+	$tablepre = $_SC['tablepre'];
+	$dbcharset = $_SC['dbcharset'];
+	$db->connect($_SC['dbhost'], $_SC['dbuser'], $_SC['dbpw'], $_SC['dbname'], $dbcharset, $_SC['pconnect'], $tablepre);
+
+} elseif($apptype == 'ucenter') {
+
+	define('BACKUP_DIR', ROOT_PATH.'./data/backup/');
+	$tablepre = UC_DBTABLEPRE;
+	$dbcharset = UC_DBCHARSET;
+	$db->connect(UC_DBHOST, UC_DBUSER, UC_DBPW, UC_DBNAME, $dbcharset, UC_DBCONNECT, $tablepre);
+
+} elseif($apptype == 'ecmall') {
+
+	define('BACKUP_DIR', ROOT_PATH.'./data/backup/');
+	$tablepre = DB_PREFIX;
+	$dbcharset = strtolower(str_replace('-', '', strstr(LANG, '-')));
+	$cfg = parse_url(DB_CONFIG);
+	if(empty($cfg['pass'])) {
+		$cfg['pass'] = '';
+	} else {
+		$cfg['pass'] = urldecode($cfg['pass']);
+	}
+	$cfg['user'] = urldecode($cfg['user']);
+    $cfg['path'] = str_replace('/', '', $cfg['path']);
+
+	$db->connect($cfg['host'].':'.$cfg['port'], $cfg['user'], $cfg['pass'], $cfg['path'], $dbcharset, 0, $tablepre);
+
+} elseif($apptype == 'supev') {
+
+	define('BACKUP_DIR', ROOT_PATH.'data/backup/');
+	$tablepre = $tablepre;
+	if(empty($dbcharset)) {
+		$dbcharset = in_array(strtolower($_config['output']['charset']), array('gbk', 'big5', 'utf-8')) ? str_replace('-', '', CHARSET) : '';
+	}
+	$db->connect($dbhost, $dbuser, $dbpw, $dbname, $dbcharset, $pconnect, $tablepre);
+
+} elseif($apptype == 'ecshop') {
+
+	define('BACKUP_DIR', ROOT_PATH.'data/backup/');
+	$tablepre = $prefix;
+	$dbcharset = 'utf8';
+	$db->connect($db_host, $db_user, $db_pass, $db_name, $dbcharset, 0, $tablepre);
+
+} elseif($apptype == 'discuzx') {
+
+	define('BACKUP_DIR', ROOT_PATH.'data/');
+	extract($_config['db']['1']);
+	if(empty($dbcharset)) {
+		$dbcharset = in_array(strtolower(CHARSET), array('gbk', 'big5', 'utf-8')) ? str_replace('-', '', $_config['output']['charset']) : '';
+	}
+	$db->connect($dbhost, $dbuser, $dbpw, $dbname, $dbcharset, $pconnect, $tablepre);
+	define('IN_DISCUZ', true);
+	include ROOT_PATH.'source/discuz_version.php';
+	$version = DISCUZ_VERSION;
+
+}
+
+if($get['method'] == 'export') {
+
+	$db->query('SET SQL_QUOTE_SHOW_CREATE=0', 'SILENT');
+
+	$time = date("Y-m-d H:i:s", $timestamp);
+
+	$tables = array();
+	$tables = arraykeys2(fetchtablelist($tablepre), 'Name');
+
+	if($apptype == 'discuz') {
+		$query = $db->query("SELECT datatables FROM {$tablepre}plugins WHERE datatables<>''");
+		while($plugin = $db->fetch_array($query)) {
+			foreach(explode(',', $plugin['datatables']) as $table) {
+				if($table = trim($table)) {
+					$tables[] = $table;
+				}
+			}
+		}
+	}
+	if($apptype == 'discuzx') {
+		$query = $db->query("SELECT datatables FROM {$tablepre}common_plugin WHERE datatables<>''");
+		while($plugin = $db->fetch_array($query)) {
+			foreach(explode(',', $plugin['datatables']) as $table) {
+				if($table = trim($table)) {
+					$tables[] = $table;
+				}
+			}
+		}
+	}
+
+	$memberexist = array_search("{$tablepre}common_member", $tables);
+	if($memberexist !== FALSE) {
+		unset($tables[$memberexist]);
+		array_unshift($tables, "{$tablepre}common_member");
+	}
+
+	$get['volume'] = isset($get['volume']) ? intval($get['volume']) : 0;
+	$get['volume'] = $get['volume'] + 1;
+	$version = $version ? $version : $apptype;
+	$idstring = '# Identify: '.base64_encode("$timestamp,$version,$apptype,multivol,$get[volume]")."\n";
+
+	if(!isset($get['sqlpath']) || empty($get['sqlpath'])) {
+		$get['sqlpath'] = 'backup_'.date('ymd', $timestamp).'_'.random(6);
+		if(!mkdir(BACKUP_DIR.'./'.$get['sqlpath'], 0777)) {
+			api_msg('mkdir_error', 'make dir error:'.BACKUP_DIR.'./'.$get['sqlpath']);
+		}
+	} else {
+		$get['sqlpath'] = str_replace(array('/', '\\', '.', "'"), '', $get['sqlpath']);
+		if(!is_dir(BACKUP_DIR.'./'.$get['sqlpath'])) {
+			if(!mkdir(BACKUP_DIR.'./'.$get['sqlpath'], 0777)) {
+				api_msg('mkdir_error', 'make dir error:'.BACKUP_DIR.'./'.$get['sqlpath']);
+			}
+		}
+	}
+
+	if(!isset($get['backupfilename']) || empty($get['backupfilename'])) {
+		$get['backupfilename'] = date('ymd', $timestamp).'_'.random(6);
+	}
+
+	$sqldump = '';
+	$get['tableid'] = isset($get['tableid']) ? intval($get['tableid']) : 0;
+	$get['startfrom'] = isset($get['startfrom']) ? intval($get['startfrom']) : 0;
+
+	if(!$get['tableid'] && $get['volume'] == 1) {
+		foreach($tables as $table) {
+			$sqldump .= sqldumptablestruct($table);
+		}
+	}
+	$complete = TRUE;
+	for(; $complete && $get['tableid'] < count($tables) && strlen($sqldump) + 500 < $sizelimit * 1000; $get['tableid']++) {
+		$sqldump .= sqldumptable($tables[$get['tableid']], strlen($sqldump));
+		if($complete) {
+			$get['startfrom'] = 0;
+		}
+	}
+
+	!$complete && $get['tableid']--;
+	$dumpfile = BACKUP_DIR.$get['sqlpath'].'/'.$get['backupfilename'].'-'.$get['volume'].'.sql';
+	if(trim($sqldump)) {
+		$sqldump = "$idstring".
+			"# <?exit();?>\n".
+			"# $apptype Multi-Volume Data Dump Vol.$get[volume]\n".
+			"# Time: $time\n".
+			"# Type: $apptype\n".
+			"# Table Prefix: $tablepre\n".
+			"# $dbcharset\n".
+			"# $apptype Home: http://www.comsenz.com\n".
+			"# Please visit our website for newest infomation about $apptype\n".
+			"# --------------------------------------------------------\n\n\n".
+			$sqldump;
+		@$fp = fopen($dumpfile, 'wb');
+		@flock($fp, 2);
+		if(@!fwrite($fp, $sqldump)) {
+			@fclose($fp);
+			api_msg('database_export_file_invalid', $dumpfile);
+		} else {
+			fclose($fp);
+			auto_next($get, $dumpfile);
+		}
+	} else {
+		@touch(ROOT_PATH.$get['sqlpath'].'/index.htm');
+		api_msg('explor_success', 'explor_success');
+	}
+
+} elseif($get['method'] == 'import') {
+
+	if(!isset($get['dumpfile']) || empty($get['dumpfile'])) {
+		$get['dumpfile'] = get_dumpfile_by_path($get['sqlpath']);
+		$get['volume'] = 0;
+	}
+
+	$get['volume']++;
+	$next_dumpfile = preg_replace('/^(\d+)\_(\w+)\-(\d+)\.sql$/', '\\1_\\2-'.$get['volume'].'.sql', $get['dumpfile']);
+	if(!is_file(BACKUP_DIR.$get['sqlpath'].'/'.$get['dumpfile'])) {
+		if(is_file(BACKUP_DIR.$get['sqlpath'].'/'.$next_dumpfile)) {
+			api_msg('bak_file_lose', $get['dumpfile']);
+		} else {
+			api_msg('import_success', 'import_success');
+		}
+	}
+
+	$sqldump = file_get_contents(BACKUP_DIR.$get['sqlpath'].'/'.$get['dumpfile']);
+	$sqlquery = splitsql($sqldump);
+	unset($sqldump);
+
+	foreach($sqlquery as $sql) {
+		$sql = syntablestruct(trim($sql), $db->version() > '4.1', $dbcharset);
+
+		if($sql != '') {
+			$db->query($sql, 'SILENT');
+			if(($sqlerror = $db->error()) && $db->errno() != 1062) {
+				$db->halt('MySQL Query Error', $sql);
+			}
+		}
+	}
+
+	$cur_file = $get['dumpfile'];
+	$get['dumpfile'] = $next_dumpfile;
+	auto_next($get, BACKUP_DIR.$get['sqlpath'].'/'.$cur_file);
+
+} elseif($get['method'] == 'ping') {
+
+	if($get['dir'] && is_dir(BACKUP_DIR.$get['dir'])) {
+		echo "1";exit;
+	} else {
+		echo "-1";exit;
+	}
+
+} elseif($get['method'] == 'list') {
+
+	$str = "<root>\n";
+	$directory = dir(BACKUP_DIR);
+	while($entry = $directory->read()) {
+		$filename = BACKUP_DIR.$entry;
+		if(is_dir($filename) && preg_match('/backup_(\d+)_\w+$/', $filename, $match)) {
+			$str .= "\t<dir>\n";
+			$str .= "\t\t<dirname>$filename</dirname>\n";
+			$str .= "\t\t<dirdate>$match[1]</dirdate>\n";
+			$str .= "\t</dir>\n";
+		}
+	}
+	$directory->close();
+	$str .= "</root>";
+	echo $str;
+	exit;
+
+} elseif($get['method'] == 'view') {
+
+	$sqlpath = trim($get['sqlpath']);
+	if(empty($sqlpath) || !is_dir(BACKUP_DIR.$sqlpath)) {
+		api_msg('dir_no_exists', $sqlpath);
+	}
+
+	$str = "<root>\n";
+	$directory = dir(BACKUP_DIR.$sqlpath);
+	while($entry = $directory->read()) {
+		$filename = BACKUP_DIR.$sqlpath.'/'.$entry;
+		if(is_file($filename) && preg_match('/\d+_\w+\-(\d+).sql$/', $filename, $match)) {
+			$str .= "\t<file>\n";
+			$str .= "\t\t<file_name>$match[0]</file_name>\n";
+			$str .= "\t\t<file_size>".filesize($filename)."</file_size>\n";
+			$str .= "\t\t<file_num>$match[1]</file_num>\n";
+			$str .= "\t\t<file_url>".str_replace(ROOT_PATH, 'http://'.$_SERVER['HTTP_HOST'].'/', $filename)."</file_url>\n";
+			$str .= "\t\t<last_modify>".filemtime($filename)."</last_modify>\n";
+			$str .= "\t</file>\n";
+		}
+	}
+	$directory->close();
+	$str .= "</root>";
+	echo $str;
+	exit;
+
+} elseif($get['method'] == 'delete') {
+
+	$sqlpath = trim($get['sqlpath']);
+	if(empty($sqlpath) || !is_dir(BACKUP_DIR.$sqlpath)) {
+		api_msg('dir_no_exists', $sqlpath);
+	}
+	$directory = dir(BACKUP_DIR.$sqlpath);
+	while($entry = $directory->read()) {
+		$filename = BACKUP_DIR.$sqlpath.'/'.$entry;
+		if(is_file($filename) && preg_match('/\d+_\w+\-(\d+).sql$/', $filename) && !@unlink($filename)) {
+			api_msg('delete_dumpfile_error', $filename);
+		}
+	}
+	$directory->close();
+	@rmdir(BACKUP_DIR.$sqlpath);
+	api_msg('delete_sqlpath_success', 'delete_sqlpath_success');
+
+}
+
+function syntablestruct($sql, $version, $dbcharset) {
+
+	if(strpos(trim(substr($sql, 0, 18)), 'CREATE TABLE') === FALSE) {
+		return $sql;
+	}
+
+	$sqlversion = strpos($sql, 'ENGINE=') === FALSE ? FALSE : TRUE;
+
+	if($sqlversion === $version) {
+
+		return $sqlversion && $dbcharset ? preg_replace(array('/ character set \w+/i', '/ collate \w+/i', "/DEFAULT CHARSET=\w+/is"), array('', '', "DEFAULT CHARSET=$dbcharset"), $sql) : $sql;
+	}
+
+	if($version) {
+		return preg_replace(array('/TYPE=HEAP/i', '/TYPE=(\w+)/is'), array("ENGINE=MEMORY DEFAULT CHARSET=$dbcharset", "ENGINE=\\1 DEFAULT CHARSET=$dbcharset"), $sql);
+
+	} else {
+		return preg_replace(array('/character set \w+/i', '/collate \w+/i', '/ENGINE=MEMORY/i', '/\s*DEFAULT CHARSET=\w+/is', '/\s*COLLATE=\w+/is', '/ENGINE=(\w+)(.*)/is'), array('', '', 'ENGINE=HEAP', '', '', 'TYPE=\\1\\2'), $sql);
+	}
+}
+
+function splitsql($sql) {
+	$sql = str_replace("\r", "\n", $sql);
+	$ret = array();
+	$num = 0;
+	$queriesarray = explode(";\n", trim($sql));
+	unset($sql);
+	foreach($queriesarray as $query) {
+		$ret[$num] = isset($ret[$num]) ? $ret[$num] : '';
+		$queries = explode("\n", trim($query));
+		foreach($queries as $query) {
+			$ret[$num] .= isset($query[0]) && $query[0] == "#" ? NULL : $query;
+		}
+		$num++;
+	}
+	return($ret);
+}
+
+function get_dumpfile_by_path($path) {
+	if(empty($path) || !is_dir(BACKUP_DIR.$path)) {
+		api_msg('sqlpath_null_noexists', $path);
+	}
+	$directory = dir(BACKUP_DIR.$path);
+	while($entry = $directory->read()) {
+		$filename = BACKUP_DIR.$path.'/'.$entry;
+		if(is_file($filename)) {
+			if(preg_match('/^\d+\_\w+\-\d+\.sql$/', $entry)) {
+				$file_bakfile = preg_replace('/^(\d+)\_(\w+)\-(\d+)\.sql$/', '\\1_\\2-1.sql', $entry);
+				if(is_file(BACKUP_DIR.$path.'/'.$file_bakfile)) {
+					return $file_bakfile;
+				} else {
+					api_msg('sqlpath_nomatch_bakfile', $path);
+				}
+			}
+		}
+	}
+	$directory->close();
+	api_msg('sqlpath_nomatch_bakfile', $path);
+}
+
+function api_msg($code, $msg) {
+	$msg = htmlspecialchars($msg);
+	$out = "<root>\n";
+	$out .= "\t<error errorCode=\"".constant(strtoupper($code))."\" errorMessage=\"$msg\" />\n";
+	$out .= "\t<fileinfo>\n";
+	$out .= "\t\t<file_num></file_num>\n";
+	$out .= "\t\t<file_size></file_size>\n";
+	$out .= "\t\t<file_name></file_name>\n";
+	$out .= "\t\t<file_url></file_url>\n";
+	$out .= "\t\t<last_modify></last_modify>\n";
+	$out .= "\t</fileinfo>\n";
+	$out .= "\t<nexturl></nexturl>\n";
+	$out .= "</root>";
+	echo $out;
+	exit;
+}
+
+function arraykeys2($array, $key2) {
+	$return = array();
+	foreach($array as $val) {
+		$return[] = $val[$key2];
+	}
+	return $return;
+}
+
+function auto_next($get, $sqlfile) {
+	$next_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?apptype='.$GLOBALS['apptype'].'&code='.urlencode(encode_arr($get));
+	$out = "<root>\n";
+	$out .= "\t<error errorCode=\"0\" errorMessage=\"ok\" />\n";
+	$out .= "\t<fileinfo>\n";
+	$out .= "\t\t<file_num>$get[volume]</file_num>\n";
+	$out .= "\t\t<file_size>".filesize($sqlfile)."</file_size>\n";
+	$out .= "\t\t<file_name>".basename($sqlfile)."</file_name>\n";
+	$out .= "\t\t<file_url>".str_replace(ROOT_PATH, 'http://'.$_SERVER['HTTP_HOST'].'/', $sqlfile)."</file_url>\n";
+	$out .= "\t\t<last_modify>".filemtime($sqlfile)."</last_modify>\n";
+	$out .= "\t</fileinfo>\n";
+	$out .= "\t<nexturl><![CDATA[$next_url]]></nexturl>\n";
+	$out .= "</root>";
+	echo $out;
+	exit;
+}
+
+function encode_arr($get) {
+	$tmp = '';
+	foreach($get as $key => $val) {
+		$tmp .= '&'.$key.'='.$val;
+	}
+	return _authcode($tmp, 'ENCODE', UC_KEY);
+}
+
+function sqldumptablestruct($table) {
+	global $db;
+
+	$createtable = $db->query("SHOW CREATE TABLE $table", 'SILENT');
+
+	if(!$db->error()) {
+		$tabledump = "DROP TABLE IF EXISTS $table;\n";
+	} else {
+		return '';
+	}
+
+	$create = $db->fetch_row($createtable);
+
+	if(strpos($table, '.') !== FALSE) {
+		$tablename = substr($table, strpos($table, '.') + 1);
+		$create[1] = str_replace("CREATE TABLE $tablename", 'CREATE TABLE '.$table, $create[1]);
+	}
+	$tabledump .= $create[1];
+
+	$tablestatus = $db->fetch_first("SHOW TABLE STATUS LIKE '$table'");
+	$tabledump .= ($tablestatus['Auto_increment'] ? " AUTO_INCREMENT=$tablestatus[Auto_increment]" : '').";\n\n";
+	return $tabledump;
+}
+
+function sqldumptable($table, $currsize = 0) {
+	global $get, $db, $sizelimit, $startrow, $extendins, $sqlcompat, $sqlcharset, $dumpcharset, $usehex, $complete, $excepttables;
+
+	$offset = 300;
+	$tabledump = '';
+	$tablefields = array();
+
+	$query = $db->query("SHOW FULL COLUMNS FROM $table", 'SILENT');
+	if(strexists($table, 'adminsessions')) {
+		return ;
+	} elseif(!$query && $db->errno() == 1146) {
+		return;
+	} elseif(!$query) {
+		$usehex = FALSE;
+	} else {
+		while($fieldrow = $db->fetch_array($query)) {
+			$tablefields[] = $fieldrow;
+		}
+	}
+
+	$tabledumped = 0;
+	$numrows = $offset;
+	$firstfield = $tablefields[0];
+
+	while($currsize + strlen($tabledump) + 500 < $sizelimit * 1000 && $numrows == $offset) {
+		if($firstfield['Extra'] == 'auto_increment') {
+			$selectsql = "SELECT * FROM $table WHERE $firstfield[Field] > $get[startfrom] LIMIT $offset";
+		} else {
+			$selectsql = "SELECT * FROM $table LIMIT $get[startfrom], $offset";
+		}
+		$tabledumped = 1;
+		$rows = $db->query($selectsql);
+		$numfields = $db->num_fields($rows);
+
+		$numrows = $db->num_rows($rows);
+		while($row = $db->fetch_row($rows)) {
+			$comma = $t = '';
+			for($i = 0; $i < $numfields; $i++) {
+				$t .= $comma.($usehex && !empty($row[$i]) && (strexists($tablefields[$i]['Type'], 'char') || strexists($tablefields[$i]['Type'], 'text')) ? '0x'.bin2hex($row[$i]) : '\''.$db->escape_string($row[$i]).'\'');
+				$comma = ',';
+			}
+			if(strlen($t) + $currsize + strlen($tabledump) + 500 < $sizelimit * 1000) {
+				if($firstfield['Extra'] == 'auto_increment') {
+					$get['startfrom'] = $row[0];
+				} else {
+					$get['startfrom']++;
+				}
+				$tabledump .= "INSERT INTO $table VALUES ($t);\n";
+			} else {
+				$complete = FALSE;
+				break 2;
+			}
+		}
+	}
+
+	$tabledump .= "\n";
+
+	return $tabledump;
+}
+
+function random($length, $numeric = 0) {
+	PHP_VERSION < '4.2.0' && mt_srand((double)microtime() * 1000000);
+	if($numeric) {
+		$hash = sprintf('%0'.$length.'d', mt_rand(0, pow(10, $length) - 1));
+	} else {
+		$hash = '';
+		$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
+		$max = strlen($chars) - 1;
+		for($i = 0; $i < $length; $i++) {
+			$hash .= $chars[mt_rand(0, $max)];
+		}
+	}
+	return $hash;
+}
+
+function fetchtablelist($tablepre = '') {
+	global $db;
+	$arr = explode('.', $tablepre);
+	$dbname = isset($arr[1]) && $arr[1] ? $arr[0] : '';
+	$tablepre = str_replace('_', '\_', $tablepre);
+	$sqladd = $dbname ? " FROM $dbname LIKE '$arr[1]%'" : "LIKE '$tablepre%'";
+	$tables = $table = array();
+	$query = $db->query("SHOW TABLE STATUS $sqladd");
+	while($table = $db->fetch_array($query)) {
+		$table['Name'] = ($dbname ? "$dbname." : '').$table['Name'];
+		$tables[] = $table;
+	}
+	return $tables;
+}
+
+function _stripslashes($string) {
+	if(is_array($string)) {
+		foreach($string as $key => $val) {
+			$string[$key] = _stripslashes($val);
+		}
+	} else {
+		$string = stripslashes($string);
+	}
+	return $string;
+}
+
+function _authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {
+	$ckey_length = 4;
+
+	$key = md5($key ? $key : UC_KEY);
+	$keya = md5(substr($key, 0, 16));
+	$keyb = md5(substr($key, 16, 16));
+	$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
+
+	$cryptkey = $keya.md5($keya.$keyc);
+	$key_length = strlen($cryptkey);
+
+	$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
+	$string_length = strlen($string);
+
+	$result = '';
+	$box = range(0, 255);
+
+	$rndkey = array();
+	for($i = 0; $i <= 255; $i++) {
+		$rndkey[$i] = ord($cryptkey[$i % $key_length]);
+	}
+
+	for($j = $i = 0; $i < 256; $i++) {
+		$j = ($j + $box[$i] + $rndkey[$i]) % 256;
+		$tmp = $box[$i];
+		$box[$i] = $box[$j];
+		$box[$j] = $tmp;
+	}
+
+	for($a = $j = $i = 0; $i < $string_length; $i++) {
+		$a = ($a + 1) % 256;
+		$j = ($j + $box[$a]) % 256;
+		$tmp = $box[$a];
+		$box[$a] = $box[$j];
+		$box[$j] = $tmp;
+		$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
+	}
+
+	if($operation == 'DECODE') {
+		if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
+			return substr($result, 26);
+		} else {
+				return '';
+			}
+	} else {
+		return $keyc.str_replace('=', '', base64_encode($result));
+	}
+
+}
+
+function strexists($haystack, $needle) {
+	return !(strpos($haystack, $needle) === FALSE);
+}
+
+?>

+ 0 - 0
api/db/index.htm


+ 259 - 0
api/google/google.php

xqd
@@ -0,0 +1,259 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: google.php 34713 2014-07-14 02:33:03Z hypowang $
+ */
+
+@define('IN_API', true);
+@define('CURSCRIPT', 'api');
+
+require_once('../../source/class/class_core.php');
+require_once('../../source/function/function_home.php');
+
+$cachelist = array();
+$discuz = C::app();
+
+$discuz->cachelist = $cachelist;
+$discuz->init_cron = false;
+$discuz->init_setting = true;
+$discuz->init_user = false;
+$discuz->init_session = false;
+
+$discuz->init();
+
+$google = new GoogleAPI($discuz);
+$google->run();
+
+class GoogleAPI
+{
+	var $core;
+	var $version = '2.0.0';
+	function GoogleAPI(&$core) {
+		$this->core = &$core;
+	}
+
+	function run() {
+		$this->authcheck();
+		$method = 'on_'.getgpc('a');
+		if(method_exists($this, $method)) {
+			$this->xmlheader();
+			$this->$method();
+			$this->xmlfooter();
+		} else {
+			$this->error('Unknow command');
+		}
+	}
+
+	function authcheck() {
+		$siteuniqueid = C::t('common_setting')->fetch('siteuniqueid');
+		$auth = md5($siteuniqueid.'DISCUZ*COMSENZ*GOOGLE*API'.substr(time(), 0, 6));
+		if($auth != getgpc('s')) {
+			$this->error('Access error');
+		}
+	}
+
+	function error($message) {
+		$this->xmlheader();
+		echo "<error>".$message."</error>";
+		$this->xmlfooter();
+	}
+
+	function result($message = 'success') {
+		$this->xmlheader();
+		echo "<result>".$message."</result>";
+		$this->xmlfooter();
+	}
+
+	function xmlheader() {
+		static $isshowed;
+		if(!$isshowed) {
+			@header("Content-type: application/xml");
+			echo "<?xml version=\"1.0\" encoding=\"".CHARSET."\"?>\n<document>\n";
+			echo "<description>Discuz! API For Google Function</description>\n";
+			echo "<version>{$this->version}</version>\n";
+			$isshowed = true;
+		}
+		return true;
+	}
+
+	function xmlfooter($halt = true) {
+		echo "\n</document>\n";
+		$halt && exit();
+	}
+
+	function on_on() {
+		C::t('common_setting')->update('google', 1);
+		$this->result();
+	}
+
+	function on_off() {
+		C::t('common_setting')->update('google', 0);
+		$this->result();
+	}
+
+	function on_gtt() {
+		global $_G;
+		$tids = explode(',', getgpc('t'));
+		$msg = getgpc('msg') ? true : false;
+		$att = getgpc('att') ? true : false;
+		$posts = getgpc('post') ? explode(',', getgpc('post')) : array();
+		if($posts) {
+			$posts[0] = intval($posts[0]);
+			$posts[1] = intval($posts[1]);
+			$posts = sprintf('%s , %s', $posts[0], $posts[1]);
+		}
+		$xmlcontent .= "<threadsdata>\n";
+		if(is_array($tids) && !empty($tids)) {
+			$ftid = $threadlist = $postlist = $attachlist = $pattachlist = array();
+			foreach ($tids as $tid) {
+				if(is_numeric($tid)) {
+					$ftid[] = $tid;
+				}
+			}
+			if($ftid) {
+				$threads = C::t('forum_thread')->fetch_all_by_tid($ftid);
+				foreach($threads as $thread) {
+					$thread['message'] = '';
+					if($msg) {
+						if($thread['posttableid']) {
+							$tablenamelist['forum_post_'.intval($thread['posttableid'])][] = $thread['tid'];
+						} else {
+							$tablenamelist['forum_post'][] = $thread['tid'];
+						}
+					}
+					$threadlist[$thread['tid']] = $thread;
+				}
+				if($msg) {
+					foreach($tablenamelist AS $tablename => $tids) {
+						$pquery = DB::query("SELECT tid, message, pid FROM ".DB::table($tablename)." WHERE tid IN (".dimplode($tids).") AND first=1", 'SILENT');
+						while($pquery && $post = DB::fetch($pquery)) {
+							$threadlist[$post['tid']]['message'] = dhtmlspecialchars($post['message']);
+							if($att) {
+								$_tid = (string)$post['tid'];
+								$attachtablename = 'forum_attachment_'.intval($_tid{strlen($_tid)-1});
+								$aquery = DB::query("SELECT dateline, filename, filesize, attachment, remote, description, readperm, price, isimage, width FROM ".DB::table($attachtablename)." WHERE pid='$post[pid]'");
+								$attachs = '';
+								while($aquery && $attach = DB::fetch($aquery)) {
+									$attach['url'] = (($attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).'forum/').$attach['attachment'];
+									unset($attach['attachment'], $attach['remote']);
+									$attachs .= '<attach>';
+									foreach($attach as $_k => $_v) {
+										$attachs .= '<'.$_k.'>'.$_v.'</'.$_k.'>';
+									}
+									$attachs .= '</attach>';
+									$attachlist[$_tid] = $attachs;
+								}
+							}
+						}
+						if($posts) {
+							$pquery = DB::query("SELECT tid, pid, authorid, message FROM ".DB::table($tablename)." WHERE tid IN (".dimplode($tids).") AND first=0 LIMIT $posts", 'SILENT');
+							while($pquery && $post = DB::fetch($pquery)) {
+								if($att) {
+									$_tid = (string)$post['tid'];
+									$attachtablename = 'forum_attachment_'.intval($_tid{strlen($_tid)-1});
+									$aquery = DB::query("SELECT dateline, filename, filesize, attachment, remote, description, readperm, price, isimage, width FROM ".DB::table($attachtablename)." WHERE pid='$post[pid]'", 'SILENT');
+									$attachs = '';
+									while($aquery && $attach = DB::fetch($aquery)) {
+										$attach['url'] = (($attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']).'forum/').$attach['attachment'];
+										unset($attach['attachment'], $attach['remote']);
+										$attachs .= '<attach>';
+										foreach($attach as $_k => $_v) {
+											$attachs .= '<'.$_k.'>'.$_v.'</'.$_k.'>';
+										}
+										$attachs .= '</attach>';
+									}
+								}
+								$postlist[$post['tid']] .= "<post>\n".
+									"	<pid>".$post['pid']."</pid>\n".
+									"	<authorid>".$post['authorid']."</authorid>\n".
+									"	<message>".dhtmlspecialchars($post['message'])."</message>\n".
+									($attachs ? "		<attachments>$attachs</attachments>\n" : '').
+									"</post>\n";
+							}
+						}
+					}
+					unset($tablenamelist);
+				}
+
+				foreach($threadlist AS $tid => $thread) {
+					$xmlcontent .=
+					"	<thread>\n".
+					"		<tid>$thread[tid]</tid>\n".
+					"		<fid>$thread[fid]</fid>\n".
+					"		<authorid>$thread[authorid]</authorid>\n".
+					"		<subject>$thread[subject]</subject>\n".
+					"		<views>$thread[views]</views>\n".
+					"		<replies>$thread[replies]</replies>\n".
+					"		<special>$thread[replies]</special>\n".
+					"		<posttableid>$thread[posttableid]</posttableid>\n".
+					"		<dateline>$thread[dateline]</dateline>\n".
+					"		<lastpost>$thread[lastpost]</lastpost>\n".
+					($msg ? "		<message>$thread[message]</message>\n" : '').
+					($attachlist[$tid] ? "		<attachments>$attachlist[$tid]</attachments>\n" : '').
+					"	</thread>\n".
+					($postlist[$tid] ? "		<posts>$postlist[$tid]</posts>\n" : '');
+				}
+			}
+
+		}
+		$xmlcontent .= "</threadsdata>";
+		echo $xmlcontent;
+	}
+
+	function on_gts() {
+		$xmlcontent = '';
+		$threads = C::t('forum_thread')->count();
+
+		$posts = 0;
+		loadcache('posttableids');
+		if($_G['cache']['posttableids']) {
+			foreach($_G['cache']['posttableids'] AS $tableid) {
+				$posts += DB::result_first("SELECT COUNT(*) FROM ".DB::table(getposttable($tableid))." LIMIT 1");
+			}
+		}
+		$members = C::t('common_member')->count();
+		$settings = C::t('common_setting')->fetch_all(array('bbname', 'historyposts'));
+		$bbname = $settings['bbname'];
+		$yesterdayposts = $settings['historyposts'];
+		if(!empty($yesterdayposts)) {
+			$yesterdayposts = explode("\t", $yesterdayposts);
+			$yestoday = intval($yesterdayposts[0]);
+			$mostpost = intval($yesterdayposts[1]);
+		} else {
+			$yestoday = $mostpost = 0;
+		}
+
+		$xmlcontent .= "<sitedata>\n".
+		"	<bbname>".dhtmlspecialchars($bbname)."</bbname>\n".
+		"	<threads>$threads</threads>\n".
+		"	<posts>$posts</posts>\n".
+		"	<members>$members</members>\n".
+		"	<yesterdayposts>$yestoday</yesterdayposts>\n".
+		"	<mostposts>$mostpost</mostposts>\n".
+		"</sitedata>\n";
+		echo $xmlcontent;
+
+		echo "<forumdata>\n";
+		$query = C::t('forum_forum')->fetch_all_forum_ignore_access();
+		foreach($query as $forum) {
+			echo "	<$forum[type]>\n".
+			"		<fid>$forum[fid]</fid>\n".
+			"		<fup>$forum[fup]</fup>\n".
+			"		<name>".dhtmlspecialchars($forum['name'])."</name>\n".
+			"		<description>".dhtmlspecialchars($forum['description'])."</description>\n".
+			"		<threads>$forum[threads]</threads>\n".
+			"		<posts>$forum[posts]</posts>\n".
+			"		<todayposts>$forum[todayposts]</todayposts>\n".
+			"	</$forum[type]>\n";
+		}
+
+		echo "</forumdata>";
+
+	}
+
+}
+
+?>

+ 0 - 0
api/google/index.htm


+ 1 - 0
api/index.htm

xqd
@@ -0,0 +1 @@
+ 

+ 23 - 0
api/javascript/advertisement.php

xqd
@@ -0,0 +1,23 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: advertisement.php 25246 2011-11-02 03:34:53Z zhangguosheng $
+ */
+
+header('Expires: '.gmdate('D, d M Y H:i:s', time() + 60).' GMT');
+
+if(!defined('IN_API')) {
+	exit('document.write(\'Access Denied\')');
+}
+
+loadcore();
+
+$adid = $_GET['adid'];
+$data = adshow($adid);
+
+echo 'document.write(\''.preg_replace("/\r\n|\n|\r/", '\n', addcslashes($data, "'\\")).'\');';
+
+?>

+ 0 - 0
api/javascript/index.htm


+ 31 - 0
api/javascript/javascript.php

xqd
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: javascript.php 25246 2011-11-02 03:34:53Z zhangguosheng $
+ */
+
+header('Expires: '.gmdate('D, d M Y H:i:s', time() + 60).' GMT');
+
+if(!defined('IN_API')) {
+	exit('document.write(\'Access Denied\')');
+}
+
+loadcore();
+
+include_once libfile('function/block');
+
+loadcache('blockclass');
+$bid = intval($_GET['bid']);
+block_get_batch($bid);
+$data = block_fetch_content($bid, true);
+
+$search = "/(href|src)\=(\"|')(?![fhtps]+\:)(.*?)\\2/i";
+$replace = "\\1=\\2$_G[siteurl]\\3\\2";
+$data = preg_replace($search, $replace, $data);
+
+echo 'document.write(\''.preg_replace("/\r\n|\n|\r/", '\n', addcslashes($data, "'\\")).'\');';
+
+?>

+ 12 - 0
api/manyou/channel.htm

xqd
@@ -0,0 +1,12 @@
+<!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=gbk" />
+<script language="javascript" type="text/javascript" src="http://static.manyou.com/scripts/my_iframe.js"></script>
+<script language="javascript">
+	var channel = new MyXD.Channel();
+</script>
+</head>
+<body>
+</body>
+</html>

+ 9 - 0
api/manyou/cloud_channel.htm

xqd
@@ -0,0 +1,9 @@
+<!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" />
+		<script language="javascript" type="text/javascript" src="http://discuz.gtimg.cn/cloud/scripts/discuz_channel.js" defer="defer" charset="utf-8"></script>
+	</head>
+	<body>
+	</body>
+</html>

+ 9 - 0
api/manyou/getmaillist.htm

xqd
@@ -0,0 +1,9 @@
+<!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=GBK">
+    <script type="text/javascript" src="http://widgets.manyou.com/misc/scripts/ab.js" charset="UTF-8"></script>
+  </head>
+  <body onload="MYABC.onCBPageLoad()">
+  </body>
+</html>

+ 1 - 0
api/manyou/index.htm

xqd
@@ -0,0 +1 @@
+ 

+ 37 - 0
api/manyou/my.php

xqd
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: my.php 34170 2013-10-28 02:58:29Z nemohou $
+ */
+
+define('IN_API', true);
+define('CURSCRIPT', 'api');
+define('DISABLEDEFENSE', true);
+define('DISABLEXSSCHECK', true);
+require_once('../../source/class/class_core.php');
+require_once('../../source/function/function_home.php');
+
+$cachelist = array();
+$discuz = C::app();
+
+$discuz->cachelist = $cachelist;
+$discuz->init_cron = false;
+$discuz->init_setting = true;
+$discuz->init_user = false;
+$discuz->init_session = false;
+
+$discuz->init();
+
+$siteId = $_G['setting']['my_siteid'];
+$siteKey = $_G['setting']['my_sitekey'];
+$timezone = $_G['setting']['timeoffset'];
+$language = $_SC['language'] ? $_SC['language'] : 'zh_CN';
+$version = $_G['setting']['version'];
+$myAppStatus = $_G['setting']['my_app_status'];
+$mySearchStatus = $_G['setting']['my_search_status'];
+
+$my = Cloud::loadClass('Service_Server_My', array($siteId, $siteKey, $timezone, $version, CHARSET, $language, $myAppStatus, $mySearchStatus));
+$my->run();

+ 21 - 0
api/mobile/index.php

xqd
@@ -0,0 +1,21 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: index.php 33969 2013-09-10 08:32:14Z nemohou $
+ */
+
+if(!empty($_SERVER['QUERY_STRING'])) {
+	$plugin = !empty($_GET['oem']) ? 'mobileoem' : 'mobile';
+	$dir = '../../source/plugin/'.$plugin.'/';
+	chdir($dir);
+	if((isset($_GET['check']) && $_GET['check'] == 'check' || $_SERVER['QUERY_STRING'] == 'check') && is_file('check.php')) {
+		require_once 'check.php';
+	} elseif(is_file('mobile.php')) {
+		require_once 'mobile.php';
+	}
+}
+
+?>

+ 0 - 0
api/remote/index.htm


+ 136 - 0
api/remote/index.php

xqd
@@ -0,0 +1,136 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: index.php 23508 2011-07-21 06:34:40Z cnteacher $
+ */
+
+define('IN_API', true);
+define('CURSCRIPT', 'api_mserver');
+define('APPTYPEID', 200);
+
+$_ENV['remote'] = new discuz_remote();
+$_ENV['remote']->init();
+$_ENV['remote']->loadservice();
+
+class discuz_remote {
+
+	var $mod;
+	var $modobj;
+	var $core;
+
+	function init() {
+
+		require_once('../../source/class/class_core.php');
+
+		$cachelist = array();
+		$this->core = C::app();
+
+		$this->core->cachelist = $cachelist;
+
+
+		$this->core->init_setting = true;
+
+		$this->core->init_cron = false;
+		$this->core->init_user = false;
+		$this->core->init_session = false;
+		$this->core->init_misc = false;
+		$this->core->init_mobile = false;
+
+		$this->core->init();
+
+		define('SERVICE_DIR', getglobal('config/remote/dir') ? getglobal('config/remote/dir') : 'remote');
+		$this->core->reject_robot();
+
+		if (empty($_GET['mod']) || preg_match('/[^0-9a-z]/i', $_GET['mod'])) {
+			$this->mod = 'index';
+		} else {
+			$this->mod = $_GET['mod'];
+		}
+	}
+
+	function loadservice() {
+
+		if(!$this->core->config['remote']['on']) {
+			remote_service::error(1, 'remote service is down');
+		}
+
+		if(!$this->core->config['remote']['appkey']) {
+			remote_service::error(1, 'remote service need a appkey, please edit you config.global.php');
+		}
+
+		if ($this->mod != 'index') {
+
+			$sign = $_GET['sign'];
+			unset($_GET['sign']);
+
+			if (empty($sign) || $sign != $this->sign($_GET)) {
+			}
+		}
+
+		if(!$this->check_timestamp()) {
+			remote_service::error(5, 'your request is time out');
+		}
+
+		$modfile = DISCUZ_ROOT . './api/' . SERVICE_DIR . '/mod/mod_' . $this->mod . '.php';
+		if (!is_file($modfile)) {
+			remote_service::error(3, 'mod file is missing');
+		}
+
+		require $modfile;
+		$classname = 'mod_'.$this->mod;
+		if(class_exists($classname)) {
+			$service = new $classname;
+			$service->run();
+		}
+	}
+
+	function check_timestamp()
+	{
+		if(empty($_GET['timestamp'])) {
+			return 1;
+		}
+
+		$ttl = abs(empty($_GET['ttl']) ? 600 : $_GET['ttl']);
+		$check = abs(TIMESTAMP - $_GET['timestamp']);
+		return $check > $ttl ? 0 : 1;
+	}
+
+	function sign($arg) {
+		$str = '';
+		foreach ($arg as $k => $v) {
+			$str .= $k . '=' . $v . '&';
+		}
+		return md5($str . getglobal('config/remote/appkey'));
+	}
+
+}
+
+class remote_service {
+
+	var $version = '1.0.0';
+	var $config;
+
+	function remote_service() {
+		$this->config = getglobal('config/remote');
+	}
+
+	function run() {
+		remote_service::success('service is done.');
+	}
+
+	function error($code, $msg) {
+		$code = sprintf("%04d", $code);
+		echo $code.':'.ucfirst($msg);
+		exit();
+	}
+
+	function success($msg) {
+		remote_service::error(0, $msg);
+	}
+
+}
+
+?>

+ 0 - 0
api/remote/mod/index.htm


+ 36 - 0
api/remote/mod/mod_cron.php

xqd
@@ -0,0 +1,36 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: mod_cron.php 30364 2012-05-24 07:43:27Z zhangguosheng $
+ */
+
+if(!defined('IN_DISCUZ')) {
+	exit('Access Denied');
+}
+
+class mod_cron extends remote_service
+{
+	function run() {
+
+		if(!$this->config['cron']) {
+			$this->error(100, 'cron service is off. Please check "config.global.php" on your webserver folder.');
+		}
+
+		$discuz = C::app();
+		$discuz->initated = false;
+		$discuz->init_db = false;
+		$discuz->init_setting = true;
+		$discuz->init_user = false;
+		$discuz->init_session = false;
+		$discuz->init_misc = false;
+		$discuz->init_mobile = false;
+		$discuz->init_cron = true;
+		$discuz->init();
+
+		$this->success('Cron work is done');
+	}
+
+}

+ 24 - 0
api/remote/mod/mod_index.php

xqd
@@ -0,0 +1,24 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: mod_index.php 30462 2012-05-30 03:27:10Z zhangguosheng $
+ */
+
+if(!defined('IN_DISCUZ')) {
+	exit('Access Denied');
+}
+
+class mod_index extends remote_service {
+
+	var $config;
+	function mod_index() {
+		parent::remote_service();
+	}
+
+	function run() {
+		$this->success('Discuz! Remote Service API '.$this->version);
+	}
+}

+ 296 - 0
api/trade/api_alipay.php

xqd
@@ -0,0 +1,296 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: api_alipay.php 31606 2012-09-13 07:26:35Z monkey $
+ */
+
+define('IN_API', true);
+define('CURSCRIPT', 'api');
+
+if(!defined('IN_DISCUZ')) {
+	exit('Access Denied');
+}
+list($ec_contract, $ec_securitycode, $ec_partner, $ec_creditdirectpay) = explode("\t", authcode($_G['setting']['ec_contract'], 'DECODE', $_G['config']['security']['authkey']));
+
+define('DISCUZ_PARTNER', $ec_partner);
+define('DISCUZ_SECURITYCODE', $ec_securitycode);
+define('DISCUZ_DIRECTPAY', $ec_creditdirectpay);
+
+define('STATUS_SELLER_SEND', 4);
+define('STATUS_WAIT_BUYER', 5);
+define('STATUS_TRADE_SUCCESS', 7);
+define('STATUS_REFUND_CLOSE', 17);
+
+function credit_payurl($price, &$orderid) {
+	global $_G;
+
+	$orderid = dgmdate(TIMESTAMP, 'YmdHis').random(18);
+
+	$args = array(
+		'subject' 		=> $_G['setting']['bbname'].' - '.$_G['member']['username'].' - '.lang('forum/misc', 'credit_payment'),
+		'body' 			=> lang('forum/misc', 'credit_forum_payment').' '.$_G['setting']['extcredits'][$_G['setting']['creditstrans']]['title'].' '.intval($price * $_G['setting']['ec_ratio']).' '.$_G['setting']['extcredits'][$_G['setting']['creditstrans']]['unit'],
+		'service' 		=> 'trade_create_by_buyer',
+		'partner' 		=> DISCUZ_PARTNER,
+		'notify_url' 		=> $_G['siteurl'].'api/trade/notify_credit.php',
+		'return_url' 		=> $_G['siteurl'].'api/trade/notify_credit.php',
+		'show_url'		=> $_G['siteurl'],
+		'_input_charset' 	=> CHARSET,
+		'out_trade_no' 		=> $orderid,
+		'price' 		=> $price,
+		'quantity' 		=> 1,
+		'seller_email' 		=> $_G['setting']['ec_account'],
+		'extend_param'	=> 'isv^dz11'
+	);
+	if(DISCUZ_DIRECTPAY) {
+		$args['service'] = 'create_direct_pay_by_user';
+		$args['payment_type'] = '1';
+	} else {
+		$args['logistics_type'] = 'EXPRESS';
+		$args['logistics_fee'] = 0;
+		$args['logistics_payment'] = 'SELLER_PAY';
+		$args['payment_type'] = 1;
+	}
+	return trade_returnurl($args);
+}
+
+function invite_payurl($amount, $price, &$orderid) {
+	global $_G;
+
+	$orderid = dgmdate(TIMESTAMP, 'YmdHis').random(18);
+
+	$args = array(
+		'subject' 		=> $_G['setting']['bbname'].' - '.lang('forum/misc', 'invite_payment'),
+		'body' 			=> lang('forum/misc', 'invite_forum_payment').' '.intval($amount).' '.lang('forum/misc', 'invite_forum_payment_unit'),
+		'service' 		=> 'trade_create_by_buyer',
+		'partner' 		=> DISCUZ_PARTNER,
+		'notify_url' 		=> $_G['siteurl'].'api/trade/notify_invite.php',
+		'return_url' 		=> $_G['siteurl'].'api/trade/notify_invite.php',
+		'show_url'		=> $_G['siteurl'],
+		'_input_charset' 	=> CHARSET,
+		'out_trade_no' 		=> $orderid,
+		'price' 		=> $price,
+		'quantity' 		=> 1,
+		'seller_email' 		=> $_G['setting']['ec_account'],
+		'extend_param'	=> 'isv^dz11'
+	);
+	if(DISCUZ_DIRECTPAY) {
+		$args['service'] = 'create_direct_pay_by_user';
+		$args['payment_type'] = '1';
+	} else {
+		$args['logistics_type'] = 'EXPRESS';
+		$args['logistics_fee'] = 0;
+		$args['logistics_payment'] = 'SELLER_PAY';
+		$args['payment_type'] = 1;
+	}
+	return trade_returnurl($args);
+}
+
+function trade_payurl($pay, $trade, $tradelog) {
+	global $_G;
+
+	$args = array(
+		'service' 		=> 'trade_create_by_buyer',
+		'partner' 		=> DISCUZ_PARTNER,
+		'notify_url' 		=> $_G['siteurl'].'api/trade/notify_trade.php',
+		'return_url' 		=> $_G['siteurl'].'api/trade/notify_trade.php',
+		'show_url'		=> $tradelog['tid'] ? $_G['siteurl'].'forum.php?mod=viewthread&do=tradeinfo&tid='.$tradelog['tid'].'&pid='.$tradelog['pid'] : $_G['siteurl'],
+		'_input_charset' 	=> CHARSET,
+		'subject' 		=> $trade['subject'],
+		'body' 			=> $trade['subject'],
+		'out_trade_no' 		=> $tradelog['orderid'],
+		'price' 		=> $tradelog['baseprice'],
+		'quantity' 		=> $tradelog['number'],
+		'logistics_type' 	=> $pay['logistics_type'],
+		'logistics_fee' 	=> $tradelog['transportfee'],
+		'logistics_payment' 	=> $pay['transport'],
+		'payment_type' 		=> $trade['itemtype'],
+		'seller_email' 		=> $trade['account'],
+		'extend_param'	=> 'isv^dz11'
+	);
+
+	if($pay['logistics_type'] == 'VIRTUAL') {
+		if(DISCUZ_DIRECTPAY) {
+			$args['service'] = 'create_direct_pay_by_user';
+			$args['payment_type'] = '1';
+			unset($args['logistics_type'], $args['logistics_fee'], $args['logistics_payment']);
+		} else {
+			$args['logistics_type'] = 'EXPRESS';
+			$args['logistics_payment'] = 'SELLER_PAY';
+			$args['payment_type'] = '1';
+		}
+	}
+	return trade_returnurl($args);
+}
+
+function trade_returnurl($args) {
+	global $_G;
+	ksort($args);
+	$urlstr = $sign = '';
+	foreach($args as $key => $val) {
+		$sign .= '&'.$key.'='.$val;
+		$urlstr .= $key.'='.rawurlencode($val).'&';
+	}
+	$sign = substr($sign, 1);
+	$sign = md5($sign.DISCUZ_SECURITYCODE);
+	return 'https://www.alipay.com/cooperate/gateway.do?'.$urlstr.'sign='.$sign.'&sign_type=MD5';
+}
+
+function trade_notifycheck($type) {
+	global $_G;
+	if(!empty($_POST)) {
+		$notify = $_POST;
+		$location = FALSE;
+	} elseif(!empty($_GET)) {
+		$notify = $_GET;
+		$location = TRUE;
+	} else {
+		exit('Access Denied');
+	}
+	unset($notify['diy']);
+	if(dfsockopen("http://notify.alipay.com/trade/notify_query.do?partner=".DISCUZ_PARTNER."&notify_id=".$notify['notify_id'], 60) !== 'true') {
+		exit('Access Denied');
+	}
+
+	if($type == 'trade') {
+		$urlstr = '';
+		foreach($notify as $key => $val) {
+			$urlstr .= $key.'='.rawurlencode($val).'&';
+		}
+	} else {
+		if(!DISCUZ_SECURITYCODE) {
+			exit('Access Denied');
+		}
+		ksort($notify);
+		$sign = '';
+		foreach($notify as $key => $val) {
+			if($key != 'sign' && $key != 'sign_type') $sign .= "&$key=$val";
+		}
+		if($notify['sign'] != md5(substr($sign,1).DISCUZ_SECURITYCODE)) {
+			exit('Access Denied');
+		}
+	}
+
+	if(($type == 'credit' || $type == 'invite') && (!DISCUZ_DIRECTPAY && $notify['notify_type'] == 'trade_status_sync' && ($notify['trade_status'] == 'WAIT_SELLER_SEND_GOODS' || $notify['trade_status'] == 'TRADE_FINISHED') || DISCUZ_DIRECTPAY && ($notify['trade_status'] == 'TRADE_FINISHED' || $notify['trade_status'] == 'TRADE_SUCCESS'))
+		|| $type == 'trade' && $notify['notify_type'] == 'trade_status_sync') {
+		return array(
+			'validator'	=> TRUE,
+			'status' 	=> trade_getstatus(!empty($notify['refund_status']) ? $notify['refund_status'] : $notify['trade_status'], 1),
+			'order_no' 	=> $notify['out_trade_no'],
+			'price' 	=> !DISCUZ_DIRECTPAY && $notify['price'] ? $notify['price'] : $notify['total_fee'],
+			'trade_no'	=> $notify['trade_no'],
+			'notify'	=> 'success',
+			'location'	=> $location
+			);
+	} else {
+		return array(
+			'validator'	=> FALSE,
+			'notify'	=> 'fail',
+			'location'	=> $location
+			);
+	}
+}
+
+function trade_getorderurl($orderid) {
+	return 'https://www.alipay.com/trade/query_trade_detail.htm?trade_no='.$orderid;
+}
+
+function trade_typestatus($method, $status = -1) {
+	switch($method) {
+		case 'buytrades'	: $methodvalue = array(1, 5, 11, 12);break;
+		case 'selltrades'	: $methodvalue = array(2, 4, 10, 13);break;
+		case 'successtrades'	: $methodvalue = array(7);break;
+		case 'tradingtrades'	: $methodvalue = array(1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15, 16);break;
+		case 'closedtrades'	: $methodvalue = array(8, 17);break;
+		case 'refundsuccess'	: $methodvalue = array(17);break;
+		case 'refundtrades'	: $methodvalue = array(14, 15, 16, 17, 18);break;
+		case 'unstarttrades'	: $methodvalue = array(0);break;
+		case 'eccredittrades'	: $methodvalue = array(7, 17);break;
+	}
+	return $status != -1 ? in_array($status, $methodvalue) : $methodvalue;
+}
+
+function trade_getstatus($key, $method = 2) {
+	$language = lang('forum/misc');
+	$status[1] = array(
+		'WAIT_BUYER_PAY' => 1,
+		'WAIT_SELLER_CONFIRM_TRADE' => 2,
+		'WAIT_SYS_CONFIRM_PAY' => 3,
+		'WAIT_SELLER_SEND_GOODS' => 4,
+		'WAIT_BUYER_CONFIRM_GOODS' => 5,
+		'WAIT_SYS_PAY_SELLER' => 6,
+		'TRADE_FINISHED' => 7,
+		'TRADE_CLOSED' => 8,
+		'WAIT_SELLER_AGREE' => 10,
+		'SELLER_REFUSE_BUYER' => 11,
+		'WAIT_BUYER_RETURN_GOODS' => 12,
+		'WAIT_SELLER_CONFIRM_GOODS' => 13,
+		'WAIT_ALIPAY_REFUND' => 14,
+		'ALIPAY_CHECK' => 15,
+		'OVERED_REFUND' => 16,
+		'REFUND_SUCCESS' => 17,
+		'REFUND_CLOSED' => 18
+	);
+	$status[2] = array(
+		0  => $language['trade_unstart'],
+		1  => $language['trade_waitbuyerpay'],
+		2  => $language['trade_waitsellerconfirm'],
+		3  => $language['trade_sysconfirmpay'],
+		4  => $language['trade_waitsellersend'],
+		5  => $language['trade_waitbuyerconfirm'],
+		6  => $language['trade_syspayseller'],
+		7  => $language['trade_finished'],
+		8  => $language['trade_closed'],
+		10 => $language['trade_waitselleragree'],
+		11 => $language['trade_sellerrefusebuyer'],
+		12 => $language['trade_waitbuyerreturn'],
+		13 => $language['trade_waitsellerconfirmgoods'],
+		14 => $language['trade_waitalipayrefund'],
+		15 => $language['trade_alipaycheck'],
+		16 => $language['trade_overedrefund'],
+		17 => $language['trade_refundsuccess'],
+		18 => $language['trade_refundclosed']
+	);
+	return $method == -1 ? $status[2] : $status[$method][$key];
+}
+
+function trade_setprice($data, &$price, &$pay, &$transportfee) {
+	if($data['transport'] == 1) {
+		$pay['transport'] = 'SELLER_PAY';
+	} elseif($data['transport'] == 2) {
+		$pay['transport'] = 'BUYER_PAY';
+	} elseif($data['transport'] == 3) {
+		$pay['logistics_type'] = 'VIRTUAL';
+	} else {
+		$pay['transport'] = 'BUYER_PAY_AFTER_RECEIVE';
+	}
+
+	if($data['transport'] != 3) {
+		if($data['fee'] == 1) {
+			$pay['logistics_type'] = 'POST';
+			$pay['logistics_fee'] = $data['trade']['ordinaryfee'];
+			if($data['transport'] == 2) {
+				$price = $price + $data['trade']['ordinaryfee'];
+				$transportfee = $data['trade']['ordinaryfee'];
+			}
+		} elseif($data['fee'] == 2) {
+			$pay['logistics_type'] = 'EMS';
+			$pay['logistics_fee'] = $data['trade']['emsfee'];
+			if($data['transport'] == 2) {
+				$price = $price + $data['trade']['emsfee'];
+				$transportfee = $data['trade']['emsfee'];
+			}
+		} else {
+			$pay['logistics_type'] = 'EXPRESS';
+			$pay['logistics_fee'] = $data['trade']['expressfee'];
+			if($data['transport'] == 2) {
+				$price = $price + $data['trade']['expressfee'];
+				$transportfee = $data['trade']['expressfee'];
+			}
+		}
+	}
+}
+
+?>

+ 582 - 0
api/trade/api_tenpay.php

xqd
@@ -0,0 +1,582 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: api_tenpay.php 32222 2012-12-03 02:28:43Z monkey $
+ */
+
+
+define('IN_API', true);
+define('CURSCRIPT', 'api');
+
+if(!defined('IN_DISCUZ')) {
+	exit('Access Denied');
+}
+
+define('DISCUZ_PARTNER', $_G['setting']['ec_tenpay_bargainor']);
+define('DISCUZ_SECURITYCODE', $_G['setting']['ec_tenpay_key']);
+define('DISCUZ_AGENTID', '1204737401');
+
+define('DISCUZ_TENPAY_OPENTRANS_CHNID', $_G['setting']['ec_tenpay_opentrans_chnid']);
+define('DISCUZ_TENPAY_OPENTRANS_KEY', $_G['setting']['ec_tenpay_opentrans_key']);
+
+define('STATUS_SELLER_SEND', 3);
+define('STATUS_WAIT_BUYER', 4);
+define('STATUS_TRADE_SUCCESS', 5);
+define('STATUS_REFUND_CLOSE', 9);
+
+class RequestHandler {
+
+	var $gateUrl;
+
+	var $key;
+
+	var $parameters;
+
+	var $debugInfo;
+
+	function __construct() {
+		$this->RequestHandler();
+	}
+
+	function RequestHandler() {
+		$this->gateUrl = "https://www.tenpay.com/cgi-bin/med/show_opentrans.cgi";
+		$this->key = "";
+		$this->parameters = array();
+		$this->debugInfo = "";
+	}
+
+	function init() {
+	}
+
+	function getGateURL() {
+		return $this->gateUrl;
+	}
+
+	function setGateURL($gateUrl) {
+		$this->gateUrl = $gateUrl;
+	}
+
+	function getKey() {
+		return $this->key;
+	}
+
+	function setKey($key) {
+		$this->key = $key;
+	}
+
+	function getParameter($parameter) {
+		return $this->parameters[$parameter];
+	}
+
+	function setParameter($parameter, $parameterValue) {
+		$this->parameters[$parameter] = $parameterValue;
+	}
+
+	function getAllParameters() {
+		$this->createSign();
+
+		return $this->parameters;
+	}
+
+	function getRequestURL() {
+		$this->createSign();
+		$reqPar = "";
+		ksort($this->parameters);
+		foreach($this->parameters as $k => $v) {
+			$reqPar .= $k . "=" . urlencode($v) . "&";
+		}
+
+		$reqPar = substr($reqPar, 0, strlen($reqPar)-1);
+		$requestURL = $this->getGateURL() . "?" . $reqPar;
+		return $requestURL;
+
+	}
+
+	function getDebugInfo() {
+		return $this->debugInfo;
+	}
+
+	function doSend() {
+		header("Location:" . $this->getRequestURL());
+		exit;
+	}
+
+	function createSign() {
+		$signPars = "";
+		ksort($this->parameters);
+		foreach($this->parameters as $k => $v) {
+			if("" !== $v && "sign" !== $k) {
+				$signPars .= $k . "=" . $v . "&";
+			}
+		}
+		$signPars .= "key=" . $this->getKey();
+		$sign = strtolower(md5($signPars));
+		$this->setParameter("sign", $sign);
+		$this->_setDebugInfo($signPars . " => sign:" . $sign);
+
+	}
+
+	function _setDebugInfo($debugInfo) {
+		$this->debugInfo = $debugInfo;
+	}
+
+}
+
+class ResponseHandler  {
+
+	var $key;
+
+	var $parameters;
+
+	var $debugInfo;
+
+	function __construct() {
+		$this->ResponseHandler();
+	}
+
+	function ResponseHandler() {
+		$this->key = "";
+		$this->parameters = array();
+		$this->debugInfo = "";
+
+		foreach($_GET as $k => $v) {
+			$this->setParameter($k, $v);
+		}
+		foreach($_POST as $k => $v) {
+			$this->setParameter($k, $v);
+		}
+	}
+
+	function getKey() {
+		return $this->key;
+	}
+
+	function setKey($key) {
+		$this->key = $key;
+	}
+
+	function getParameter($parameter) {
+		return $this->parameters[$parameter];
+	}
+
+	function setParameter($parameter, $parameterValue) {
+		$this->parameters[$parameter] = $parameterValue;
+	}
+
+	function getAllParameters() {
+		return $this->parameters;
+	}
+
+	function isTenpaySign() {
+		$signPars = "";
+
+		ksort($this->parameters);
+		foreach($this->parameters as $k => $v) {
+			if("sign" !== $k && "" !== $v) {
+				$signPars .= $k . "=" . $v . "&";
+			}
+		}
+		$signPars .= "key=" . $this->getKey();
+		$sign = strtolower(md5($signPars));
+		$tenpaySign = strtolower($this->getParameter("sign"));
+		$this->_setDebugInfo($signPars . " => sign:" . $sign .
+				" tenpaySign:" . $this->getParameter("sign"));
+
+		return $sign == $tenpaySign;
+
+	}
+
+	function getDebugInfo() {
+		return $this->debugInfo;
+	}
+
+	function _setDebugInfo($debugInfo) {
+		$this->debugInfo = $debugInfo;
+	}
+}
+
+
+class MediPayRequestHandler extends RequestHandler {
+
+	function __construct() {
+		$this->MediPayRequestHandler();
+	}
+
+	function MediPayRequestHandler() {
+		$this->setGateURL("https://www.tenpay.com/cgi-bin/med/show_opentrans.cgi");
+	}
+
+	function init() {
+		$this->setParameter("attach", "1");
+
+		$this->setParameter("chnid",  "");
+
+		$this->setParameter("cmdno", "12");
+
+		$this->setParameter("encode_type", "1");
+
+		$this->setParameter("mch_desc", "");
+
+		$this->setParameter("mch_name", "");
+
+		$this->setParameter("mch_price",  "");
+
+		$this->setParameter("mch_returl",  "");
+
+		$this->setParameter("mch_type",  "");
+
+		$this->setParameter("mch_vno",  "");
+
+		$this->setParameter("need_buyerinfo",  "");
+
+		$this->setParameter("seller",  "");
+
+		$this->setParameter("show_url",  "");
+
+		$this->setParameter("transport_desc",  "");
+
+		$this->setParameter("transport_fee",  "");
+
+		$this->setParameter("version",  "2");
+
+		$this->setParameter("sign",  "");
+
+	}
+
+}
+
+class MediPayResponseHandler extends ResponseHandler {
+
+	function doShow() {
+		$strHtml = "<html><head>\r\n" .
+			"<meta name=\"TENCENT_ONLINE_PAYMENT\" content=\"China TENCENT\">" .
+			"</head><body></body></html>";
+
+		echo $strHtml;
+
+		exit;
+	}
+	function isTenpaySign() {
+
+		$signParameterArray = array(
+			'attach',
+			'buyer_id',
+			'cft_tid',
+			'chnid',
+			'cmdno',
+			'mch_vno',
+			'retcode',
+			'seller',
+			'status',
+			'total_fee',
+			'trade_price',
+			'transport_fee',
+			'version'
+		);
+
+		ksort($signParameterArray);
+
+		foreach($signParameterArray as $k ) {
+			$v = $this->getParameter($k);
+			if(isset($v)) {
+				$signPars .= $k . "=" . urldecode($v) . "&";
+			}
+		}
+
+		$signPars .= "key=" . $this->getKey();
+
+		$sign = strtolower(md5($signPars));
+
+		$tenpaySign = strtolower($this->getParameter("sign"));
+
+		$this->_setDebugInfo($signPars . " => sign:" . $sign .
+				" tenpaySign:" . $this->getParameter("sign"));
+
+		return $sign == $tenpaySign;
+
+	}
+
+}
+
+function credit_payurl($price, &$orderid, $bank = 'DEFAULT') {
+	include_once DISCUZ_ROOT . './source/class/class_chinese.php';
+	global $_G;
+
+	$date = dgmdate(TIMESTAMP, 'YmdHis');
+	$suffix = dgmdate(TIMESTAMP, 'His').rand(1000, 9999);
+	$transaction_id = DISCUZ_PARTNER.$date.$suffix;
+
+	$orderid = dgmdate(TIMESTAMP, 'YmdHis').random(14);
+
+	$chinese = new Chinese(strtoupper(CHARSET), 'GBK');
+	$subject = $chinese->Convert(lang('forum/misc', 'credit_forum_payment').' '.$_G['setting']['extcredits'][$_G['setting']['creditstrans']]['title'].' '.intval($price * $_G['setting']['ec_ratio']).' '.$_G['setting']['extcredits'][$_G['setting']['creditstrans']]['unit']);
+
+	$reqHandler = new RequestHandler();
+	$reqHandler->setGateURL("https://gw.tenpay.com/gateway/pay.htm");
+
+	$reqHandler->init();
+	$reqHandler->setKey(DISCUZ_SECURITYCODE);
+
+	$reqHandler->setParameter("partner", DISCUZ_PARTNER);
+	$reqHandler->setParameter("out_trade_no", $orderid);
+	$reqHandler->setParameter("total_fee", $price * 100);
+	$reqHandler->setParameter("return_url", $_G['siteurl'].'api/trade/notify_credit.php');
+	$reqHandler->setParameter("notify_url", $_G['siteurl'].'api/trade/notify_credit.php');
+	$reqHandler->setParameter("body", $subject);
+	$reqHandler->setParameter("bank_type", $bank);
+
+	$reqHandler->setParameter("spbill_create_ip", $_G['clientip']);
+	$reqHandler->setParameter("fee_type", "1");
+	$reqHandler->setParameter("subject", $subject);
+
+	$reqHandler->setParameter("sign_type", "MD5");
+	$reqHandler->setParameter("service_version", "1.0");
+	$reqHandler->setParameter("input_charset", "GBK");
+	$reqHandler->setParameter("sign_key_index", "1");
+
+	$reqHandler->setParameter("attach", "tenpay");
+	$reqHandler->setParameter("time_start", $date);
+	$reqHandler->setParameter("trade_mode","1");
+	$reqHandler->setParameter("trans_type","1");
+	$reqHandler->setParameter("agentid", DISCUZ_AGENTID);
+	$reqHandler->setParameter("agent_type","2");
+
+	$reqUrl = $reqHandler->getRequestURL();
+	return $reqUrl;
+}
+
+function trade_payurl($pay, $trade, $tradelog) {
+	global $_G;
+
+	$key = DISCUZ_TENPAY_OPENTRANS_KEY;
+
+	$chnid = DISCUZ_TENPAY_OPENTRANS_CHNID;
+
+	$seller = $trade['tenpayaccount'];
+
+	$mch_desc = $trade['subject'];
+
+	$mch_name = $trade['subject'];
+
+	$mch_price = $tradelog['baseprice'] * $tradelog['number'] * 100;
+
+	$mch_returl = $_G['siteurl'].'api/trade/notify_trade.php';
+
+	$mch_vno = $tradelog['orderid'];
+
+	$show_url = $_G['siteurl'].'api/trade/notify_trade.php';
+
+	$transport_desc = $pay['logistics_type'];
+
+	$transport_fee = $tradelog['transportfee'] * 100;
+
+	if(strtolower(CHARSET) == 'gbk') {
+		$encode_type = '1';
+	} else {
+		$encode_type = '2';
+	}
+
+	$mch_type = '1';
+	$need_buyerinfo = '1';
+	if($pay['logistics_type'] == 'VIRTUAL') {
+		$mch_type = '2';
+		$need_buyerinfo = '2';
+	}
+
+	$reqHandler = new MediPayRequestHandler();
+	$reqHandler->init();
+	$reqHandler->setKey($key);
+
+	$reqHandler->setParameter("chnid", $chnid);
+	$reqHandler->setParameter("encode_type", $encode_type);
+	$reqHandler->setParameter("mch_desc", $mch_desc);
+	$reqHandler->setParameter("mch_name", $mch_name);
+	$reqHandler->setParameter("mch_price", $mch_price);
+	$reqHandler->setParameter("mch_returl", $mch_returl);
+	$reqHandler->setParameter("mch_type", $mch_type);
+	$reqHandler->setParameter("mch_vno", $mch_vno);
+	$reqHandler->setParameter("need_buyerinfo", $need_buyerinfo);
+	$reqHandler->setParameter("seller", $seller);
+	$reqHandler->setParameter("show_url",	$show_url);
+	$reqHandler->setParameter("transport_desc", $transport_desc);
+	$reqHandler->setParameter("transport_fee", $transport_fee);
+	$reqHandler->setParameter('attach', 'tenpay');
+
+	$reqUrl = $reqHandler->getRequestURL();
+	return $reqUrl;
+}
+
+
+function invite_payurl($amount, $price, &$orderid, $bank = 'DEFAULT') {
+	include_once DISCUZ_ROOT . './source/class/class_chinese.php';
+	global $_G;
+
+	$date = dgmdate(TIMESTAMP, 'YmdHis');
+	$suffix = dgmdate(TIMESTAMP, 'His').rand(1000, 9999);
+	$transaction_id = DISCUZ_PARTNER.$date.$suffix;
+
+	$orderid = dgmdate(TIMESTAMP, 'YmdHis').random(14);
+
+	$chinese = new Chinese(strtoupper(CHARSET), 'GBK');
+	$subject = $chinese->Convert(lang('forum/misc', 'invite_forum_payment').' '.intval($amount).' '.lang('forum/misc', 'invite_forum_payment_unit'));
+
+	$reqHandler = new RequestHandler();
+	$reqHandler->setGateURL("https://gw.tenpay.com/gateway/pay.htm");
+
+	$reqHandler->init();
+	$reqHandler->setKey(DISCUZ_SECURITYCODE);
+
+	$reqHandler->setParameter("partner", DISCUZ_PARTNER);
+	$reqHandler->setParameter("out_trade_no", $orderid);
+	$reqHandler->setParameter("total_fee", $price * 100);
+	$reqHandler->setParameter("return_url", $_G['siteurl'].'api/trade/notify_invite.php');
+	$reqHandler->setParameter("notify_url", $_G['siteurl'].'api/trade/notify_invite.php');
+	$reqHandler->setParameter("body", $subject);
+	$reqHandler->setParameter("bank_type", $bank);
+
+	$reqHandler->setParameter("spbill_create_ip", $_G['clientip']);
+	$reqHandler->setParameter("fee_type", "1");
+	$reqHandler->setParameter("subject", $subject);
+
+	$reqHandler->setParameter("sign_type", "MD5");
+	$reqHandler->setParameter("service_version", "1.0");
+	$reqHandler->setParameter("input_charset", "GBK");
+	$reqHandler->setParameter("sign_key_index", "1");
+
+	$reqHandler->setParameter("attach", "tenpay");
+	$reqHandler->setParameter("time_start", $date);
+	$reqHandler->setParameter("trade_mode","1");
+	$reqHandler->setParameter("trans_type","1");
+	$reqHandler->setParameter("agentid", DISCUZ_AGENTID);
+	$reqHandler->setParameter("agent_type","2");
+
+	$reqUrl = $reqHandler->getRequestURL();
+	return $reqUrl;
+}
+function trade_notifycheck($type) {
+	global $_G;
+
+	if($type == 'credit' || $type == 'invite') {
+		if(!DISCUZ_SECURITYCODE) {
+			exit('Access Denied');
+		}
+		$resHandler = new ResponseHandler();
+		$resHandler->setKey(DISCUZ_SECURITYCODE);
+
+		$resHandler->setParameter("bankname", "");
+	} else {
+		if(!DISCUZ_TENPAY_OPENTRANS_KEY) {
+			exit('Access Denied');
+		}
+		$resHandler = new MediPayResponseHandler();
+		$resHandler->setKey(DISCUZ_TENPAY_OPENTRANS_KEY);
+	}
+	if($type == 'credit' || $type == 'invite') {
+		if($resHandler->isTenpaySign() && DISCUZ_PARTNER == $_GET['partner']) {
+			return array(
+				'validator'	=> isset($_GET['trade_state']) ? !$_GET['trade_state'] : 0,
+				'order_no' 	=> $_GET['out_trade_no'],
+				'trade_no'	=> isset($_GET['transaction_id']) ? $_GET['transaction_id'] : '',
+				'price' 	=> $_GET['total_fee'] / 100,
+				'bargainor_id' => $_GET['partner'],
+				'location'	=> true,
+				);
+		}
+	} elseif($type == 'trade') {
+		if($resHandler->isTenpaySign()) {
+			return array(
+				'validator' => $resHandler->getParameter('retcode') == '0',
+				'order_no' => $resHandler->getParameter('mch_vno'),
+				'trade_no' => $resHandler->getParameter('cft_tid'),
+				'price' => $resHandler->getParameter('total_fee') / 100,
+				'status' => $resHandler->getParameter('status'),
+				'location'	=> true,
+			);
+		}
+	} else {
+		return array(
+			'validator'	=> FALSE,
+			'location'	=> 'forum.php?mod=memcp&action=credits&operation=addfunds&return=fail'
+		);
+	}
+}
+
+function trade_setprice($data, &$price, &$pay, &$transportfee) {
+	if($data['transport'] == 3) {
+		$pay['logistics_type'] = 'VIRTUAL';
+	}
+
+	if($data['transport'] != 3) {
+		if($data['fee'] == 1) {
+			$pay['logistics_type'] = 'POST';
+			$pay['logistics_fee'] = $data['trade']['ordinaryfee'];
+			if($data['transport'] == 2) {
+				$price = $price + $data['trade']['ordinaryfee'];
+				$transportfee = $data['trade']['ordinaryfee'];
+			}
+		} elseif($data['fee'] == 2) {
+			$pay['logistics_type'] = 'EMS';
+			$pay['logistics_fee'] = $data['trade']['emsfee'];
+			if($data['transport'] == 2) {
+				$price = $price + $data['trade']['emsfee'];
+				$transportfee = $data['trade']['emsfee'];
+			}
+		} else {
+			$pay['logistics_type'] = 'EXPRESS';
+			$pay['logistics_fee'] = $data['trade']['expressfee'];
+			if($data['transport'] == 2) {
+				$price = $price + $data['trade']['expressfee'];
+				$transportfee = $data['trade']['expressfee'];
+			}
+		}
+	}
+}
+
+function trade_getorderurl($orderid) {
+	return "https://www.tenpay.com/med/tradeDetail.shtml?b=1&trans_id=$orderid";
+}
+
+function trade_typestatus($method, $status = -1) {
+	switch($method) {
+		case 'buytrades'	: $methodvalue = array(1, 3);break;
+		case 'selltrades'	: $methodvalue = array(2, 4);break;
+		case 'successtrades'	: $methodvalue = array(5);break;
+		case 'tradingtrades'	: $methodvalue = array(1, 2, 3, 4);break;
+		case 'closedtrades'	: $methodvalue = array(6, 10);break;
+		case 'refundsuccess'	: $methodvalue = array(9);break;
+		case 'refundtrades'	: $methodvalue = array(9, 10);break;
+		case 'unstarttrades'	: $methodvalue = array(0);break;
+	}
+	return $status != -1 ? in_array($status, $methodvalue) : $methodvalue;
+}
+
+function trade_getstatus($key, $method = 2) {
+	$language = lang('forum/misc');
+	$status[1] = array(
+		'WAIT_BUYER_PAY' => 1,
+		'WAIT_SELLER_CONFIRM_TRADE' => 2,
+		'WAIT_SELLER_SEND_GOODS' => 3,
+		'WAIT_BUYER_CONFIRM_GOODS' => 4,
+		'TRADE_FINISHED' => 5,
+		'TRADE_CLOSED' => 6,
+		'REFUND_SUCCESS' => 9,
+		'REFUND_CLOSED' => 10,
+	);
+	$status[2] = array(
+		0  => $language['trade_unstart'],
+		1  => $language['trade_waitbuyerpay'],
+		2  => $language['trade_waitsellerconfirm'],
+		3  => $language['trade_waitsellersend'],
+		4  => $language['trade_waitbuyerconfirm'],
+		5  => $language['trade_finished'],
+		6  => $language['trade_closed'],
+		9 => $language['trade_refundsuccess'],
+		10 => $language['trade_refundclosed']
+	);
+	return $method == -1 ? $status[2] : $status[$method][$key];
+}
+
+?>

+ 0 - 0
api/trade/index.htm


+ 73 - 0
api/trade/notify_credit.php

xqd
@@ -0,0 +1,73 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: notify_credit.php 34251 2013-11-25 03:10:11Z nemohou $
+ */
+
+define('IN_API', true);
+define('CURSCRIPT', 'api');
+define('DISABLEXSSCHECK', true);
+
+require '../../source/class/class_core.php';
+require '../../source/function/function_forum.php';
+
+$discuz = C::app();
+$discuz->init();
+
+$apitype = empty($_GET['attach']) || !preg_match('/^[a-z0-9]+$/i', $_GET['attach']) ? 'alipay' : $_GET['attach'];
+require_once DISCUZ_ROOT.'./api/trade/api_'.$apitype.'.php';
+$PHP_SELF = $_SERVER['PHP_SELF'];
+$_G['siteurl'] = dhtmlspecialchars('http://'.$_SERVER['HTTP_HOST'].preg_replace("/\/+(api\/trade)?\/*$/i", '', substr($PHP_SELF, 0, strrpos($PHP_SELF, '/'))).'/');
+$notifydata = trade_notifycheck('credit');
+
+if($notifydata['validator']) {
+
+	$orderid = $notifydata['order_no'];
+	$postprice = $notifydata['price'];
+	$order = C::t('forum_order')->fetch($orderid);
+	$order = array_merge($order, C::t('common_member')->fetch_by_username($order['uid']));
+	if($order && floatval($postprice) == floatval($order['price']) && ($apitype == 'tenpay' || strtolower($_G['setting']['ec_account']) == strtolower($_REQUEST['seller_email']))) {
+
+		if($order['status'] == 1) {
+			C::t('forum_order')->update($orderid, array('status' => '2', 'buyer' => "$notifydata[trade_no]\t$apitype", 'confirmdate' => $_G['timestamp']));
+			updatemembercount($order['uid'], array($_G['setting']['creditstrans'] => $order['amount']), 1, 'AFD', $order['uid']);
+			updatecreditbyaction($action, $uid = 0, $extrasql = array(), $needle = '', $coef = 1, $update = 1, $fid = 0);
+			C::t('forum_order')->delete_by_submitdate($_G['timestamp']-60*86400);
+			$submitdate = dgmdate($order['submitdate']);
+			$confirmdate = dgmdate(TIMESTAMP);
+
+			notification_add($order['uid'], 'credit', 'addfunds', array(
+				'orderid' => $order['orderid'],
+				'price' => $order['price'],
+				'value' => $_G['setting']['extcredits'][$_G['setting']['creditstrans']]['title'].' '.$order['amount'].' '.$_G['setting']['extcredits'][$_G['setting']['creditstrans']]['unit']
+			), 1);
+		}
+
+	}
+
+}
+
+if($notifydata['location']) {
+	$url = rawurlencode('home.php?mod=spacecp&ac=credit');
+	if($apitype == 'tenpay') {
+		echo <<<EOS
+<meta name="TENCENT_ONLINE_PAYMENT" content="China TENCENT">
+<html>
+<body>
+<script language="javascript" type="text/javascript">
+window.location.href='$_G[siteurl]forum.php?mod=misc&action=paysucceed';
+</script>
+</body>
+</html>
+EOS;
+	} else {
+		dheader('location: '.$_G['siteurl'].'forum.php?mod=misc&action=paysucceed');
+	}
+} else {
+	exit($notifydata['notify']);
+}
+
+?>

+ 90 - 0
api/trade/notify_invite.php

xqd
@@ -0,0 +1,90 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: notify_invite.php 34251 2013-11-25 03:10:11Z nemohou $
+ */
+
+define('IN_API', true);
+define('CURSCRIPT', 'api');
+define('DISABLEXSSCHECK', true);
+
+require '../../source/class/class_core.php';
+require '../../source/function/function_forum.php';
+
+$discuz = C::app();
+$discuz->init();
+
+$apitype = empty($_GET['attach']) || !preg_match('/^[a-z0-9]+$/i', $_GET['attach']) ? 'alipay' : $_GET['attach'];
+require_once DISCUZ_ROOT.'./api/trade/api_'.$apitype.'.php';
+$PHP_SELF = $_SERVER['PHP_SELF'];
+$_G['siteurl'] = dhtmlspecialchars('http://'.$_SERVER['HTTP_HOST'].preg_replace("/\/+(api\/trade)?\/*$/i", '', substr($PHP_SELF, 0, strrpos($PHP_SELF, '/'))).'/');
+$notifydata = trade_notifycheck('invite');
+if($notifydata['validator']) {
+	$orderid = $notifydata['order_no'];
+	$postprice = $notifydata['price'];
+	$order = C::t('forum_order')->fetch($orderid);
+	if($order && floatval($postprice) == floatval($order['price']) && ($apitype == 'tenpay' || $_G['setting']['ec_account'] == $_REQUEST['seller_email'])) {
+
+		if($order['status'] == 1) {
+			C::t('forum_order')->update($orderid, array('status' => '2', 'buyer' => "$notifydata[trade_no]\t$apitype", 'confirmdate' => $_G['timestamp']));
+			$codes = $codetext = array();
+			$dateline = TIMESTAMP;
+			for($i=0; $i<$order['amount']; $i++) {
+				$code = strtolower(random(6));
+				$codetext[] = $code;
+				$codes[] = "('0', '$code', '$dateline', '".($_G['group']['maxinviteday']?($_G['timestamp']+$_G['group']['maxinviteday']*24*3600):$_G['timestamp']+86400*10)."', '$order[email]', '$_G[clientip]', '$orderid')";
+				$invitedata = array(
+							'uid' => 0,
+							'code' => $code,
+							'dateline' => $dateline,
+							'endtime' => $_G['group']['maxinviteday'] ? ($_G['timestamp']+$_G['group']['maxinviteday']*24*3600) : $_G['timestamp']+86400*10,
+							'email' => $order['email'],
+							'inviteip' => $_G['clientip'],
+							'orderid' => $orderid
+						);
+				C::t('common_invite')->insert($invitedata);
+			}
+			C::t('forum_order')->delete_by_submitdate($_G['timestamp']-60*86400);
+
+			$submitdate = dgmdate($order['submitdate']);
+			$confirmdate = dgmdate(TIMESTAMP);
+			if(!function_exists('sendmail')) {
+				include libfile('function/mail');
+			}
+			$add_member_subject = $_G['setting']['bbname'].' - '.lang('forum/misc', 'invite_payment');
+			$add_member_message = lang('email', 'invite_payment_email_message', array(
+				'orderid' => $order['orderid'],
+				'codetext' => implode('<br />', $codetext),
+				'siteurl' => $_G['siteurl'],
+				'bbname' => $_G['setting']['bbname'],
+			));
+			if(!sendmail($order['email'], $add_member_subject, $add_member_message)) {
+				runlog('sendmail', "$order[email] sendmail failed.");
+			}
+		}
+
+	}
+}
+if($notifydata['location']) {
+	if($apitype == 'tenpay') {
+		echo <<<EOS
+<meta name="TENCENT_ONLINE_PAYMENT" content="China TENCENT">
+<html>
+<body>
+<script language="javascript" type="text/javascript">
+window.location.href='$_G[siteurl]misc.php?mod=buyinvitecode&action=paysucceed&orderid=$orderid';
+</script>
+</body>
+</html>
+EOS;
+	} else {
+		dheader('location: '.$_G['siteurl'].'misc.php?mod=buyinvitecode&action=paysucceed&orderid='.$orderid);
+	}
+} else {
+	exit($notifydata['notify']);
+}
+
+?>

+ 118 - 0
api/trade/notify_trade.php

xqd
@@ -0,0 +1,118 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: notify_trade.php 34251 2013-11-25 03:10:11Z nemohou $
+ */
+
+define('IN_API', true);
+define('CURSCRIPT', 'api');
+define('DISABLEXSSCHECK', true);
+
+require '../../source/class/class_core.php';
+require '../../source/function/function_forum.php';
+
+$discuz = C::app();
+$discuz->init();
+
+$apitype = empty($_GET['attach']) || !preg_match('/^[a-z0-9]+$/i', $_GET['attach']) ? 'alipay' : $_GET['attach'];
+require_once DISCUZ_ROOT.'./api/trade/api_' . $apitype . '.php';
+
+$PHP_SELF = $_SERVER['PHP_SELF'];
+$_G['siteurl'] = dhtmlspecialchars('http://'.$_SERVER['HTTP_HOST'].preg_replace("/\/+(api\/trade)?\/*$/i", '', substr($PHP_SELF, 0, strrpos($PHP_SELF, '/'))).'/');
+
+$notifydata = trade_notifycheck('trade');
+
+if($notifydata['validator']) {
+
+	$orderid = $notifydata['order_no'];
+
+	if($orderid) {
+
+		$tradelog = C::t('forum_tradelog')->fetch($orderid);
+
+		if($tradelog && $tradelog['status'] != STATUS_TRADE_SUCCESS && $tradelog['status'] != STATUS_REFUND_CLOSE && ($apitype == 'tenpay' || $tradelog['selleraccount'] == $_REQUEST['seller_email'])) {
+			$status = $notifydata['status'];
+			C::t('forum_tradelog')->update($orderid, array(
+				'status' => $status,
+				'lastupdate' => $_G['timestamp'],
+				'tradeno' => $notifydata['trade_no']
+			));
+			if($status != $tradelog['status']) {
+
+				if($status == STATUS_SELLER_SEND) {
+
+					notification_add($tradelog['sellerid'], 'goods', 'trade_seller_send', array(
+						'buyerid' => $tradelog['buyerid'],
+						'buyer' => $tradelog['buyer'],
+						'orderid' => $orderid,
+						'subject' => $tradelog['subject']
+					));
+
+				} elseif($status == STATUS_WAIT_BUYER) {
+
+					notification_add($tradelog['buyerid'], 'goods', 'trade_buyer_confirm', array(
+						'sellerid' => $tradelog['sellerid'],
+						'seller' => $tradelog['seller'],
+						'orderid' => $orderid,
+						'subject' => $tradelog['subject']
+					));
+
+				} elseif($status == STATUS_TRADE_SUCCESS) {
+
+					if($_G['setting']['creditstransextra'][5] != -1 && $tradelog['basecredit']) {
+						$netcredit = round($tradelog['number'] * $tradelog['basecredit'] * (1 - $_G['setting']['creditstax']));
+						updatemembercount($tradelog['sellerid'], array($_G['setting']['creditstransextra'][5] => $netcredit));
+					} else {
+						$netcredit = 0;
+					}
+					C::t('forum_trade')->update($tradelog['tid'], $tradelog['pid'], array('lastbuyer' => $tradelog['buyer'], 'lastupdate' => $_G['timestamp']));
+					C::t('forum_trade')->update_counter($tradelog['tid'], $tradelog['pid'], $tradelog['number'], $tradelog['price'], $netcredit);
+
+					updatecreditbyaction('tradefinished', $tradelog['sellerid']);
+					updatecreditbyaction('tradefinished', $tradelog['buyerid']);
+
+					notification_add($tradelog['sellerid'], 'goods', 'trade_success', array(
+						'orderid' => $orderid,
+						'subject' => $tradelog['subject']
+					));
+					notification_add($tradelog['buyerid'], 'goods', 'trade_success', array(
+						'orderid' => $orderid,
+						'subject' => $tradelog['subject']
+					));
+
+				} elseif($status == STATUS_REFUND_CLOSE) {
+
+					C::t('forum_trade')->update_counter($tradelog['tid'], $tradelog['pid'], 0, 0, 0, $tradelog['number']);
+					notification_add($tradelog['sellerid'], 'goods', 'trade_fefund_success', array(
+						'orderid' => $orderid,
+						'subject' => $tradelog['subject']
+					));
+					notification_add($tradelog['buyerid'], 'goods', 'trade_fefund_success', array(
+						'orderid' => $orderid,
+						'subject' => $tradelog['subject']
+					));
+					if($_G['setting']['creditstrans'] && $tradelog['buyerid']) {
+						updatemembercount($tradelog['buyerid'], array($_G['setting']['creditstrans'] => $tradelog['buyercredits']));
+					}
+					if($_G['setting']['creditstransextra'][5] != -1 && $tradelog['basecredit'] && $tradelog['buyerid']) {
+						$credit = $tradelog['number'] * $tradelog['basecredit'];
+						updatemembercount($tradelog['buyerid'], array($_G['setting']['creditstransextra'][5] => $credit));
+					}
+
+				}
+			}
+		}
+	}
+
+}
+
+if($notifydata['location']) {
+	dheader('location: '.$_G['siteurl'].'forum.php?mod=misc&action=paysucceed&orderid='.$orderid);
+} else {
+	exit($notifydata['notify']);
+}
+
+?>

+ 427 - 0
api/uc.php

xqd
@@ -0,0 +1,427 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: uc.php 36358 2017-01-20 02:05:50Z nemohou $
+ */
+
+error_reporting(0);
+
+define('UC_CLIENT_VERSION', '1.6.0');
+define('UC_CLIENT_RELEASE', '20170101');
+
+define('API_DELETEUSER', 1);
+define('API_RENAMEUSER', 1);
+define('API_GETTAG', 1);
+define('API_SYNLOGIN', 1);
+define('API_SYNLOGOUT', 1);
+define('API_UPDATEPW', 1);
+define('API_UPDATEBADWORDS', 1);
+define('API_UPDATEHOSTS', 1);
+define('API_UPDATEAPPS', 1);
+define('API_UPDATECLIENT', 1);
+define('API_UPDATECREDIT', 1);
+define('API_GETCREDIT', 1);
+define('API_GETCREDITSETTINGS', 1);
+define('API_UPDATECREDITSETTINGS', 1);
+define('API_ADDFEED', 1);
+define('API_RETURN_SUCCEED', '1');
+define('API_RETURN_FAILED', '-1');
+define('API_RETURN_FORBIDDEN', '1');
+
+define('IN_API', true);
+define('CURSCRIPT', 'api');
+
+
+if(!defined('IN_UC')) {
+	 require_once '../source/class/class_core.php'; if (method_exists("C", "app")) { $discuz = C::app(); $discuz->init(); } 
+
+	$discuz = C::app();
+	$discuz->init();
+
+	require DISCUZ_ROOT.'./config/config_ucenter.php';
+
+	$get = $post = array();
+
+	$code = @$_GET['code'];
+	parse_str(authcode($code, 'DECODE', UC_KEY), $get);
+
+	if(time() - $get['time'] > 3600) {
+		exit('Authracation has expiried');
+	}
+	if(empty($get)) {
+		exit('Invalid Request');
+	}
+
+	include_once DISCUZ_ROOT.'./uc_client/lib/xml.class.php';
+	$post = xml_unserialize(file_get_contents('php://input'));
+
+	if(in_array($get['action'], array('test', 'deleteuser', 'renameuser', 'gettag', 'synlogin', 'synlogout', 'updatepw', 'updatebadwords', 'updatehosts', 'updateapps', 'updateclient', 'updatecredit', 'getcredit', 'getcreditsettings', 'updatecreditsettings', 'addfeed'))) {
+		$uc_note = new uc_note();
+		echo call_user_func(array($uc_note, $get['action']), $get, $post);
+		exit();
+	} else {
+		exit(API_RETURN_FAILED);
+	}
+} else {
+	exit;
+}
+
+class uc_note {
+
+	var $dbconfig = '';
+	var $db = '';
+	var $tablepre = '';
+	var $appdir = '';
+
+	function _serialize($arr, $htmlon = 0) {
+		if(!function_exists('xml_serialize')) {
+			include_once DISCUZ_ROOT.'./uc_client/lib/xml.class.php';
+		}
+		return xml_serialize($arr, $htmlon);
+	}
+
+	function _construct() {
+	}
+
+	function test($get, $post) {
+		return API_RETURN_SUCCEED;
+	}
+
+	function deleteuser($get, $post) {
+		global $_G;
+		if(!API_DELETEUSER) {
+			return API_RETURN_FORBIDDEN;
+		}
+		$uids = str_replace("'", '', stripslashes($get['ids']));
+		$ids = array();
+		$ids = array_keys(C::t('common_member')->fetch_all($uids));
+		require_once DISCUZ_ROOT.'./source/function/function_delete.php';
+		$ids && deletemember($ids);
+
+		return API_RETURN_SUCCEED;
+	}
+
+	function renameuser($get, $post) {
+		global $_G;
+
+		if(!API_RENAMEUSER) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+
+
+		$tables = array(
+			'common_block' => array('id' => 'uid', 'name' => 'username'),
+			'common_invite' => array('id' => 'fuid', 'name' => 'fusername'),
+			'common_member_verify_info' => array('id' => 'uid', 'name' => 'username'),
+			'common_mytask' => array('id' => 'uid', 'name' => 'username'),
+			'common_report' => array('id' => 'uid', 'name' => 'username'),
+
+			'forum_thread' => array('id' => 'authorid', 'name' => 'author'),
+			'forum_activityapply' => array('id' => 'uid', 'name' => 'username'),
+			'forum_groupuser' => array('id' => 'uid', 'name' => 'username'),
+			'forum_pollvoter' => array('id' => 'uid', 'name' => 'username'),
+			'forum_post' => array('id' => 'authorid', 'name' => 'author'),
+			'forum_postcomment' => array('id' => 'authorid', 'name' => 'author'),
+			'forum_ratelog' => array('id' => 'uid', 'name' => 'username'),
+
+			'home_album' => array('id' => 'uid', 'name' => 'username'),
+			'home_blog' => array('id' => 'uid', 'name' => 'username'),
+			'home_clickuser' => array('id' => 'uid', 'name' => 'username'),
+			'home_docomment' => array('id' => 'uid', 'name' => 'username'),
+			'home_doing' => array('id' => 'uid', 'name' => 'username'),
+			'home_feed' => array('id' => 'uid', 'name' => 'username'),
+			'home_feed_app' => array('id' => 'uid', 'name' => 'username'),
+			'home_friend' => array('id' => 'fuid', 'name' => 'fusername'),
+			'home_friend_request' => array('id' => 'fuid', 'name' => 'fusername'),
+			'home_notification' => array('id' => 'authorid', 'name' => 'author'),
+			'home_pic' => array('id' => 'uid', 'name' => 'username'),
+			'home_poke' => array('id' => 'fromuid', 'name' => 'fromusername'),
+			'home_share' => array('id' => 'uid', 'name' => 'username'),
+			'home_show' => array('id' => 'uid', 'name' => 'username'),
+			'home_specialuser' => array('id' => 'uid', 'name' => 'username'),
+			'home_visitor' => array('id' => 'vuid', 'name' => 'vusername'),
+
+			'portal_article_title' => array('id' => 'uid', 'name' => 'username'),
+			'portal_comment' => array('id' => 'uid', 'name' => 'username'),
+			'portal_topic' => array('id' => 'uid', 'name' => 'username'),
+			'portal_topic_pic' => array('id' => 'uid', 'name' => 'username'),
+		);
+
+		if(!C::t('common_member')->update($get['uid'], array('username' => $get[newusername])) && isset($_G['setting']['membersplit'])){
+			C::t('common_member_archive')->update($get['uid'], array('username' => $get[newusername]));
+		}
+
+		loadcache("posttableids");
+		if($_G['cache']['posttableids']) {
+			foreach($_G['cache']['posttableids'] AS $tableid) {
+				$tables[getposttable($tableid)] = array('id' => 'authorid', 'name' => 'author');
+			}
+		}
+
+		foreach($tables as $table => $conf) {
+			DB::query("UPDATE ".DB::table($table)." SET `$conf[name]`='$get[newusername]' WHERE `$conf[id]`='$get[uid]'");
+		}
+		return API_RETURN_SUCCEED;
+	}
+
+	function gettag($get, $post) {
+		global $_G;
+		if(!API_GETTAG) {
+			return API_RETURN_FORBIDDEN;
+		}
+		return $this->_serialize(array($get['id'], array()), 1);
+	}
+
+	function synlogin($get, $post) {
+		global $_G;
+
+		if(!API_SYNLOGIN) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+		header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
+
+		$cookietime = 31536000;
+		$uid = intval($get['uid']);
+		if(($member = getuserbyuid($uid, 1))) {
+			dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime);
+		}
+	}
+
+	function synlogout($get, $post) {
+		global $_G;
+
+		if(!API_SYNLOGOUT) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+		header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
+
+		dsetcookie('auth', '', -31536000);
+	}
+
+	function updatepw($get, $post) {
+		global $_G;
+
+		if(!API_UPDATEPW) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+		$username = $get['username'];
+		$newpw = md5(time().rand(100000, 999999));
+		$uid = 0;
+		if(($uid = C::t('common_member')->fetch_uid_by_username($username))) {
+			$ext = '';
+		} elseif(($uid = C::t('common_member_archive')->fetch_uid_by_username($username))) {
+			$ext = '_archive';
+		}
+		if($uid) {
+			C::t('common_member'.$ext)->update($uid, array('password' => $newpw));
+		}
+
+		return API_RETURN_SUCCEED;
+	}
+
+	function updatebadwords($get, $post) {
+		global $_G;
+
+		if(!API_UPDATEBADWORDS) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+		$data = array();
+		if(is_array($post)) {
+			foreach($post as $k => $v) {
+				if(substr($v['findpattern'], 0, 1) != '/' || substr($v['findpattern'], -3) != '/is') {
+					$v['findpattern'] = '/' . preg_quote($v['findpattern'], '/') . '/is';
+				}
+				$data['findpattern'][$k] = $v['findpattern'];
+				$data['replace'][$k] = $v['replacement'];
+			}
+		}
+		$cachefile = DISCUZ_ROOT.'./uc_client/data/cache/badwords.php';
+		$fp = fopen($cachefile, 'w');
+		$s = "<?php\r\n";
+		$s .= '$_CACHE[\'badwords\'] = '.var_export($data, TRUE).";\r\n";
+		fwrite($fp, $s);
+		fclose($fp);
+
+		return API_RETURN_SUCCEED;
+	}
+
+	function updatehosts($get, $post) {
+		global $_G;
+
+		if(!API_UPDATEHOSTS) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+		$cachefile = DISCUZ_ROOT.'./uc_client/data/cache/hosts.php';
+		$fp = fopen($cachefile, 'w');
+		$s = "<?php\r\n";
+		$s .= '$_CACHE[\'hosts\'] = '.var_export($post, TRUE).";\r\n";
+		fwrite($fp, $s);
+		fclose($fp);
+
+		return API_RETURN_SUCCEED;
+	}
+
+	 function updateapps($get, $post) { if($post['UC_API']) { $post['UC_API'] = addslashes($post['UC_API']); } 
+		global $_G;
+
+		if(!API_UPDATEAPPS) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+		$UC_API = '';
+		if($post['UC_API']) {
+			$UC_API = str_replace(array('\'', '"', '\\', "\0", "\n", "\r"), '', $post['UC_API']);
+			unset($post['UC_API']);
+		}
+
+		$cachefile = DISCUZ_ROOT.'./uc_client/data/cache/apps.php';
+		$fp = fopen($cachefile, 'w');
+		$s = "<?php\r\n";
+		$s .= '$_CACHE[\'apps\'] = '.var_export($post, TRUE).";\r\n";
+		fwrite($fp, $s);
+		fclose($fp);
+
+		if($UC_API && is_writeable(DISCUZ_ROOT.'./config/config_ucenter.php')) {
+			if(preg_match('/^https?:\/\//is', $UC_API)) {
+				$configfile = trim(file_get_contents(DISCUZ_ROOT.'./config/config_ucenter.php'));
+				$configfile = substr($configfile, -2) == '?>' ? substr($configfile, 0, -2) : $configfile;
+				$configfile = preg_replace("/define\('UC_API',\s*'.*?'\);/i", "define('UC_API', '".addslashes($UC_API)."');", $configfile);
+
+				//$configfile = preg_replace("/define\('UC_API',\s*'.*?'\);/i", "define('UC_API', '".addslashes($UC_API)."');", $configfile);
+				if($fp = @fopen(DISCUZ_ROOT.'./config/config_ucenter.php', 'w')) {
+					@fwrite($fp, trim($configfile));
+					@fclose($fp);
+				}
+			}
+		}
+		return API_RETURN_SUCCEED;
+	}
+
+	function updateclient($get, $post) {
+		global $_G;
+
+		if(!API_UPDATECLIENT) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+		$cachefile = DISCUZ_ROOT.'./uc_client/data/cache/settings.php';
+		$fp = fopen($cachefile, 'w');
+		$s = "<?php\r\n";
+		$s .= '$_CACHE[\'settings\'] = '.var_export($post, TRUE).";\r\n";
+		fwrite($fp, $s);
+		fclose($fp);
+
+		return API_RETURN_SUCCEED;
+	}
+
+	function updatecredit($get, $post) {
+		global $_G;
+
+		if(!API_UPDATECREDIT) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+		$credit = $get['credit'];
+		$amount = $get['amount'];
+		$uid = $get['uid'];
+		if(!getuserbyuid($uid)) {
+			return API_RETURN_SUCCEED;
+		}
+
+		updatemembercount($uid, array($credit => $amount));
+		C::t('common_credit_log')->insert(array('uid' => $uid, 'operation' => 'ECU', 'relatedid' => $uid, 'dateline' => time(), 'extcredits'.$credit => $amount));
+
+		return API_RETURN_SUCCEED;
+	}
+
+	function getcredit($get, $post) {
+		global $_G;
+
+		if(!API_GETCREDIT) {
+			return API_RETURN_FORBIDDEN;
+		}
+		$uid = intval($get['uid']);
+		$credit = intval($get['credit']);
+		$_G['uid'] = $_G['member']['uid'] = $uid;
+		return getuserprofile('extcredits'.$credit);
+	}
+
+	function getcreditsettings($get, $post) {
+		global $_G;
+
+		if(!API_GETCREDITSETTINGS) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+		$credits = array();
+		foreach($_G['setting']['extcredits'] as $id => $extcredits) {
+			$credits[$id] = array(strip_tags($extcredits['title']), $extcredits['unit']);
+		}
+
+		return $this->_serialize($credits);
+	}
+
+	function updatecreditsettings($get, $post) {
+		global $_G;
+
+		if(!API_UPDATECREDITSETTINGS) {
+			return API_RETURN_FORBIDDEN;
+		}
+
+		$outextcredits = array();
+		foreach($get['credit'] as $appid => $credititems) {
+			if($appid == UC_APPID) {
+				foreach($credititems as $value) {
+					$outextcredits[$value['appiddesc'].'|'.$value['creditdesc']] = array(
+						'appiddesc' => $value['appiddesc'],
+						'creditdesc' => $value['creditdesc'],
+						'creditsrc' => $value['creditsrc'],
+						'title' => $value['title'],
+						'unit' => $value['unit'],
+						'ratiosrc' => $value['ratiosrc'],
+						'ratiodesc' => $value['ratiodesc'],
+						'ratio' => $value['ratio']
+					);
+				}
+			}
+		}
+		$tmp = array();
+		foreach($outextcredits as $value) {
+			$key = $value['appiddesc'].'|'.$value['creditdesc'];
+			if(!isset($tmp[$key])) {
+				$tmp[$key] = array('title' => $value['title'], 'unit' => $value['unit']);
+			}
+			$tmp[$key]['ratiosrc'][$value['creditsrc']] = $value['ratiosrc'];
+			$tmp[$key]['ratiodesc'][$value['creditsrc']] = $value['ratiodesc'];
+			$tmp[$key]['creditsrc'][$value['creditsrc']] = $value['ratio'];
+		}
+		$outextcredits = $tmp;
+
+		$cachefile = DISCUZ_ROOT.'./uc_client/data/cache/creditsettings.php';
+		$fp = fopen($cachefile, 'w');
+		$s = "<?php\r\n";
+		$s .= '$_CACHE[\'creditsettings\'] = '.var_export($outextcredits, TRUE).";\r\n";
+		fwrite($fp, $s);
+		fclose($fp);
+
+		return API_RETURN_SUCCEED;
+	}
+
+	function addfeed($get, $post) {
+		global $_G;
+
+		if(!API_ADDFEED) {
+			return API_RETURN_FORBIDDEN;
+		}
+		return API_RETURN_SUCCEED;
+	}
+}

+ 30 - 0
archiver/index.php

xqd
@@ -0,0 +1,30 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: index.php 17587 2010-10-25 01:25:10Z monkey $
+ */
+
+define('IN_ARCHIVER', 1);
+
+chdir('../');
+
+$querystring = $_SERVER['QUERY_STRING'];
+
+if(!empty($_GET['action'])) {
+	$querystring = $_GET['action'].'-'.$_GET['value'];
+}
+
+if(substr($querystring, 0, 3) == 'fid') {
+	$_GET['mod'] = 'forumdisplay';
+	$_GET['fid'] = intval(substr($querystring, 4));
+} elseif(substr($querystring, 0, 3) == 'tid') {
+	$_GET['mod'] = 'viewthread';
+	$_GET['tid'] = intval(substr($querystring, 4));
+}
+
+include 'forum.php';
+
+?>

+ 103 - 0
config/config_global.php

xqd
@@ -0,0 +1,103 @@
+<?php
+
+
+$_config = array();
+
+// ----------------------------  CONFIG DB  ----------------------------- //
+$_config['db']['1']['dbhost'] = 'localhost';
+$_config['db']['1']['dbuser'] = 'dbuser';
+$_config['db']['1']['dbpw'] = 'BXhKw6JRxMy9FTb2';
+$_config['db']['1']['dbcharset'] = 'utf8';
+$_config['db']['1']['pconnect'] = '0';
+$_config['db']['1']['dbname'] = 'zijia';
+$_config['db']['1']['tablepre'] = 'pre_';
+$_config['db']['slave'] = '';
+$_config['db']['common']['slave_except_table'] = '';
+
+// --------------------------  CONFIG MEMORY  --------------------------- //
+$_config['memory']['prefix'] = 'HEbWjW_';
+$_config['memory']['redis']['server'] = '';
+$_config['memory']['redis']['port'] = 6379;
+$_config['memory']['redis']['pconnect'] = 1;
+$_config['memory']['redis']['timeout'] = '0';
+$_config['memory']['redis']['requirepass'] = '';
+$_config['memory']['redis']['serializer'] = 1;
+$_config['memory']['memcache']['server'] = '';
+$_config['memory']['memcache']['port'] = 11211;
+$_config['memory']['memcache']['pconnect'] = 1;
+$_config['memory']['memcache']['timeout'] = 1;
+$_config['memory']['apc'] = 1;
+$_config['memory']['xcache'] = 1;
+$_config['memory']['eaccelerator'] = 1;
+$_config['memory']['wincache'] = 1;
+
+// --------------------------  CONFIG SERVER  --------------------------- //
+$_config['server']['id'] = 1;
+
+// -------------------------  CONFIG DOWNLOAD  -------------------------- //
+$_config['download']['readmod'] = 2;
+$_config['download']['xsendfile']['type'] = '0';
+$_config['download']['xsendfile']['dir'] = '/down/';
+
+// --------------------------  CONFIG OUTPUT  --------------------------- //
+$_config['output']['charset'] = 'utf-8';
+$_config['output']['forceheader'] = 1;
+$_config['output']['gzip'] = '0';
+$_config['output']['tplrefresh'] = 1;
+$_config['output']['language'] = 'zh_cn';
+$_config['output']['staticurl'] = 'static/';
+$_config['output']['ajaxvalidate'] = '0';
+$_config['output']['iecompatible'] = '0';
+
+// --------------------------  CONFIG COOKIE  --------------------------- //
+$_config['cookie']['cookiepre'] = 'oLoI_';
+$_config['cookie']['cookiedomain'] = '';
+$_config['cookie']['cookiepath'] = '/';
+
+// -------------------------  CONFIG SECURITY  -------------------------- //
+$_config['security']['authkey'] = '65ec58eVF15X2pww';
+$_config['security']['urlxssdefend'] = 1;
+$_config['security']['attackevasive'] = '0';
+$_config['security']['querysafe']['status'] = 1;
+$_config['security']['querysafe']['dfunction']['0'] = 'load_file';
+$_config['security']['querysafe']['dfunction']['1'] = 'hex';
+$_config['security']['querysafe']['dfunction']['2'] = 'substring';
+$_config['security']['querysafe']['dfunction']['3'] = 'if';
+$_config['security']['querysafe']['dfunction']['4'] = 'ord';
+$_config['security']['querysafe']['dfunction']['5'] = 'char';
+$_config['security']['querysafe']['daction']['0'] = '@';
+$_config['security']['querysafe']['daction']['1'] = 'intooutfile';
+$_config['security']['querysafe']['daction']['2'] = 'intodumpfile';
+$_config['security']['querysafe']['daction']['3'] = 'unionselect';
+$_config['security']['querysafe']['daction']['4'] = '(select';
+$_config['security']['querysafe']['daction']['5'] = 'unionall';
+$_config['security']['querysafe']['daction']['6'] = 'uniondistinct';
+$_config['security']['querysafe']['dnote']['0'] = '/*';
+$_config['security']['querysafe']['dnote']['1'] = '*/';
+$_config['security']['querysafe']['dnote']['2'] = '#';
+$_config['security']['querysafe']['dnote']['3'] = '--';
+$_config['security']['querysafe']['dnote']['4'] = '"';
+$_config['security']['querysafe']['dlikehex'] = 1;
+$_config['security']['querysafe']['afullnote'] = '0';
+
+// --------------------------  CONFIG ADMINCP  -------------------------- //
+// -------- Founders: $_config['admincp']['founder'] = '1,2,3'; --------- //
+$_config['admincp']['founder'] = '1';
+$_config['admincp']['forcesecques'] = '0';
+$_config['admincp']['checkip'] = 1;
+$_config['admincp']['runquery'] = '0';
+$_config['admincp']['dbimport'] = 1;
+
+// --------------------------  CONFIG REMOTE  --------------------------- //
+$_config['remote']['on'] = '0';
+$_config['remote']['dir'] = 'remote';
+$_config['remote']['appkey'] = '62cf0b3c3e6a4c9468e7216839721d8e';
+$_config['remote']['cron'] = '0';
+
+// ---------------------------  CONFIG INPUT  --------------------------- //
+$_config['input']['compatible'] = 1;
+
+
+// -------------------  THE END  -------------------- //
+
+?>

+ 202 - 0
config/config_global_default.php

xqd
@@ -0,0 +1,202 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: config_global_default.php 36362 2017-02-04 02:02:03Z nemohou $
+ */
+
+$_config = array();
+
+// ----------------------------  CONFIG DB  ----------------------------- //
+// ----------------------------  数据库相关设置---------------------------- //
+
+/**
+ * 数据库主服务器设置, 支持多组服务器设置, 当设置多组服务器时, 则会根据分布式策略使用某个服务器
+ * @example
+ * $_config['db']['1']['dbhost'] = 'localhost'; // 服务器地址
+ * $_config['db']['1']['dbuser'] = 'root'; // 用户
+ * $_config['db']['1']['dbpw'] = 'root';// 密码
+ * $_config['db']['1']['dbcharset'] = 'gbk';// 字符集
+ * $_config['db']['1']['pconnect'] = '0';// 是否持续连接
+ * $_config['db']['1']['dbname'] = 'x1';// 数据库
+ * $_config['db']['1']['tablepre'] = 'pre_';// 表名前缀
+ *
+ * $_config['db']['2']['dbhost'] = 'localhost';
+ * ...
+ *
+ */
+$_config['db'][1]['dbhost']  		= 'localhost';
+$_config['db'][1]['dbuser']  		= 'root';
+$_config['db'][1]['dbpw'] 	 	= 'root';
+$_config['db'][1]['dbcharset'] 		= 'utf8';
+$_config['db'][1]['pconnect'] 		= 0;
+$_config['db'][1]['dbname']  		= 'ultrax';
+$_config['db'][1]['tablepre'] 		= 'pre_';
+
+/**
+ * 数据库从服务器设置( slave, 只读 ), 支持多组服务器设置, 当设置多组服务器时, 系统根据每次随机使用
+ * @example
+ * $_config['db']['1']['slave']['1']['dbhost'] = 'localhost';
+ * $_config['db']['1']['slave']['1']['dbuser'] = 'root';
+ * $_config['db']['1']['slave']['1']['dbpw'] = 'root';
+ * $_config['db']['1']['slave']['1']['dbcharset'] = 'gbk';
+ * $_config['db']['1']['slave']['1']['pconnect'] = '0';
+ * $_config['db']['1']['slave']['1']['dbname'] = 'x1';
+ * $_config['db']['1']['slave']['1']['tablepre'] = 'pre_';
+ * $_config['db']['1']['slave']['1']['weight'] = '0'; //权重:数据越大权重越高
+ *
+ * $_config['db']['1']['slave']['2']['dbhost'] = 'localhost';
+ * ...
+ *
+ */
+$_config['db']['1']['slave'] = array();
+
+//启用从服务器的开关
+$_config['db']['slave'] = false;
+/**
+ * 数据库 分布部署策略设置
+ *
+ * @example 将 common_member 部署到第二服务器, common_session 部署在第三服务器, 则设置为
+ * $_config['db']['map']['common_member'] = 2;
+ * $_config['db']['map']['common_session'] = 3;
+ *
+ * 对于没有明确声明服务器的表, 则一律默认部署在第一服务器上
+ *
+ */
+$_config['db']['map'] = array();
+
+/**
+ * 数据库 公共设置, 此类设置通常对针对每个部署的服务器
+ */
+$_config['db']['common'] = array();
+
+/**
+ *  禁用从数据库的数据表, 表名字之间使用逗号分割
+ *
+ * @example common_session, common_member 这两个表仅从主服务器读写, 不使用从服务器
+ * $_config['db']['common']['slave_except_table'] = 'common_session, common_member';
+ *
+ */
+$_config['db']['common']['slave_except_table'] = '';
+
+/**
+ * 内存服务器优化设置
+ * 以下设置需要PHP扩展组件支持,其中 memcache 优先于其他设置,
+ * 当 memcache 无法启用时,会自动开启另外的两种优化模式
+ */
+
+//内存变量前缀, 可更改,避免同服务器中的程序引用错乱
+$_config['memory']['prefix'] = 'discuz_';
+
+/* reids设置, 需要PHP扩展组件支持, timeout参数的作用没有查证 */
+$_config['memory']['redis']['server'] = '';
+$_config['memory']['redis']['port'] = 6379;
+$_config['memory']['redis']['pconnect'] = 1;
+$_config['memory']['redis']['timeout'] = 0;
+$_config['memory']['redis']['requirepass'] = '';
+/**
+ * 是否使用 Redis::SERIALIZER_IGBINARY选项,需要igbinary支持,windows下测试时请关闭,否则会出>现错误Reading from client: Connection reset by peer
+ * 支持以下选项,默认使用PHP的serializer
+ * [重要] 该选项已经取代原来的 $_config['memory']['redis']['igbinary'] 选项
+ * Redis::SERIALIZER_IGBINARY =2
+ * Redis::SERIALIZER_PHP =1
+ * Redis::SERIALIZER_NONE =0 //则不使用serialize,即无法保存array
+ */
+$_config['memory']['redis']['serializer'] = 1;
+
+$_config['memory']['memcache']['server'] = '';			// memcache 服务器地址
+$_config['memory']['memcache']['port'] = 11211;			// memcache 服务器端口
+$_config['memory']['memcache']['pconnect'] = 1;			// memcache 是否长久连接
+$_config['memory']['memcache']['timeout'] = 1;			// memcache 服务器连接超时
+
+$_config['memory']['apc'] = 0;							// 启动对 APC 的支持
+$_config['memory']['apcu'] = 0;							// 启动对 APCu 的支持
+$_config['memory']['xcache'] = 0;						// 启动对 xcache 的支持
+$_config['memory']['eaccelerator'] = 0;					// 启动对 eaccelerator 的支持
+$_config['memory']['wincache'] = 0;						// 启动对 wincache 的支持
+$_config['memory']['yac'] = 0;     						//启动对 YAC 的支持
+$_config['memory']['file']['server'] = 'data/cache/filecache';				// 启动对 File 缓存的支持
+// 服务器相关设置
+$_config['server']['id']		= 1;			// 服务器编号,多webserver的时候,用于标识当前服务器的ID
+
+// 附件下载相关
+//
+// 本地文件读取模式; 模式2为最节省内存方式,但不支持多线程下载
+// 1=fread 2=readfile 3=fpassthru 4=fpassthru+multiple
+$_config['download']['readmod'] = 2;
+
+// 是否启用 X-Sendfile 功能(需要服务器支持)0=close 1=nginx 2=lighttpd 3=apache
+$_config['download']['xsendfile']['type'] = 0;
+
+// 启用 nginx X-sendfile 时,论坛附件目录的虚拟映射路径,请使用 / 结尾
+$_config['download']['xsendfile']['dir'] = '/down/';
+
+// 页面输出设置
+$_config['output']['charset'] 			= 'utf-8';	// 页面字符集
+$_config['output']['forceheader']		= 1;		// 强制输出页面字符集,用于避免某些环境乱码
+$_config['output']['gzip'] 			= 0;		// 是否采用 Gzip 压缩输出
+$_config['output']['tplrefresh'] 		= 1;		// 模板自动刷新开关 0=关闭, 1=打开
+$_config['output']['language'] 			= 'zh_cn';	// 页面语言 zh_cn/zh_tw
+$_config['output']['staticurl'] 		= 'static/';	// 站点静态文件路径,“/”结尾
+$_config['output']['ajaxvalidate']		= 0;		// 是否严格验证 Ajax 页面的真实性 0=关闭,1=打开
+$_config['output']['iecompatible']		= 0;		// 页面 IE 兼容模式
+
+// COOKIE 设置
+$_config['cookie']['cookiepre'] 		= 'discuz_'; 	// COOKIE前缀
+$_config['cookie']['cookiedomain'] 		= ''; 		// COOKIE作用域
+$_config['cookie']['cookiepath'] 		= '/'; 		// COOKIE作用路径
+
+// 站点安全设置
+$_config['security']['authkey']			= 'asdfasfas';	// 站点加密密钥
+$_config['security']['urlxssdefend']		= true;		// 自身 URL XSS 防御
+$_config['security']['attackevasive']		= 0;		// CC 攻击防御 1|2|4|8
+
+$_config['security']['querysafe']['status']	= 1;		// 是否开启SQL安全检测,可自动预防SQL注入攻击
+$_config['security']['querysafe']['dfunction']	= array('load_file','hex','substring','if','ord','char');
+$_config['security']['querysafe']['daction']	= array('@','intooutfile','intodumpfile','unionselect','(select', 'unionall', 'uniondistinct');
+$_config['security']['querysafe']['dnote']	= array('/*','*/','#','--','"');
+$_config['security']['querysafe']['dlikehex']	= 1;
+$_config['security']['querysafe']['afullnote']	= 0;
+
+$_config['admincp']['founder']			= '1';		// 站点创始人:拥有站点管理后台的最高权限,每个站点可以设置 1名或多名创始人
+								// 可以使用uid,也可以使用用户名;多个创始人之间请使用逗号“,”分开;
+$_config['admincp']['forcesecques']		= 0;		// 管理人员必须设置安全提问才能进入系统设置 0=否, 1=是[安全]
+$_config['admincp']['checkip']			= 1;		// 后台管理操作是否验证管理员的 IP, 1=是[安全], 0=否。仅在管理员无法登陆后台时设置 0。
+$_config['admincp']['runquery']			= 0;		// 是否允许后台运行 SQL 语句 1=是 0=否[安全]
+$_config['admincp']['dbimport']			= 1;		// 是否允许后台恢复论坛数据  1=是 0=否[安全]
+
+/**
+ * 系统远程调用功能模块
+ */
+
+// 远程调用: 总开关 0=关  1=开
+$_config['remote']['on'] = 0;
+
+// 远程调用: 程序目录名. 出于安全考虑,您可以更改这个目录名, 修改完毕, 请手工修改程序的实际目录
+$_config['remote']['dir'] = 'remote';
+
+// 远程调用: 通信密钥. 用于客户端和本服务端的通信加密. 长度不少于 32 位
+//          默认值是 $_config['security']['authkey']	的 md5, 您也可以手工指定
+$_config['remote']['appkey'] = md5($_config['security']['authkey']);
+
+// 远程调用: 开启外部 cron 任务. 系统内部不再执行cron, cron任务由外部程序激活
+$_config['remote']['cron'] = 0;
+
+// $_GET|$_POST的兼容处理,0为关闭,1为开启;开启后即可使用$_G['gp_xx'](xx为变量名,$_GET和$_POST集合的所有变量名),值为已经addslashes()处理过
+$_config['input']['compatible'] = 1;
+
+// Addon Setting
+//$_config['addonsource'] = 'xx1';
+//$_config['addon'] = array(
+//    'xx1' => array(
+//	'website_url' => 'http://127.0.0.1/AppCenter',
+//	'download_url' => 'http://127.0.0.1/AppCenter/index.php',
+//	'download_ip' => '',
+//	'check_url' => 'http://127.0.0.1/AppCenter/?ac=check&file=',
+//	'check_ip' => ''
+//    )
+//);
+
+?>

+ 19 - 0
config/config_ucenter.php

xqd
@@ -0,0 +1,19 @@
+<?php
+
+
+define('UC_CONNECT', 'mysql');
+
+define('UC_DBHOST', 'localhost');
+define('UC_DBUSER', 'dbuser');
+define('UC_DBPW', 'BXhKw6JRxMy9FTb2');
+define('UC_DBNAME', 'zijia');
+define('UC_DBCHARSET', 'utf8');
+define('UC_DBTABLEPRE', '`zijia`.pre_ucenter_');
+define('UC_DBCONNECT', 0);
+
+define('UC_CHARSET', 'utf-8');
+define('UC_KEY', '40Lchc5fm8uazbm8DbO9Abs9R1o9l0a9Dc99SaW9K9QbVdq4Ie84Y0r0I0D8s5Z4');
+define('UC_API', 'http://t2.9026.com/uc_server');
+define('UC_APPID', '1');
+define('UC_IP', '');
+define('UC_PPP', 20);

+ 32 - 0
config/config_ucenter_default.php

xqd
@@ -0,0 +1,32 @@
+<?php
+
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: config_ucenter_default.php 11023 2010-05-20 02:23:09Z monkey $
+ */
+
+// ============================================================================
+define('UC_CONNECT', 'mysql');				// 连接 UCenter 的方式: mysql/NULL, 默认为空时为 fscoketopen(), mysql 是直接连接的数据库, 为了效率, 建议采用 mysql
+// 数据库相关 (mysql 连接时)
+define('UC_DBHOST', 'localhost');			// UCenter 数据库主机
+define('UC_DBUSER', 'root');				// UCenter 数据库用户名
+define('UC_DBPW', 'root');				// UCenter 数据库密码
+define('UC_DBNAME', 'ucenter');				// UCenter 数据库名称
+define('UC_DBCHARSET', 'utf8');				// UCenter 数据库字符集
+define('UC_DBTABLEPRE', '`ucenter`.uc_');		// UCenter 数据库表前缀
+define('UC_DBCONNECT', '0');				// UCenter 数据库持久连接 0=关闭, 1=打开
+
+// 通信相关
+define('UC_KEY', 'yeN3g9EbNfiaYfodV63dI1j8Fbk5HaL7W4yaW4y7u2j4Mf45mfg2v899g451k576');	// 与 UCenter 的通信密钥, 要与 UCenter 保持一致
+define('UC_API', 'http://localhost/ucenter/branches/1.5.0/server'); // UCenter 的 URL 地址, 在调用头像时依赖此常量
+define('UC_CHARSET', 'utf-8');				// UCenter 的字符集
+define('UC_IP', '127.0.0.1');				// UCenter 的 IP, 当 UC_CONNECT 为非 mysql 方式时, 并且当前应用服务器解析域名有问题时, 请设置此值
+define('UC_APPID', '1');				// 当前应用的 ID
+
+// ============================================================================
+
+define('UC_PPP', '20');
+
+?>

+ 1 - 0
config/index.htm

xqd
@@ -0,0 +1 @@
+ 

+ 41 - 0
connect.php

xqd
@@ -0,0 +1,41 @@
+<?php
+/*
+   [Discuz!] (C)2001-2009 Comsenz Inc.
+   This is NOT a freeware, use is subject to license terms
+
+   $Id: connect.php 26424 2011-12-13 03:02:20Z zhouxiaobo $
+*/
+
+
+if($_GET['mod'] == 'register') {
+	$_GET['mod'] = 'connect';
+	$_GET['action'] = 'register';
+	require_once 'member.php';
+	exit;
+}
+
+define('APPTYPEID', 126);
+define('CURSCRIPT', 'connect');
+
+require_once './source/class/class_core.php';
+require_once './source/function/function_home.php';
+
+$discuz = C::app();
+
+$mod = $discuz->var['mod'];
+$discuz->init();
+
+if(!in_array($mod, array('config', 'login', 'feed', 'check', 'user'))) {
+	showmessage('undefined_action');
+}
+
+if(!$_G['setting']['connect']['allow']) {
+	showmessage('qqconnect:qqconnect_closed');
+}
+
+define('CURMODULE', $mod);
+runhooks();
+
+$connectService = Cloud::loadClass('Service_Connect');
+require_once libfile('connect/'.$mod, 'plugin/qqconnect');
+?>

+ 11 - 0
cp.php

xqd
@@ -0,0 +1,11 @@
+<?php
+/**
+ *      [Discuz!] (C)2001-2099 Comsenz Inc.
+ *      This is NOT a freeware, use is subject to license terms
+ *
+ *      $Id: cp.php 9379 2010-04-28 07:30:09Z zhengqingpeng $
+ */
+
+$_GET['mod'] = 'manage';
+require_once 'userapp.php';
+?>

+ 4 - 0
crossdomain.xml

xqd
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<cross-domain-policy>
+  <allow-access-from domain="*" />
+</cross-domain-policy>

+ 52 - 0
data/addonmd5/baidusubmit.plugin.xml

xqd
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<root>
+	<item id="Title"><![CDATA[Discuz! Addon MD5]]></item>
+	<item id="ID"><![CDATA[baidusubmit.plugin]]></item>
+	<item id="RevisionID"><![CDATA[25533]]></item>
+	<item id="SN"><![CDATA[2017040222BMkKMnbsT2]]></item>
+	<item id="RevisionDateline"><![CDATA[1465894801]]></item>
+	<item id="Data">
+		<item id="/install.php"><![CDATA[c8021caeb0d7492611ec61b8de7ddba7]]></item>
+		<item id="/sitemapall.inc.php"><![CDATA[15667597921edca48addcf0bd2b6a556]]></item>
+		<item id="/template/jquery-1.8.3.min.js"><![CDATA[3576a6e73c9dccdbbc4a2cf8ff544ad7]]></item>
+		<item id="/template/bl_notice.jpg"><![CDATA[fa50e0983a95c37b64e7080f4907878d]]></item>
+		<item id="/template/submitlog.htm"><![CDATA[4274916548a45ca0f738dfe30099181a]]></item>
+		<item id="/template/middle.htm"><![CDATA[f119304d8d299e89fe5ff38dc6f42a80]]></item>
+		<item id="/template/admin.htm"><![CDATA[1ebb8f78073a5823ac4cad51e71adc75]]></item>
+		<item id="/template/index.htm"><![CDATA[d41d8cd98f00b204e9800998ecf8427e]]></item>
+		<item id="/template/notice.jpg"><![CDATA[b0d1769cc77a64d0baefc7429cc236c5]]></item>
+		<item id="/template/right.png"><![CDATA[28f7c07fe2ffc2a45a62518b5edf1066]]></item>
+		<item id="/submitlog.inc.php"><![CDATA[cc36af80d3bdeb132ec444a369c0f980]]></item>
+		<item id="/sitemapinc.inc.php"><![CDATA[32beb7b2d76d2be2c054d80f02368c98]]></item>
+		<item id="/auth.inc.php"><![CDATA[90dcd3af85a1858d456915a2a4e4ee2a]]></item>
+		<item id="/table/table_baidusubmit_setting.php"><![CDATA[8f8e2201d48c687006d9dcdea685a584]]></item>
+		<item id="/table/table_baidusubmit_urlstat.php"><![CDATA[7d7160b4e6399c0d78e920a6622decd4]]></item>
+		<item id="/table/table_common_usergroup_baidu.php"><![CDATA[58df0eedd2c108dad7d754640d9e32fe]]></item>
+		<item id="/table/table_common_member_status_baidu.php"><![CDATA[6178e11dabc0eb1fb9d336fe694ee42b]]></item>
+		<item id="/table/table_baidusubmit_sitemap.php"><![CDATA[f6bb7d8218d59a740122bcec9ded2c71]]></item>
+		<item id="/table/table_forum_thread_baidu.php"><![CDATA[e4f63f2be6ead91ede002d3e6d6a82dc]]></item>
+		<item id="/table/index.htm"><![CDATA[d41d8cd98f00b204e9800998ecf8427e]]></item>
+		<item id="/sitemapuserinc.inc.php"><![CDATA[f161e9fab14339227ae454099043306a]]></item>
+		<item id="/indexall.inc.php"><![CDATA[63df4a403e0ad127b26381ec68961d34]]></item>
+		<item id="/function/function_baidu.php"><![CDATA[fb28c5faa55c3e4446142b2c0665fd9f]]></item>
+		<item id="/function/index.htm"><![CDATA[d41d8cd98f00b204e9800998ecf8427e]]></item>
+		<item id="/sitemapblock.inc.php"><![CDATA[c113bd31f8fdec859bc66f0f20b21ba2]]></item>
+		<item id="/baiducse_middle.inc.php"><![CDATA[b74f4adef8e5fc02054fb9c993f23288]]></item>
+		<item id="/upgrade.php"><![CDATA[5ce0541992fafe1ddb020874af2062d0]]></item>
+		<item id="/baidusubmit.class.php"><![CDATA[5272052fa6b6e460f49108ac13afcc43]]></item>
+		<item id="/discuz_plugin_baidusubmit_SC_UTF8.xml"><![CDATA[562d95bd61eb3010059b432a290c7816]]></item>
+		<item id="/indexinc.inc.php"><![CDATA[34c2538f24b9450eac0288dcf804278c]]></item>
+		<item id="/index.htm"><![CDATA[d41d8cd98f00b204e9800998ecf8427e]]></item>
+		<item id="/discuz_plugin_baidusubmit_SC_GBK.xml"><![CDATA[d7e991dab1ed0f9011b3eeebc3d78571]]></item>
+		<item id="/uninstall.php"><![CDATA[08e48391e9a9f7a5717e0836b4984d9f]]></item>
+		<item id="/config.php"><![CDATA[ba3381994ad8dbd591a343a091fe0765]]></item>
+		<item id="/class_schema.php"><![CDATA[ec014db1b15031308f0ca27737e575d9]]></item>
+		<item id="/baiducse.inc.php"><![CDATA[55b3a1543d4c5a09e9083b2418bf872d]]></item>
+		<item id="/checksign.inc.php"><![CDATA[fc50ce3aa79a926952b1f390859c0272]]></item>
+		<item id="/sitemapuserall.inc.php"><![CDATA[29b668eed490f605d9ac3c3f3adef7de]]></item>
+		<item id="/downlog.inc.php"><![CDATA[118374bec1c943836772e7bf76d9eb4d]]></item>
+		<item id="/indexuserinc.inc.php"><![CDATA[e4d68f78fd5b3eb6925e8985a0ea0c96]]></item>
+		<item id="/indexuserall.inc.php"><![CDATA[224748e674e3541d67c60ceca49cd5aa]]></item>
+		<item id="/admin.inc.php"><![CDATA[a542fa37714afd1fcfc60c84a6002c83]]></item>
+	</item>
+</root>

+ 42 - 0
data/addonmd5/freeaddon_seo_360sitemapauto.plugin.xml

xqd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<root>
+	<item id="Title"><![CDATA[Discuz! Addon MD5]]></item>
+	<item id="ID"><![CDATA[freeaddon_seo_360sitemapauto.plugin]]></item>
+	<item id="RevisionID"><![CDATA[66275]]></item>
+	<item id="SN"><![CDATA[2017040223vYV23HJDj3]]></item>
+	<item id="RevisionDateline"><![CDATA[1469872801]]></item>
+	<item id="Data">
+		<item id="/demo.php"><![CDATA[b808f0b89563721fb3839468c9b87e4c]]></item>
+		<item id="/config.inc.php"><![CDATA[a3364ece60eaa6f9b1526211c3f5cf53]]></item>
+		<item id="/installlang.lang.php"><![CDATA[6d784739d18b78755e3ca721ee39753b]]></item>
+		<item id="/install.php"><![CDATA[38a85ae646738f3641a5bbec22ee854f]]></item>
+		<item id="/template/index.html"><![CDATA[53462db3dbf57353be51bd62a7b6fe0e]]></item>
+		<item id="/template/index.htm"><![CDATA[53462db3dbf57353be51bd62a7b6fe0e]]></item>
+		<item id="/template/faq.htm"><![CDATA[a6cc7f51ff70e2f098af7bff953e02f7]]></item>
+		<item id="/changelog.inc.php"><![CDATA[2f07a726a4bef433de9e3db25f03833b]]></item>
+		<item id="/check.php"><![CDATA[26183f9214dbf1beb9a180d4b4d0ad41]]></item>
+		<item id="/hook.class.php"><![CDATA[51d1d222b57d62a0cd9d37e23e3901da]]></item>
+		<item id="/index.html"><![CDATA[53462db3dbf57353be51bd62a7b6fe0e]]></item>
+		<item id="/addon.inc.php"><![CDATA[d75b973a61f468359e066c2c1cb77e8a]]></item>
+		<item id="/source/function/function_var.php"><![CDATA[3379a47df9aa1a43425b12d403ca2e5b]]></item>
+		<item id="/feedback.inc.php"><![CDATA[fec015d3bc629ba22e1bc7a146a79ca9]]></item>
+		<item id="/faq.inc.php"><![CDATA[00ac57170533e4318afca6f26b9e2d98]]></item>
+		<item id="/images/manage.css"><![CDATA[6b41fb8ea9a32acbc5c6365a85ee2f66]]></item>
+		<item id="/images/bg_tab_mid.gif"><![CDATA[da79a1002b9c209a9760211e9a08dd20]]></item>
+		<item id="/images/bg_tab.gif"><![CDATA[d8ddde434d1e604f36abf1936617f99c]]></item>
+		<item id="/images/index.html"><![CDATA[53462db3dbf57353be51bd62a7b6fe0e]]></item>
+		<item id="/images/faq.gif"><![CDATA[2016bd6b1d980e1609ecad8d4c40085b]]></item>
+		<item id="/images/index.htm"><![CDATA[53462db3dbf57353be51bd62a7b6fe0e]]></item>
+		<item id="/pluginvar.func.php"><![CDATA[b2ec46cd136b99ce9f48ddd9933fa3e6]]></item>
+		<item id="/enable.php"><![CDATA[05b482991deb95d939945c3525453d55]]></item>
+		<item id="/discuz_plugin_freeaddon_seo_360sitemapauto_TC_UTF8.xml"><![CDATA[8ee1fdd20bf1b79430f590d4af71e8b1]]></item>
+		<item id="/disable.php"><![CDATA[22904ac4e72966ca0853e90f0f7d4c86]]></item>
+		<item id="/upgrade.php"><![CDATA[38a85ae646738f3641a5bbec22ee854f]]></item>
+		<item id="/discuz_plugin_freeaddon_seo_360sitemapauto_SC_UTF8.xml"><![CDATA[d494206d6f2cd8bfc1394ab0e99772fa]]></item>
+		<item id="/discuz_plugin_freeaddon_seo_360sitemapauto_TC_BIG5.xml"><![CDATA[279e99bf4d53d1a64a433bf910898261]]></item>
+		<item id="/index.htm"><![CDATA[53462db3dbf57353be51bd62a7b6fe0e]]></item>
+		<item id="/uninstall.php"><![CDATA[8ecfc2ff3216b6d76cd3e1c6abf6ff8b]]></item>
+		<item id="/thank.inc.php"><![CDATA[b505b98ae160874aa71d31963470ad55]]></item>
+		<item id="/discuz_plugin_freeaddon_seo_360sitemapauto_SC_GBK.xml"><![CDATA[a263e56400286a47ac7a92d428716dce]]></item>
+	</item>
+</root>

+ 0 - 0
data/addonmd5/index.htm


+ 123 - 0
data/addonmd5/milu_seotool.plugin.xml

xqd
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<root>
+	<item id="Title"><![CDATA[Discuz! Addon MD5]]></item>
+	<item id="ID"><![CDATA[milu_seotool.plugin]]></item>
+	<item id="RevisionID"><![CDATA[25104]]></item>
+	<item id="SN"><![CDATA[2017040223hKtkv8aQWV]]></item>
+	<item id="RevisionDateline"><![CDATA[1407830401]]></item>
+	<item id="Data">
+		<item id="/config.inc.php"><![CDATA[876605dbdee655a9d21f751bd41b45f6]]></item>
+		<item id="/install.php"><![CDATA[b843ad00db294251f2b3c5c0b83a7685]]></item>
+		<item id="/discuz_plugin_milu_seotool_TC_BIG5.xml"><![CDATA[f15398a8575f760467d7dde591c8fcbe]]></item>
+		<item id="/template/flink_ask_list.htm"><![CDATA[a572e2e54a95533cd4b84f060bb06906]]></item>
+		<item id="/template/included_list.htm"><![CDATA[f9f7567c8de9073064e34497c3b4565e]]></item>
+		<item id="/template/plugin_info.htm"><![CDATA[f5e863622efb3fab149e68961c404244]]></item>
+		<item id="/template/keyword_trend.htm"><![CDATA[af4ea67d19de7f232c84e627d23b7620]]></item>
+		<item id="/template/spider_count_trend.htm"><![CDATA[b60a289eb8616b1f5a549c93a783d0e3]]></item>
+		<item id="/template/spider_list.htm"><![CDATA[a799754df756773cdcee28fc9d449341]]></item>
+		<item id="/template/seo_info.htm"><![CDATA[cd1582b7b368f3413ac1c953f6724eb8]]></item>
+		<item id="/template/common_set.htm"><![CDATA[4bf12552dca6506aaa8a30ddfbe95584]]></item>
+		<item id="/template/spider_area_count.htm"><![CDATA[0d3d943a6db7657a3c5a13cf84d7b57b]]></item>
+		<item id="/template/header.htm"><![CDATA[521b0cc27facf7e21b96761bcf5ae1ae]]></item>
+		<item id="/template/keyword_list.htm"><![CDATA[4c8bc06062811599482f11cb2282424f]]></item>
+		<item id="/template/flink_onlie.htm"><![CDATA[133a1ac06ef89e072a94289a0058ca91]]></item>
+		<item id="/template/included_count_trend.htm"><![CDATA[ea7a578d8c1d82bc4649ebe6874ba577]]></item>
+		<item id="/template/help.htm"><![CDATA[cc1b2cf62a932fd6a44ce1578b6210db]]></item>
+		<item id="/template/included_count_base.htm"><![CDATA[eab3f19680106a554db707e81881598f]]></item>
+		<item id="/template/sitemap_tpl.htm"><![CDATA[122906ed90e203fb8d1a4b4eee10c046]]></item>
+		<item id="/template/article_word_set.htm"><![CDATA[1100516958230175729dc8902a1520f4]]></item>
+		<item id="/template/common.htm"><![CDATA[2e792d80c48b7b10094d33bf4fb4d706]]></item>
+		<item id="/data/word.dat"><![CDATA[34f639cee645f341a1b0784a43d46802]]></item>
+		<item id="/data/gb-big5.table"><![CDATA[4e9faa7d1dd08e36b19895a4f4db53db]]></item>
+		<item id="/data/big5-gb.table"><![CDATA[1155b255058b2acef5cdd498085def11]]></item>
+		<item id="/data/data.sql"><![CDATA[f3915d73c7b4241a77153e8b5d90280f]]></item>
+		<item id="/spider.inc.php"><![CDATA[76b54f231846ff685929f5b071b320ce]]></item>
+		<item id="/version.php"><![CDATA[17b87192ddb8d2db69a89ec961d77595]]></item>
+		<item id="/help.inc.php"><![CDATA[f3b07f81e39a898d88eae137fbc73b0b]]></item>
+		<item id="/system.inc.php"><![CDATA[7aed07a02a4a814e715508b810d64577]]></item>
+		<item id="/included.inc.php"><![CDATA[e826435c62d7147cbe4f6e17cdcd3c54]]></item>
+		<item id="/lib/function.seo.php"><![CDATA[bc51507c684fdeaf46029225ba6ee4a3]]></item>
+		<item id="/lib/cron.class.php"><![CDATA[c75e4cf1292a7bc814a7ea4dd3b26d79]]></item>
+		<item id="/lib/function.copyright.php"><![CDATA[db73093858c5b44cc1dcff9bc6d18764]]></item>
+		<item id="/lib/function.keyword.php"><![CDATA[0cde78cf9ef86e1ac0be6c680c813c95]]></item>
+		<item id="/lib/function.included.php"><![CDATA[e09dc8e0ee91894faba3455d011e5371]]></item>
+		<item id="/lib/cache.class.php"><![CDATA[2490c3ebebab73389f243bbf36420b0e]]></item>
+		<item id="/lib/function.global.php"><![CDATA[35c38f93da7dfb567e17d9b07ac7a3d3]]></item>
+		<item id="/lib/function.spider.php"><![CDATA[d8d342f7a897309db45586f8bf37638c]]></item>
+		<item id="/lib/seoOutput.class.php"><![CDATA[c46059e17d27ea3d7cb44d39c0211bdb]]></item>
+		<item id="/lib/function.sitemap.php"><![CDATA[3dd04eab37b19de35ece0342dd29e2c4]]></item>
+		<item id="/lib/MyFCPHPClassCharts/FusionCharts/FCF_MSLine.swf"><![CDATA[340255439b1d8651b30dc646828ac315]]></item>
+		<item id="/lib/MyFCPHPClassCharts/FusionCharts/FusionCharts.js"><![CDATA[1412828d1b495ca0997efa508ec01f52]]></item>
+		<item id="/lib/MyFCPHPClassCharts/FusionCharts/FCF_Pie3D.swf"><![CDATA[88b3d61a0e14d4b55416fe09023bea0c]]></item>
+		<item id="/lib/MyFCPHPClassCharts/class/FusionCharts_Gen.php"><![CDATA[cc76d575d686c74f72310fad772643fa]]></item>
+		<item id="/lib/MyFCPHPClassCharts/class/FusionCharts.php"><![CDATA[05c8365d9e2e0b7e6ff1b7e8307662a5]]></item>
+		<item id="/lib/phprpc/dhparams.php"><![CDATA[900f486484bdfa1c35056772141c50ee]]></item>
+		<item id="/lib/phprpc/phprpc_client.php"><![CDATA[aa58ba67e0dccc5407174ee0ffb1ec87]]></item>
+		<item id="/lib/phprpc/dhparams/2048.dhp"><![CDATA[2d2fd65bb787d9ed3d993922020fbf08]]></item>
+		<item id="/lib/phprpc/dhparams/768.dhp"><![CDATA[991db97f3385e49fe3b36f2b47c0abcc]]></item>
+		<item id="/lib/phprpc/dhparams/4096.dhp"><![CDATA[d2115aecd2788d52ba451ac3c6cd7244]]></item>
+		<item id="/lib/phprpc/dhparams/256.dhp"><![CDATA[1660866ee03b98a70ccfad070b0a3d11]]></item>
+		<item id="/lib/phprpc/dhparams/1024.dhp"><![CDATA[dd273d711432d4fc9082170b424ff5e2]]></item>
+		<item id="/lib/phprpc/dhparams/3072.dhp"><![CDATA[e3d2609482224bc3c61f25fdf22e86a0]]></item>
+		<item id="/lib/phprpc/dhparams/1536.dhp"><![CDATA[a5f12492b8d820edd5196566243bdc86]]></item>
+		<item id="/lib/phprpc/dhparams/192.dhp"><![CDATA[b9b23a096c812f1cdfc447e274e732a3]]></item>
+		<item id="/lib/phprpc/dhparams/96.dhp"><![CDATA[44d84304f065a99f9d924cb15eeffe93]]></item>
+		<item id="/lib/phprpc/dhparams/128.dhp"><![CDATA[ba8f194f4102245c7dd649beff0290a1]]></item>
+		<item id="/lib/phprpc/dhparams/512.dhp"><![CDATA[a4f4298e9b1eb749364dda948e01ec63]]></item>
+		<item id="/lib/phprpc/dhparams/160.dhp"><![CDATA[5ce77fb27487a3ff3db7d4d475f94d98]]></item>
+		<item id="/lib/phprpc/bigint.php"><![CDATA[df81ffcfea4ba0c5ca4aff596982143c]]></item>
+		<item id="/lib/phprpc/phprpc_date.php"><![CDATA[06658fb67315d8d2255d7da30158e7c7]]></item>
+		<item id="/lib/phprpc/compat.php"><![CDATA[c6c4093a1adf577486e10b4b88c64121]]></item>
+		<item id="/lib/phprpc/xxtea.php"><![CDATA[a2745c9b7f82a34cc9e37bb879c09aa8]]></item>
+		<item id="/lib/phprpc/phprpc_server.php"><![CDATA[a984268a04a2b85d1ea4dbc2a535e540]]></item>
+		<item id="/lib/Snoopy.class.php"><![CDATA[2ace3b787bd107d3ff1ff67119c85602]]></item>
+		<item id="/static/style.css"><![CDATA[2d39385856b27c84f1c78cd80dc4a383]]></item>
+		<item id="/static/phprpc_client.js"><![CDATA[75562f8f805df7e96973582d36dcf019]]></item>
+		<item id="/static/inc.js"><![CDATA[0e8846c50821bb71cc03ca4425f152b1]]></item>
+		<item id="/static/jquery-autocomplete/_notes/dwsync.xml"><![CDATA[06c25855eb2058b35d6f51b639954340]]></item>
+		<item id="/static/jquery-autocomplete/jquery.bgiframe.min.js"><![CDATA[54ca1eead6c555b8f07e29e2b10be836]]></item>
+		<item id="/static/jquery-autocomplete/jquery.autocomplete.min.js"><![CDATA[d9d9bfc044097212095f279c41dfeb79]]></item>
+		<item id="/static/jquery-autocomplete/jquery.autocomplete.css"><![CDATA[1ae7283d11a0764851c127f1e9132c5e]]></item>
+		<item id="/static/jquery-1.6.2.min.js"><![CDATA[a1a8cb16a060f6280a767187fd22e037]]></item>
+		<item id="/static/image/s3.gif"><![CDATA[722932912f28a873db12177390b6fa61]]></item>
+		<item id="/static/image/baiduapp/6.gif"><![CDATA[323ecd2ab9132039d6eb32a689ba7dc9]]></item>
+		<item id="/static/image/baiduapp/8.gif"><![CDATA[97f4114ea277e006988acdb18f3e9284]]></item>
+		<item id="/static/image/baiduapp/4.gif"><![CDATA[63b6cd64b33a3dfbd8b5caea694c5d15]]></item>
+		<item id="/static/image/baiduapp/1.gif"><![CDATA[dab2369e6215476903b4857716afd11b]]></item>
+		<item id="/static/image/baiduapp/3.gif"><![CDATA[6808ad507a8a7866fc9cfcfacee44f3e]]></item>
+		<item id="/static/image/baiduapp/5.gif"><![CDATA[d432d675a9617a8b3ad3fe8feaa72a11]]></item>
+		<item id="/static/image/baiduapp/7.gif"><![CDATA[9d3a52dbeec912d06f3d72e19de99298]]></item>
+		<item id="/static/image/baiduapp/9.gif"><![CDATA[39564d5ac68692c32e33d475d44800c5]]></item>
+		<item id="/static/image/baiduapp/0.gif"><![CDATA[193852e492409accf61222d35be6a324]]></item>
+		<item id="/static/image/baiduapp/10.gif"><![CDATA[afae84b4d835493031c3d4fbf1af2615]]></item>
+		<item id="/static/image/baiduapp/2.gif"><![CDATA[e0991b562afb542c644255752c2ed543]]></item>
+		<item id="/static/image/down.gif"><![CDATA[8da5ab9b26d75a0b70c330662108137d]]></item>
+		<item id="/static/image/up.gif"><![CDATA[4e540da103b5d68af07ff7e1984c0cb4]]></item>
+		<item id="/static/image/vip.gif"><![CDATA[8d65dd3f22492ee63902b4fbe18d222b]]></item>
+		<item id="/static/image/s2.gif"><![CDATA[09269afd5a1db6a8faa75363270a0cef]]></item>
+		<item id="/static/image/ranks/Rank_4.gif"><![CDATA[e0cc59760b74eb024498ebfbd2da7d4c]]></item>
+		<item id="/static/image/ranks/Rank_6.gif"><![CDATA[f8894e7b3a1ee041ab28701b7172aad5]]></item>
+		<item id="/static/image/ranks/Rank_9.gif"><![CDATA[12f4e1abbbd8160bc9990414c3966342]]></item>
+		<item id="/static/image/ranks/Rank_2.gif"><![CDATA[1a5a8698377962eb7f3b209ddaeab5c1]]></item>
+		<item id="/static/image/ranks/Rank_0.gif"><![CDATA[fb9a4a146a9bcce93cbb982e377a3783]]></item>
+		<item id="/static/image/ranks/Rank_1.gif"><![CDATA[2b3656591614da796ba18cf571182615]]></item>
+		<item id="/static/image/ranks/Rank_10.gif"><![CDATA[774bd7b4e8e977796c1a669cd5078509]]></item>
+		<item id="/static/image/ranks/Rank_7.gif"><![CDATA[35cf0d1baefbc85ad593e0d6d97a449e]]></item>
+		<item id="/static/image/ranks/Rank_5.gif"><![CDATA[a7d8590fe94adf1fb478ef17e5f4cdf6]]></item>
+		<item id="/static/image/ranks/Rank_8.gif"><![CDATA[09d4127111a7617f8923a68b2afa544b]]></item>
+		<item id="/static/image/ranks/Rank_3.gif"><![CDATA[3ce20c3cc9561f04895bdc2a50410ce2]]></item>
+		<item id="/static/image/rank_number.png"><![CDATA[049ec94b45b3f03fa12860a7dceedcb4]]></item>
+		<item id="/static/image/s4.gif"><![CDATA[9eddef3483cd28074a70950312b868d1]]></item>
+		<item id="/static/image/noupdown.gif"><![CDATA[e628482ff2715ea680898eb98356f5b9]]></item>
+		<item id="/static/image/s1.gif"><![CDATA[fff22e5c6a87367942cbe59a2352cb25]]></item>
+		<item id="/discuz_plugin_milu_seotool_TC_UTF8.xml"><![CDATA[60feed165dd040c19844ae9b7c347322]]></item>
+		<item id="/keyword.inc.php"><![CDATA[4c17feadbebd680f92335ac8ac786cb8]]></item>
+		<item id="/sitemap.inc.php"><![CDATA[1bfe8dcb9e93d2b9dafa12093da01f68]]></item>
+		<item id="/flink.inc.php"><![CDATA[8bec85fc99bc5eddb9e7854ad091f4e8]]></item>
+		<item id="/discuz_plugin_milu_seotool_SC_UTF8.xml"><![CDATA[4a71e669980a34cb135f218d355446da]]></item>
+		<item id="/uninstall.php"><![CDATA[336bde86fd59c62fdad7b4eb079e3b27]]></item>
+		<item id="/discuz_plugin_milu_seotool_SC_GBK.xml"><![CDATA[8704cb61d5ea5077268389df1cb798a4]]></item>
+		<item id="/milu_seotool.class.php"><![CDATA[a78d21ae8124d01e322412f0ac04cebb]]></item>
+		<item id="/article_seo.inc.php"><![CDATA[e4ffe61bc99dff3f3dbd34f3023de1b7]]></item>
+	</item>
+</root>

+ 20 - 0
data/addonmd5/mini_kf.plugin.xml

xqd
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<root>
+	<item id="Title"><![CDATA[Discuz! Addon MD5]]></item>
+	<item id="ID"><![CDATA[mini_kf.plugin]]></item>
+	<item id="RevisionID"><![CDATA[40445]]></item>
+	<item id="SN"><![CDATA[20170203217rKrJ5p7pT]]></item>
+	<item id="RevisionDateline"><![CDATA[1410238801]]></item>
+	<item id="Data">
+		<item id="/template/index.htm"><![CDATA[f692aa097d8e502a1b474222d17088d9]]></item>
+		<item id="/images/minikf.png"><![CDATA[9249817ea9dd2e46001761f6f0b724fe]]></item>
+		<item id="/discuz_plugin_mini_kf_TC_BIG5.xml"><![CDATA[0d50e1d01944d9972a947e0e26a3ffd9]]></item>
+		<item id="/discuz_plugin_mini_kf_TC_UTF8.xml"><![CDATA[d5c67f069cd3ad56ceb7dec99473e3a8]]></item>
+		<item id="/app.inc.php"><![CDATA[0030f544123516023ce39a156f8b8e99]]></item>
+		<item id="/js/minikf.js"><![CDATA[665abeaca39b18ba1c79483fa9ef17f5]]></item>
+		<item id="/js/jquery.js"><![CDATA[65b352e1ba79f0e2a3b1e014bc2571af]]></item>
+		<item id="/discuz_plugin_mini_kf_SC_GBK.xml"><![CDATA[ae9c0668bc931bf03009f513fad6234b]]></item>
+		<item id="/discuz_plugin_mini_kf_SC_UTF8.xml"><![CDATA[abba810ba01f1d4bf4273934147fab32]]></item>
+		<item id="/mini_kf.class.php"><![CDATA[58af4b057ef4fbd93ba7adf20015b941]]></item>
+	</item>
+</root>

+ 11 - 0
data/addonmd5/study_plugin_pack.pack.xml

xqd
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<root>
+	<item id="Title"><![CDATA[Discuz! Addon MD5]]></item>
+	<item id="ID"><![CDATA[study_plugin_pack.pack]]></item>
+	<item id="RevisionID"><![CDATA[12118]]></item>
+	<item id="SN"><![CDATA[2017040223pMfzMYf4Bj]]></item>
+	<item id="RevisionDateline"><![CDATA[1361268405]]></item>
+	<item id="Data">
+		<item id="/sitemap.php"><![CDATA[6eb103dac26f297168825929affefad1]]></item>
+	</item>
+</root>

+ 46 - 0
data/addonmd5/study_seo_sitemap.plugin.xml

xqd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<root>
+	<item id="Title"><![CDATA[Discuz! Addon MD5]]></item>
+	<item id="ID"><![CDATA[study_seo_sitemap.plugin]]></item>
+	<item id="RevisionID"><![CDATA[11950]]></item>
+	<item id="SN"><![CDATA[2017040223OTzC6QbnRW]]></item>
+	<item id="RevisionDateline"><![CDATA[1430733610]]></item>
+	<item id="Data">
+		<item id="/demo.php"><![CDATA[b808f0b89563721fb3839468c9b87e4c]]></item>
+		<item id="/config.inc.php"><![CDATA[ac271a85a0c2015479e49b4775f1e90f]]></item>
+		<item id="/installlang.lang.php"><![CDATA[aa68d227c6385ff36790e90d6bb9f375]]></item>
+		<item id="/install.php"><![CDATA[98959b93cb06a9db5ae273d22d768269]]></item>
+		<item id="/template/extend_module.css"><![CDATA[0e9e6e747913ff556e00e28c9342048b]]></item>
+		<item id="/template/index.html"><![CDATA[2be86a36b75b8a5e6e245e4f34ea86ff]]></item>
+		<item id="/template/index.htm"><![CDATA[2be86a36b75b8a5e6e245e4f34ea86ff]]></item>
+		<item id="/template/sitemap.htm"><![CDATA[5770fd832def052220caeb634576e275]]></item>
+		<item id="/template/faq.htm"><![CDATA[248da6ed2f765a537e14d6960d1f1f56]]></item>
+		<item id="/changelog.inc.php"><![CDATA[7d468385112d006d72d9235c6c5bcc44]]></item>
+		<item id="/check.php"><![CDATA[26183f9214dbf1beb9a180d4b4d0ad41]]></item>
+		<item id="/study_seo_sitemap.inc.php"><![CDATA[12042b6b8dc89014f2f0ad693c048307]]></item>
+		<item id="/hook.class.php"><![CDATA[a6419bf5a77794407c0be3f971439663]]></item>
+		<item id="/rewrite.inc.php"><![CDATA[d08d14c48609aefa71c658d89607b5ca]]></item>
+		<item id="/index.html"><![CDATA[2be86a36b75b8a5e6e245e4f34ea86ff]]></item>
+		<item id="/addon.inc.php"><![CDATA[e33b688b18f26bdca886ba7ad7eff573]]></item>
+		<item id="/source/function/function_var.php"><![CDATA[06c68267b60d7144290620a3bfa52731]]></item>
+		<item id="/discuz_plugin_study_seo_sitemap_TC_UTF8.xml"><![CDATA[2df7be80e6b7b94cd9f882d75acf2763]]></item>
+		<item id="/feedback.inc.php"><![CDATA[96b1473f59439a2d47aa476ab5b9e5e7]]></item>
+		<item id="/faq.inc.php"><![CDATA[79e41eede4fb221ac2ce6988c49deaef]]></item>
+		<item id="/images/manage.css"><![CDATA[6b41fb8ea9a32acbc5c6365a85ee2f66]]></item>
+		<item id="/images/bg_tab_mid.gif"><![CDATA[da79a1002b9c209a9760211e9a08dd20]]></item>
+		<item id="/images/bg_tab.gif"><![CDATA[d8ddde434d1e604f36abf1936617f99c]]></item>
+		<item id="/images/index.html"><![CDATA[2be86a36b75b8a5e6e245e4f34ea86ff]]></item>
+		<item id="/images/faq.gif"><![CDATA[2016bd6b1d980e1609ecad8d4c40085b]]></item>
+		<item id="/images/index.htm"><![CDATA[2be86a36b75b8a5e6e245e4f34ea86ff]]></item>
+		<item id="/pluginvar.func.php"><![CDATA[06c68267b60d7144290620a3bfa52731]]></item>
+		<item id="/enable.php"><![CDATA[ed2d2ab078909bada894d14193b31a0a]]></item>
+		<item id="/disable.php"><![CDATA[5c27f13f9fd282b78e95cd2aeadd9fbe]]></item>
+		<item id="/upgrade.php"><![CDATA[98959b93cb06a9db5ae273d22d768269]]></item>
+		<item id="/index.htm"><![CDATA[2be86a36b75b8a5e6e245e4f34ea86ff]]></item>
+		<item id="/discuz_plugin_study_seo_sitemap_TC_BIG5.xml"><![CDATA[f7625b3a68571f62028aa4e5ad217fd6]]></item>
+		<item id="/uninstall.php"><![CDATA[8c5389edb30c9e8aa9073f1a5e0eeedf]]></item>
+		<item id="/thank.inc.php"><![CDATA[b5b4686f75457d56e4bf9066ad43ac9a]]></item>
+		<item id="/discuz_plugin_study_seo_sitemap_SC_GBK.xml"><![CDATA[73103c94c800e4b275b9949a576b68f1]]></item>
+		<item id="/discuz_plugin_study_seo_sitemap_SC_UTF8.xml"><![CDATA[15dc29b195f187b557ca23e7052c76fc]]></item>
+	</item>
+</root>

+ 504 - 0
data/addonmd5/yeei_dream.template.xml

xqd
@@ -0,0 +1,504 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<root>
+	<item id="Title"><![CDATA[Discuz! Addon MD5]]></item>
+	<item id="ID"><![CDATA[yeei_dream.template]]></item>
+	<item id="RevisionID"><![CDATA[22416]]></item>
+	<item id="SN"><![CDATA[2016102408X31A37nxAF]]></item>
+	<item id="RevisionDateline"><![CDATA[1381831203]]></item>
+	<item id="Data">
+		<item id="/common/header.htm"><![CDATA[59f7b0ef293fc91afa20bfd519cb18aa]]></item>
+		<item id="/common/footer.htm"><![CDATA[6d8cff51900f7c70d101b56ed726c1b0]]></item>
+		<item id="/common/header_userstatus.htm"><![CDATA[1c754f669b6647da150687474e0dffdf]]></item>
+		<item id="/common/extend_common.css"><![CDATA[b65c3dc69c962922d90c5f3b7c398742]]></item>
+		<item id="/yeei_cn/fl_collapsed_yes.gif"><![CDATA[f33762d87d7cacd121068fb0739e0289]]></item>
+		<item id="/yeei_cn/clock.gif"><![CDATA[bf0c0cd816740a6369db7f554f52a355]]></item>
+		<item id="/yeei_cn/scrolltop.png"><![CDATA[e619a381b11184c28e12b6c199d075d7]]></item>
+		<item id="/yeei_cn/preview.png"><![CDATA[455f0d7b1953a39b269ac5ffdae62323]]></item>
+		<item id="/yeei_cn/attach_nopermission.png"><![CDATA[1a28a668b5efa1e123fb2033f48e1ee1]]></item>
+		<item id="/yeei_cn/flw_attach_bg.png"><![CDATA[a0f26af743769e3a31e5cb806dc75b5e]]></item>
+		<item id="/yeei_cn/fl_hd.png"><![CDATA[54cecb9c2ec359bbb0663c3abd3143d4]]></item>
+		<item id="/yeei_cn/medal10.gif"><![CDATA[0ee68c3c43da5ca3332303e32ef81287]]></item>
+		<item id="/yeei_cn/tree_file.gif"><![CDATA[125ba9f71bd77357a8072f941f92797e]]></item>
+		<item id="/yeei_cn/icon_quote_m_s.gif"><![CDATA[7c92ae7844e5c26892af8390a2bd2467]]></item>
+		<item id="/yeei_cn/card.png"><![CDATA[7b923381674d727e10329157c13918a3]]></item>
+		<item id="/yeei_cn/digest_2.gif"><![CDATA[10a45b1411bf140897bb6ef0002ac196]]></item>
+		<item id="/yeei_cn/fl_ft.png"><![CDATA[1a497b866a675d2067c72ab600f0ca16]]></item>
+		<item id="/yeei_cn/hs_cz.gif"><![CDATA[f7976543d082b514b8b2566fe457494a]]></item>
+		<item id="/yeei_cn/icq.gif"><![CDATA[18da4b61d98868cf583a8d3dfd82a111]]></item>
+		<item id="/yeei_cn/input_shadow.png"><![CDATA[d37a814269fa0eea18e5e889cec45a8c]]></item>
+		<item id="/yeei_cn/tree_plusbottom.gif"><![CDATA[b3da7863263ec7b4a70f3db8cd118edb]]></item>
+		<item id="/yeei_cn/bg_home.png"><![CDATA[fd5a13cf3759310934b873cff9e1b96d]]></item>
+		<item id="/yeei_cn/portal.ico"><![CDATA[b2d574d9b7498aad1e7ab1b1bf985b55]]></item>
+		<item id="/yeei_cn/seccodeplayer.gif"><![CDATA[76c63d2e5a57eee90958b9e3a19407d5]]></item>
+		<item id="/yeei_cn/arrow_down.gif"><![CDATA[500bded7204591300a0acb17f59adfc5]]></item>
+		<item id="/yeei_cn/mu.png"><![CDATA[e873da0c0ee57a6309025b8b52242182]]></item>
+		<item id="/yeei_cn/online_guest.gif"><![CDATA[d095a57d1db2add618fa56b4db299eb7]]></item>
+		<item id="/yeei_cn/vline.png"><![CDATA[31b2d60698366d298dbb0b07232c0c2d]]></item>
+		<item id="/yeei_cn/qz.gif"><![CDATA[1ef13d7461b67e3feb595c63e32fa58a]]></item>
+		<item id="/yeei_cn/mobile-attach-2.png"><![CDATA[c441996d42cb0cbed2c3796adfa9b7aa]]></item>
+		<item id="/yeei_cn/star_level3.gif"><![CDATA[a2075b49baacb4adffa6cebe931359ea]]></item>
+		<item id="/yeei_cn/slide.png"><![CDATA[1b634e0605c91dacddba84a4b8253ccb]]></item>
+		<item id="/yeei_cn/close-s.png"><![CDATA[4d14dad46377e02623ecac0999ba4015]]></item>
+		<item id="/yeei_cn/pmto.gif"><![CDATA[b382eababd512821a7d5a69f219a06f2]]></item>
+		<item id="/yeei_cn/faq.gif"><![CDATA[2016bd6b1d980e1609ecad8d4c40085b]]></item>
+		<item id="/yeei_cn/online_supermod.gif"><![CDATA[88aadf2e9b3220c2b467c753de98c4eb]]></item>
+		<item id="/yeei_cn/icon_manage.gif"><![CDATA[f80b15662360ee0d34f1302af822ea5e]]></item>
+		<item id="/yeei_cn/control_l.png"><![CDATA[7e5a13f1e39f9a6bdb598aa7c0d4097f]]></item>
+		<item id="/yeei_cn/mobile-attach-1.png"><![CDATA[532e8c71b3020d5a90d7c4d09e3ecefc]]></item>
+		<item id="/yeei_cn/medal3.gif"><![CDATA[6036a5451c0c58f88bdbce941b56bcf1]]></item>
+		<item id="/yeei_cn/bb_fly.gif"><![CDATA[2914298a19a08750100052e9616b0659]]></item>
+		<item id="/yeei_cn/img_nopermission.png"><![CDATA[929e36a404d0f664ba37ff1e4f0a9296]]></item>
+		<item id="/yeei_cn/clipboard.swf"><![CDATA[c3e516e6d5977828d7586e382e9369e7]]></item>
+		<item id="/yeei_cn/pt_item.png"><![CDATA[7c38a4ac700c4df1cce9ebbf9b5909a3]]></item>
+		<item id="/yeei_cn/tip_top.png"><![CDATA[57171a556f08080e3143434016f2f549]]></item>
+		<item id="/yeei_cn/arw_d2.gif"><![CDATA[98deb50d4ee8cd72650b93184461e9c6]]></item>
+		<item id="/yeei_cn/flw_cnr_l.png"><![CDATA[d9f8838799d92dd138e6df32acd9c66f]]></item>
+		<item id="/yeei_cn/flw_post_w.jpg"><![CDATA[b491d1af1f939ddd13d509a49a644dfb]]></item>
+		<item id="/yeei_cn/stat.swf"><![CDATA[34bab7d08192bbea604ff6b9e8523dd9]]></item>
+		<item id="/yeei_cn/tree_minusmiddle.gif"><![CDATA[ebd18de1776e2bb068249745c2e5f5f7]]></item>
+		<item id="/yeei_cn/vds.png"><![CDATA[d8ed37a9516777d25c3be8faabe2de40]]></item>
+		<item id="/yeei_cn/titlebg_sd.png"><![CDATA[8ed9a124bf18a9955af5e50da51651a1]]></item>
+		<item id="/yeei_cn/flw_post.jpg"><![CDATA[d3b5b46ba0bc809a991f70e48770e875]]></item>
+		<item id="/yeei_cn/icon_down.gif"><![CDATA[97e514cd2122be7f25d06a2bcfd71a69]]></item>
+		<item id="/yeei_cn/folder_s.gif"><![CDATA[8585c737c6dcedd02b1e9fed0c565795]]></item>
+		<item id="/yeei_cn/loading.gif"><![CDATA[05235af1889d21cd47ed3fbf8cced673]]></item>
+		<item id="/yeei_cn/g_guide.png"><![CDATA[bf1aef5501fb051a8037685cc9816aeb]]></item>
+		<item id="/yeei_cn/album_upload.swf"><![CDATA[698e8428e906e9ecfbef97397ffce083]]></item>
+		<item id="/yeei_cn/logo_sc.png"><![CDATA[27642328724bed57b26364296c39c20f]]></item>
+		<item id="/yeei_cn/mu_bg.png"><![CDATA[c7825360341a8d7352238899e549a47b]]></item>
+		<item id="/yeei_cn/info.gif"><![CDATA[722cc181f518d0f0e92ab49aa2839060]]></item>
+		<item id="/yeei_cn/bg_doing_ico.jpg"><![CDATA[4e816eb169e0a872d0d2930b2a602306]]></item>
+		<item id="/yeei_cn/tree_minus.gif"><![CDATA[91f09495d50ee25d5474b0460d8813f7]]></item>
+		<item id="/yeei_cn/medal2.gif"><![CDATA[71b519df4abe8b32e1d282f5267c0af0]]></item>
+		<item id="/yeei_cn/titlebg.png"><![CDATA[47c44f22ac9221047b99987333a9d103]]></item>
+		<item id="/yeei_cn/rec_add.gif"><![CDATA[02648237a425f3de4f426e34bd889fc0]]></item>
+		<item id="/yeei_cn/rushreply_s.png"><![CDATA[a2650aad5d13230f4d6e232da080d264]]></item>
+		<item id="/yeei_cn/doodle.swf"><![CDATA[443e57ce7c5ce46d9ea2c1731868b290]]></item>
+		<item id="/yeei_cn/imageloading.gif"><![CDATA[4836e477448b514ed4316723253dd9cb]]></item>
+		<item id="/yeei_cn/home.gif"><![CDATA[5a8b85f344a38593a3ad3a7d3a9185a3]]></item>
+		<item id="/yeei_cn/tip_up.gif"><![CDATA[89f8da465fe6b53db230d9f9d28d288e]]></item>
+		<item id="/yeei_cn/disagree.gif"><![CDATA[0914e7c617b8d06506a6ead08e92fc28]]></item>
+		<item id="/yeei_cn/group.ico"><![CDATA[978bb680bd093a03f653d4b463c00d5e]]></item>
+		<item id="/yeei_cn/qq_bind.gif"><![CDATA[955f51d16c5e3f50834b424c43d6982e]]></item>
+		<item id="/yeei_cn/thread-prev.png"><![CDATA[4a8593af3b1d0a0b882e875b1a445549]]></item>
+		<item id="/yeei_cn/rss.gif"><![CDATA[c2676b20930ce9e2a808d000b7b7b47b]]></item>
+		<item id="/yeei_cn/newnotice.gif"><![CDATA[2f4d0672341fcf170c29547d37531bc4]]></item>
+		<item id="/yeei_cn/medal9.gif"><![CDATA[b6a2edba10640a14cd4105a6555ac15a]]></item>
+		<item id="/yeei_cn/vlineb.png"><![CDATA[780407ad01285ea3489188a3dfeaf980]]></item>
+		<item id="/yeei_cn/share_btn.png"><![CDATA[6f11da08a2ecaccd85487003b3695692]]></item>
+		<item id="/yeei_cn/star_level2.gif"><![CDATA[c2b41b369342326bbf016c9a97515ecc]]></item>
+		<item id="/yeei_cn/user_add.gif"><![CDATA[d99f7511fb83c89a5a425a184ff2cbbd]]></item>
+		<item id="/yeei_cn/attachinfobg.gif"><![CDATA[17ff4fc705fe85ac5a959c61db80faa2]]></item>
+		<item id="/yeei_cn/star_level1.gif"><![CDATA[82a5f212caa58cee3dafae65d5f270ec]]></item>
+		<item id="/yeei_cn/icon_task.gif"><![CDATA[87b62cf94534283a97edcca45d7c04f4]]></item>
+		<item id="/yeei_cn/cmt_ico.png"><![CDATA[d38882445f81f75b3b15f50fb0323e04]]></item>
+		<item id="/yeei_cn/ico_notice.png"><![CDATA[05ce86df6c1a72700734754b1d0c784d]]></item>
+		<item id="/yeei_cn/icon_ad.gif"><![CDATA[afe32d541624c4fa641a225761abbdfa]]></item>
+		<item id="/yeei_cn/popupcredit_btn.gif"><![CDATA[e7e4933b8d5f79aab8beaed90108be6a]]></item>
+		<item id="/yeei_cn/bg_share.png"><![CDATA[99f20d45e8ca42a101020162b1a7d495]]></item>
+		<item id="/yeei_cn/spacer.gif"><![CDATA[df3e567d6f16d040326c7a0ea29a4f41]]></item>
+		<item id="/yeei_cn/flw_statusico.png"><![CDATA[fd7b8ec9c7e2486cc77bc4a07dcd9d52]]></item>
+		<item id="/yeei_cn/rank_3.gif"><![CDATA[e7c7ba9d99e9c111b29c1e3a67da7c48]]></item>
+		<item id="/yeei_cn/status_setting.xml"><![CDATA[9280b7fd7229bbe046ec4517aab365c4]]></item>
+		<item id="/yeei_cn/home.ico"><![CDATA[42b051e860b2ee6b9f3d0b6753665d94]]></item>
+		<item id="/yeei_cn/digest_3.gif"><![CDATA[a116f5a28534b1d3c20435f057410df3]]></item>
+		<item id="/yeei_cn/swfupload.swf"><![CDATA[2965fde8451c74f8f34e297a91f1f31e]]></item>
+		<item id="/yeei_cn/card_btn.png"><![CDATA[d34df48384387872a14f5b4ba9857c68]]></item>
+		<item id="/yeei_cn/repquote.gif"><![CDATA[c6191f5c095899fe39e6f3ccc1043867]]></item>
+		<item id="/yeei_cn/hot.png"><![CDATA[164b4b481fe983935658df2b2afaaccd]]></item>
+		<item id="/yeei_cn/flash.gif"><![CDATA[5df4987aa24db026c74c4487a8b42764]]></item>
+		<item id="/yeei_cn/hot_3.gif"><![CDATA[bb7dd949e393e6df60ece0a5a77cc0d4]]></item>
+		<item id="/yeei_cn/title.png"><![CDATA[4380a858d6bcef5a2148608695b0558c]]></item>
+		<item id="/yeei_cn/check_error.gif"><![CDATA[b247df6c12a919291ee599eb53fe620e]]></item>
+		<item id="/yeei_cn/hd_shadow.png"><![CDATA[591cbdfc0b5150c0632142ebf2934311]]></item>
+		<item id="/yeei_cn/arw_l.gif"><![CDATA[ff56bfa217f45b8d0948d159aa02b12a]]></item>
+		<item id="/yeei_cn/arrow_right.gif"><![CDATA[70dee106269f64c17ed1c44150959173]]></item>
+		<item id="/yeei_cn/site_qq.jpg"><![CDATA[11576bc95e63a1db0f3d9f1fb0913f18]]></item>
+		<item id="/yeei_cn/arrow_top.gif"><![CDATA[06d9a98382b399d59850434a1bce33a8]]></item>
+		<item id="/yeei_cn/recommend_2.gif"><![CDATA[d69f5a872ceef9ce55aa36559f2037fc]]></item>
+		<item id="/yeei_cn/digest_1.gif"><![CDATA[6bb9871a522ff9e26cb663f367663946]]></item>
+		<item id="/yeei_cn/Increase.png"><![CDATA[dd923b522732d88672c4a296e1e37697]]></item>
+		<item id="/yeei_cn/pubsave.gif"><![CDATA[8585c737c6dcedd02b1e9fed0c565795]]></item>
+		<item id="/yeei_cn/watermark.gif"><![CDATA[783678542a46510e1e0372a7f8f59ee0]]></item>
+		<item id="/yeei_cn/emp.gif"><![CDATA[76084e29cb2cf72b320e888edc583dfb]]></item>
+		<item id="/yeei_cn/swfupload_fp9.swf"><![CDATA[abbb3b5e35383623e13d83542602ac9e]]></item>
+		<item id="/yeei_cn/arrow_left.gif"><![CDATA[8698e92ddb80388ed20cda237230d8d7]]></item>
+		<item id="/yeei_cn/treeline_short.gif"><![CDATA[1f1fdd1b2eda63294f746441e4862ff7]]></item>
+		<item id="/yeei_cn/addbuddy.gif"><![CDATA[e37b20a1103256e8a177b4f0f4ee92b7]]></item>
+		<item id="/yeei_cn/thead.png"><![CDATA[4cbd79ed611caf1f71666e6840c0d10d]]></item>
+		<item id="/yeei_cn/ad_close.gif"><![CDATA[a939f8ae09e7069e66f7b03e09851d5e]]></item>
+		<item id="/yeei_cn/mail_active.png"><![CDATA[f62ebc8272ab595cd6597aaf3794a635]]></item>
+		<item id="/yeei_cn/flw_allfeed.png"><![CDATA[f303db91e90804d1a529d9a4ebc95a6a]]></item>
+		<item id="/yeei_cn/connect_post_syn.png"><![CDATA[6deedf52ca4eb1e38108d4a3a895a14c]]></item>
+		<item id="/yeei_cn/flw_cnr_t.png"><![CDATA[66061c25afae233cce395f0537ad5e46]]></item>
+		<item id="/yeei_cn/pn_rt.png"><![CDATA[232be90bdaa698df6e8cb08b9ba3e9de]]></item>
+		<item id="/yeei_cn/flw_feed.png"><![CDATA[bf70edef29668af327299cf8cc65c829]]></item>
+		<item id="/yeei_cn/bg_usergroup.png"><![CDATA[4563c9109795c87bac91c3018733bbd3]]></item>
+		<item id="/yeei_cn/scf.gif"><![CDATA[109888833d79c8557cdbd4370b4a4990]]></item>
+		<item id="/yeei_cn/hs_qz.gif"><![CDATA[9dcf6278eb21bb70e8c78549465b4df0]]></item>
+		<item id="/yeei_cn/fach.gif"><![CDATA[b147b7a5509745fdd072c5badc7e5f87]]></item>
+		<item id="/yeei_cn/pin_4.gif"><![CDATA[ce4ffcea51e07af9492b95ca24c55885]]></item>
+		<item id="/yeei_cn/ico_lz.png"><![CDATA[1cf62d99c25bd81dfa3d268b5ae30ed8]]></item>
+		<item id="/yeei_cn/codebg.gif"><![CDATA[69ee904a2dd7ad20304c97167c8cd8d8]]></item>
+		<item id="/yeei_cn/data_valid.gif"><![CDATA[f52e87fd9bb6dcbb6bb07d6df0d1e6b7]]></item>
+		<item id="/yeei_cn/attachimg_2.png"><![CDATA[bf2380d7e45279a35958d8a917fc1e73]]></item>
+		<item id="/yeei_cn/bb_qq.gif"><![CDATA[ef3b7ff772ed8c448ab0350df1d19bc9]]></item>
+		<item id="/yeei_cn/attention.gif"><![CDATA[5da065e42809a990a0a176bdc0bb1777]]></item>
+		<item id="/yeei_cn/app.png"><![CDATA[6de9fb399c63bed6e1107e2f48ee6dcf]]></item>
+		<item id="/yeei_cn/sidecontrol.png"><![CDATA[cd1847684d37c0afb1206d677ef0cc0a]]></item>
+		<item id="/yeei_cn/passlevel.png"><![CDATA[091ad73692cb58a15a91a48df233bd4c]]></item>
+		<item id="/yeei_cn/flw_side_tab.png"><![CDATA[f52175545ea61c8852bc0123d5c6b881]]></item>
+		<item id="/yeei_cn/icon_quote_m_e.gif"><![CDATA[8921cb6a440406659e2c5dae15e5d5e7]]></item>
+		<item id="/yeei_cn/hotspot.gif"><![CDATA[fc8a09aeb8f9b8b00caaf5ea1e04e11a]]></item>
+		<item id="/yeei_cn/bigimg.png"><![CDATA[aec354b6e4e11b4c3fb136633bd380dd]]></item>
+		<item id="/yeei_cn/icon_quote_s.gif"><![CDATA[56d8d91b9132836db3f7dcb5ebd482bd]]></item>
+		<item id="/yeei_cn/flw_btn_unfo.png"><![CDATA[b65bb8f1a627023ad616dac0b9896694]]></item>
+		<item id="/yeei_cn/ol.gif"><![CDATA[eb407f23eed9ac9c2e1eab6b2020d6c2]]></item>
+		<item id="/yeei_cn/fl_ft_r.png"><![CDATA[2221e500f638f830300af3f9c6203737]]></item>
+		<item id="/yeei_cn/minus.gif"><![CDATA[26c7cc476b012cfca9b981b4a049b459]]></item>
+		<item id="/yeei_cn/watermark.png"><![CDATA[67c2592a112dcf4b498f6a9c33d68616]]></item>
+		<item id="/yeei_cn/stand_label.gif"><![CDATA[eb10543b73c21250b3f2f4144968b504]]></item>
+		<item id="/yeei_cn/rec_subtract.gif"><![CDATA[8fc5895dc12ab61043ca73ae8e570fa2]]></item>
+		<item id="/yeei_cn/clck.gif"><![CDATA[ce5d09a0d603fb1470c074fd5cfa3bcd]]></item>
+		<item id="/yeei_cn/thread_prize_s.png"><![CDATA[8ef6cbc75c4bd8e69ca86f41d0193b2f]]></item>
+		<item id="/yeei_cn/ratbg.gif"><![CDATA[f3e70feef391c9a3a2a737fd4df73382]]></item>
+		<item id="/yeei_cn/zslt_andriod.png"><![CDATA[7f882c5e7247a50a0a893b58f2022d10]]></item>
+		<item id="/yeei_cn/transparent.gif"><![CDATA[ed280a0ea3cc38f3cbbc747acfbef47d]]></item>
+		<item id="/yeei_cn/collapsed_no.gif"><![CDATA[932fc2d611f31101dfff16f4173694d2]]></item>
+		<item id="/yeei_cn/pdbtm.gif"><![CDATA[4a66228141e2dce1528d53cea6f15608]]></item>
+		<item id="/yeei_cn/flw_btn.png"><![CDATA[e43a683e3f02f0cd212fc677a0fed1bb]]></item>
+		<item id="/yeei_cn/thread-next.png"><![CDATA[6b7593b1f38c6dd26895d10afaace467]]></item>
+		<item id="/yeei_cn/uploading.gif"><![CDATA[35181a349ddfd9222e1ec681cc917b1a]]></item>
+		<item id="/yeei_cn/videophoto.gif"><![CDATA[844c4ab07af2340c8ca61ae35ed121b4]]></item>
+		<item id="/yeei_cn/flw_guide.png"><![CDATA[46bcb51082416412643634e62bde1d62]]></item>
+		<item id="/yeei_cn/fav_grey.gif"><![CDATA[0f1f60b4ef4721ef33113ce77e251f71]]></item>
+		<item id="/yeei_cn/avatar_blank.gif"><![CDATA[24e97b340ec9e9d72535db8e1f8087c5]]></item>
+		<item id="/yeei_cn/pm-ico5.png"><![CDATA[b44c59bdc076e8212e5bf89f29736763]]></item>
+		<item id="/yeei_cn/slisticon.gif"><![CDATA[d2dec38539ab29bfe0c7bd51c6c4ab12]]></item>
+		<item id="/yeei_cn/magic_imgbg.gif"><![CDATA[24a69c0eb6792cef9c1c0c352166a2e6]]></item>
+		<item id="/yeei_cn/n_rate.png"><![CDATA[59a0f7ffa0c5cf1d6acd08ecfe97252d]]></item>
+		<item id="/yeei_cn/pm.png"><![CDATA[37fb9775d0a1a807f4d17136ffb17f1d]]></item>
+		<item id="/yeei_cn/feed.gif"><![CDATA[035dd4b394b50505a085dd0506be0ba7]]></item>
+		<item id="/yeei_cn/recommend_1.gif"><![CDATA[9eada8c91feaee5649939f63ea44164e]]></item>
+		<item id="/yeei_cn/qq_big.gif"><![CDATA[36de48f2ece310da91a9d7cdb1c12405]]></item>
+		<item id="/yeei_cn/nophoto.gif"><![CDATA[1a1c6faf462b701c87c25d7d26401349]]></item>
+		<item id="/yeei_cn/img/titlebg.png"><![CDATA[47c44f22ac9221047b99987333a9d103]]></item>
+		<item id="/yeei_cn/img/l.png"><![CDATA[b4bb55efd7d27ab920edace45e6baffb]]></item>
+		<item id="/yeei_cn/img/vlineb.png"><![CDATA[780407ad01285ea3489188a3dfeaf980]]></item>
+		<item id="/yeei_cn/img/r.png"><![CDATA[99614425ed68c87b2e04621c18da50e1]]></item>
+		<item id="/yeei_cn/img/bg.gif"><![CDATA[dfd5d054704e6d676aa7d683a76febde]]></item>
+		<item id="/yeei_cn/img/nv_li.gif"><![CDATA[ab1e67ce81c787859c11d7db9bf5c73e]]></item>
+		<item id="/yeei_cn/img/dh.png"><![CDATA[cefe79c59f711ba6d3732a65a7b939cb]]></item>
+		<item id="/yeei_cn/img/a_mu.gif"><![CDATA[acefa09762e50b2298258ab07b9b19fa]]></item>
+		<item id="/yeei_cn/img/nv_a.gif"><![CDATA[18896fb802bef3880cea2eb2d11dbba2]]></item>
+		<item id="/yeei_cn/img/y_wp.png"><![CDATA[9c9551f2d291465313b943fb6b10cc86]]></item>
+		<item id="/yeei_cn/img/bottom_b.gif"><![CDATA[9d5ad3462e27aa26f7bd59548afae42c]]></item>
+		<item id="/yeei_cn/img/bg_t.gif"><![CDATA[8651c25c9b649c15ce72a550aead2196]]></item>
+		<item id="/yeei_cn/img/sc.png"><![CDATA[6e2547898b65afa315a229bfcab9bd3c]]></item>
+		<item id="/yeei_cn/img/logo.png"><![CDATA[3d97d90e788314d296467c4b35498e4b]]></item>
+		<item id="/yeei_cn/img/pt.gif"><![CDATA[271c417eb15f5ac816b31393bef15ecb]]></item>
+		<item id="/yeei_cn/img/1.gif"><![CDATA[241001c809c91446562b2ef421d095fe]]></item>
+		<item id="/yeei_cn/img/bg_t.jpg"><![CDATA[a30378ade09c0b8ed494c59add19cecd]]></item>
+		<item id="/yeei_cn/img/bg.jpg"><![CDATA[b3e3346f100c08faa9fac6c7de1bd3c2]]></item>
+		<item id="/yeei_cn/img/fb_bg.gif"><![CDATA[241001c809c91446562b2ef421d095fe]]></item>
+		<item id="/yeei_cn/extstyle_none.css"><![CDATA[7215ee9c7d9dc229d2921a40e899ec5f]]></item>
+		<item id="/yeei_cn/mail_inactive.png"><![CDATA[f277595b7864f312556b529b29da5039]]></item>
+		<item id="/yeei_cn/icon_feed.png"><![CDATA[41eab075f3c4d73a3c7bca0bea134238]]></item>
+		<item id="/yeei_cn/pin_3.gif"><![CDATA[ac0d312e8b452c49e1846dc2c72b3a9d]]></item>
+		<item id="/yeei_cn/pn_color.png"><![CDATA[c41b3bf58a1266167064b08ebac82740]]></item>
+		<item id="/yeei_cn/user_online.gif"><![CDATA[3bf4aa01aff59e35767af13a718a3d8b]]></item>
+		<item id="/yeei_cn/pm-bg1.png"><![CDATA[70e1201bc3583e2225574b555bf0b3a6]]></item>
+		<item id="/yeei_cn/search.gif"><![CDATA[8f4470e8ec86db464cce240fffd28213]]></item>
+		<item id="/yeei_cn/gb.gif"><![CDATA[df8d7ad3d34378262638ae6456354948]]></item>
+		<item id="/yeei_cn/msnchat.gif"><![CDATA[37dc4dc91eb55f648ca3e195f8edbf58]]></item>
+		<item id="/yeei_cn/Google_small.png"><![CDATA[3f2ec80c7a6425a6d2a0786918e346d6]]></item>
+		<item id="/yeei_cn/logo_88_31.gif"><![CDATA[7bc90be09df536f4f14a464be456a652]]></item>
+		<item id="/yeei_cn/vd.gif"><![CDATA[24a292cf10f38534f035f8deb93a0e81]]></item>
+		<item id="/yeei_cn/polljoins.gif"><![CDATA[61ab7660a45b6f774cbd84a6239baa22]]></item>
+		<item id="/yeei_cn/mobile-attach-3.png"><![CDATA[4511c7b953dfc6f137f7e64f4edc5b19]]></item>
+		<item id="/yeei_cn/tree_plus.gif"><![CDATA[9fa85f282cd7b75988b9399f7f3bc821]]></item>
+		<item id="/yeei_cn/nv.png"><![CDATA[b02c0551341677c53349001303d4151d]]></item>
+		<item id="/yeei_cn/chart.png"><![CDATA[3046ca1c2d74c72b752711e737c1a965]]></item>
+		<item id="/yeei_cn/rwd.gif"><![CDATA[baa1a0953a7eb7544d9b21a5ac356a4e]]></item>
+		<item id="/yeei_cn/bbs.ico"><![CDATA[9c21883fb836cd1f956ab792aa9b51aa]]></item>
+		<item id="/yeei_cn/arw.gif"><![CDATA[317573a29f24a632f6568e60b4717af9]]></item>
+		<item id="/yeei_cn/searchbar.png"><![CDATA[dc5cfb2fbf47b6af5d113e5fc7b65634]]></item>
+		<item id="/yeei_cn/cls.gif"><![CDATA[d342eae0634409d21c22818dd4e101d9]]></item>
+		<item id="/yeei_cn/pollsmall.gif"><![CDATA[1377a36b6026637d10e5533f2adccee2]]></item>
+		<item id="/yeei_cn/debate_chart.gif"><![CDATA[d4aac3fc1ff43224d0cf423aa5a53484]]></item>
+		<item id="/yeei_cn/homelink.gif"><![CDATA[ad4435438db252591933513a42355615]]></item>
+		<item id="/yeei_cn/online_member.gif"><![CDATA[e679735ca6f5ed898ba98e4433565003]]></item>
+		<item id="/yeei_cn/px_e.png"><![CDATA[6b6cfb9c603937d60d248dac43a8c3ea]]></item>
+		<item id="/yeei_cn/msnadd.gif"><![CDATA[6e0167d5e4faa75465a2aabc04d46817]]></item>
+		<item id="/yeei_cn/qq_login.gif"><![CDATA[5303890a49bf80d5d9227155cc844e29]]></item>
+		<item id="/yeei_cn/share_img.png"><![CDATA[89df04f13970d60e66784f6bdaa979be]]></item>
+		<item id="/yeei_cn/check_right.gif"><![CDATA[67140a21f80675f4d9a781c2b8673e2f]]></item>
+		<item id="/yeei_cn/newarow.gif"><![CDATA[9df8c0bbbf3885c3cecc424afda95306]]></item>
+		<item id="/yeei_cn/starlevel.gif"><![CDATA[a241d287a226e7e313b7fccf3d1144d5]]></item>
+		<item id="/yeei_cn/info_small.gif"><![CDATA[dd434df66e834a9855c503032f5f7359]]></item>
+		<item id="/yeei_cn/nophototiny.png"><![CDATA[051ed162d344cd64f15879cb22de7d9c]]></item>
+		<item id="/yeei_cn/pnp2.png"><![CDATA[27866c23ae53b28d8b3fcc42367ed54b]]></item>
+		<item id="/yeei_cn/style_switch.png"><![CDATA[64337453800dbb67728cf0cd0cd32397]]></item>
+		<item id="/yeei_cn/popuptext_bg.gif"><![CDATA[13cdfe50e5dfb3f1c5797a94c5952aa1]]></item>
+		<item id="/yeei_cn/appsetting.gif"><![CDATA[0bcceb3bfb133c75af13696f92134fc3]]></item>
+		<item id="/yeei_cn/bb_sub.gif"><![CDATA[d10df4516844e2ab6de21a7cea0e1877]]></item>
+		<item id="/yeei_cn/app_add.gif"><![CDATA[d98a8d3f0fc8757958c89ce37f0c9300]]></item>
+		<item id="/yeei_cn/forum_new.gif"><![CDATA[99bd8b9ed487cad85b11e1c0da4ce108]]></item>
+		<item id="/yeei_cn/medal7.gif"><![CDATA[8d1b1267727a88106698f901aa08747b]]></item>
+		<item id="/yeei_cn/ico_mulu.png"><![CDATA[08916f7663dacf34fff7f1957c9c4050]]></item>
+		<item id="/yeei_cn/background.png"><![CDATA[5c884d51205f2f58a0e12eb91d6fb665]]></item>
+		<item id="/yeei_cn/p_reward_btn.png"><![CDATA[86403043a6d7a84d21c350af3205ebbf]]></item>
+		<item id="/yeei_cn/flw_post.png"><![CDATA[ccc34dd28828a3e67a4e879af6d8e0e5]]></item>
+		<item id="/yeei_cn/dash.gif"><![CDATA[fb03c277355c70e6f8dd12ea1ec23045]]></item>
+		<item id="/yeei_cn/mark.png"><![CDATA[82e61bea510aa69cd59c58a3445e9fdb]]></item>
+		<item id="/yeei_cn/pic-prev.png"><![CDATA[a391b7065702c60b4c549dd1f20dc29f]]></item>
+		<item id="/yeei_cn/portalbox_bg.gif"><![CDATA[c2473e2f4d5b215e39e5376891099163]]></item>
+		<item id="/yeei_cn/vline2.png"><![CDATA[a455b47c319be28f852fe96310af8ee8]]></item>
+		<item id="/yeei_cn/attachmediacode.gif"><![CDATA[621ff508e7821a980ddd7b3c028b0bfe]]></item>
+		<item id="/yeei_cn/tree_empty.gif"><![CDATA[df22aff6e941ff1cc577333d1712b584]]></item>
+		<item id="/yeei_cn/arw_r.gif"><![CDATA[9c78185bd7a37edc626b9c2fdb62f480]]></item>
+		<item id="/yeei_cn/user_link.gif"><![CDATA[cf8556be5d0a96d086e5176f2adcaa5f]]></item>
+		<item id="/yeei_cn/tradesmall.gif"><![CDATA[6f14398137b759fb447a72af3bc6d218]]></item>
+		<item id="/yeei_cn/flw_btn_unfo_s.png"><![CDATA[8048da5305c9820b31dd43ef4929c0f5]]></item>
+		<item id="/yeei_cn/settop.png"><![CDATA[6f4529e35043fcf493c648564bdda7c9]]></item>
+		<item id="/yeei_cn/cam.swf"><![CDATA[2b1822a9f0894d863d1eb61861623711]]></item>
+		<item id="/yeei_cn/back.gif"><![CDATA[9eca379253a3d5381424a00382b69684]]></item>
+		<item id="/yeei_cn/mobile.png"><![CDATA[5c5986e3f17d23f29b21be4138b991ba]]></item>
+		<item id="/yeei_cn/fastreply.gif"><![CDATA[c0b76967ccc352f1f4bf746893c2814c]]></item>
+		<item id="/yeei_cn/weibo.png"><![CDATA[9e35eb8dbad40bb3f1510b070c621b38]]></item>
+		<item id="/yeei_cn/refresh.png"><![CDATA[9303e94431403dc813aa81ce1973e350]]></item>
+		<item id="/yeei_cn/folder_new.gif"><![CDATA[ffc4115d4feefc928a3acdfa19b19480]]></item>
+		<item id="/yeei_cn/tavatar.gif"><![CDATA[46ccf85e52575062c319633f5c0fc058]]></item>
+		<item id="/yeei_cn/music.gif"><![CDATA[d186df19984f4e46bd59553fa3cd405b]]></item>
+		<item id="/yeei_cn/medal1.gif"><![CDATA[e7962bc5664bfa53ab2a19b33aa2feb1]]></item>
+		<item id="/yeei_cn/icon_search.png"><![CDATA[f350dfa7d654d15022732944d5323c3b]]></item>
+		<item id="/yeei_cn/attach_nopermission_bg.png"><![CDATA[866490a8cd214655ca3176a7781c836c]]></item>
+		<item id="/yeei_cn/ios.png"><![CDATA[456bc1ddad5eb4d2e0bc45b89f2a750a]]></item>
+		<item id="/yeei_cn/pt_z.png"><![CDATA[c0f5d2c624d020a218fd90fe3314eca6]]></item>
+		<item id="/yeei_cn/taobao.gif"><![CDATA[f14ca9248fec60123721a2dcd6838a3f]]></item>
+		<item id="/yeei_cn/noicon.gif"><![CDATA[c688d2d1bfccfe663aee9c1d6e1d3476]]></item>
+		<item id="/yeei_cn/online_moderator.gif"><![CDATA[2d29fcf160d9f89f258c06713df3673c]]></item>
+		<item id="/yeei_cn/category_lbg.png"><![CDATA[22003ed9e7c3495873e5cc007e6ac00e]]></item>
+		<item id="/yeei_cn/mood_input.png"><![CDATA[9e1b6b2ff60af838eadb96d2ad1a62ba]]></item>
+		<item id="/yeei_cn/rewardsmall.gif"><![CDATA[75c9c87d752dc4c2713b3ff95683fbdb]]></item>
+		<item id="/yeei_cn/flw_btn_specialfo.png"><![CDATA[dc2bdd2b2985a1f7e1dbfbb9fff03ac7]]></item>
+		<item id="/yeei_cn/ad.gif"><![CDATA[afe32d541624c4fa641a225761abbdfa]]></item>
+		<item id="/yeei_cn/v.png"><![CDATA[e4efc45663dff627e089377222cb652a]]></item>
+		<item id="/yeei_cn/debate_vs.gif"><![CDATA[2a21b22f293f8a41c5befb4d8c50184f]]></item>
+		<item id="/yeei_cn/forumlink.gif"><![CDATA[ad4435438db252591933513a42355615]]></item>
+		<item id="/yeei_cn/connect_config_mark.png"><![CDATA[28b8702ce664c9820a4bc14488ab93ce]]></item>
+		<item id="/yeei_cn/arrow.gif"><![CDATA[e15e06144d70110b5e41713b104f017a]]></item>
+		<item id="/yeei_cn/pic-next.png"><![CDATA[9b95cba3a80095ce73a3bc9a4781e0a5]]></item>
+		<item id="/yeei_cn/plus.gif"><![CDATA[03e55cc8c88c96ca497a9a43e0f5ad27]]></item>
+		<item id="/yeei_cn/atten.gif"><![CDATA[5da065e42809a990a0a176bdc0bb1777]]></item>
+		<item id="/yeei_cn/error.gif"><![CDATA[3208c6cfe942d5a55a535db8eb60b67b]]></item>
+		<item id="/yeei_cn/p_trade_btn.png"><![CDATA[8d978f47d24daa95160cc059f540a934]]></item>
+		<item id="/yeei_cn/un_selector.png"><![CDATA[60f7ff41f7a423d83e3f4c2b00da263c]]></item>
+		<item id="/yeei_cn/arr_w.gif"><![CDATA[d21f3d0465c4387f4160209ad482e2d7]]></item>
+		<item id="/yeei_cn/pm-bg2.png"><![CDATA[578c49ef9530e6fec62865392326ce54]]></item>
+		<item id="/yeei_cn/attl_icon.png"><![CDATA[93d2c1e71b01e2ee800c81c48a3cc6a5]]></item>
+		<item id="/yeei_cn/zslt_ios.png"><![CDATA[08dcc1557048e3b0bf74143587a2b635]]></item>
+		<item id="/yeei_cn/qa.gif"><![CDATA[75ea765bb3cedf668b985bd6f81a844b]]></item>
+		<item id="/yeei_cn/medal4.gif"><![CDATA[73b4764166b2cea677f6c1542bc4e631]]></item>
+		<item id="/yeei_cn/alipaysmall.gif"><![CDATA[480934e1852cbcd776ea9fd2b45f1fe6]]></item>
+		<item id="/yeei_cn/nosexbg.png"><![CDATA[7f489f39b2d898a484ade18cfb630ea1]]></item>
+		<item id="/yeei_cn/qmenu.png"><![CDATA[c54993905f9afb333cc9181a60c99266]]></item>
+		<item id="/yeei_cn/data_invalid.gif"><![CDATA[7ec5ec275164f90643b2f6331105da46]]></item>
+		<item id="/yeei_cn/hs_cs.gif"><![CDATA[73c1d82b1e80a5611d0448c77e8d169a]]></item>
+		<item id="/yeei_cn/flw_post_attach.png"><![CDATA[bf8d4a1758344f74f4713cd6b3cb326e]]></item>
+		<item id="/yeei_cn/qq_share.png"><![CDATA[01702b461d62870e5ed50dc15192b46b]]></item>
+		<item id="/yeei_cn/collapsed_yes.gif"><![CDATA[a342c17d3f4111d17cd55a0d2e06a3a5]]></item>
+		<item id="/yeei_cn/connect_avatar.png"><![CDATA[a3525236002d7d0038d764e8f490d7b4]]></item>
+		<item id="/yeei_cn/userinfo.gif"><![CDATA[df5b2b7ddfbe18c9126492abce5298d7]]></item>
+		<item id="/yeei_cn/copy.png"><![CDATA[aef976c1b202ab4fe6458df9f380154f]]></item>
+		<item id="/yeei_cn/quote.gif"><![CDATA[c27339de5906b8b703f3e394ef36cb09]]></item>
+		<item id="/yeei_cn/rank_1.gif"><![CDATA[1c7711f67292b448d4395ad03ca57ff1]]></item>
+		<item id="/yeei_cn/mobile-type-ie6.png"><![CDATA[cd06171324f4726632730f05764411cd]]></item>
+		<item id="/yeei_cn/new_pm_2.png"><![CDATA[1d34db4095fa470f58462c16f35c01f3]]></item>
+		<item id="/yeei_cn/tree_root.gif"><![CDATA[9c6e0e5848c6fcd84b8dadeb8e03034e]]></item>
+		<item id="/yeei_cn/drag.gif"><![CDATA[a48bd3c0d74d48b19c09f4cc64d96233]]></item>
+		<item id="/yeei_cn/debate_dr.jpg"><![CDATA[511bc3bafffe5d4ec49df453fb2119a9]]></item>
+		<item id="/yeei_cn/op.png"><![CDATA[ad175740d87a588590631c9dc2b81446]]></item>
+		<item id="/yeei_cn/pin.gif"><![CDATA[5191e9ce394d568e947783b462e51370]]></item>
+		<item id="/yeei_cn/popupcredit_bg.gif"><![CDATA[2c00b1029439ac146931beaa56336655]]></item>
+		<item id="/yeei_cn/bodybg.gif"><![CDATA[f423f6d805831284e24eb8965e34f30a]]></item>
+		<item id="/yeei_cn/icon_append.png"><![CDATA[b49eef6ead8e8494aa62659c9ed00a92]]></item>
+		<item id="/yeei_cn/push.png"><![CDATA[e06e97ed904d16a3ce020936bb522929]]></item>
+		<item id="/yeei_cn/rt.png"><![CDATA[0df6faea1e4b3483da2e53e856d3e6e8]]></item>
+		<item id="/yeei_cn/midavt_shadow.gif"><![CDATA[f963f59150a14294c5d69c686db9e5df]]></item>
+		<item id="/yeei_cn/pin_1.gif"><![CDATA[d0f9d0897af71896e9677444de8f9059]]></item>
+		<item id="/yeei_cn/nophotosmall.gif"><![CDATA[6e830193f7e1419b908d5726c3dcbbf5]]></item>
+		<item id="/yeei_cn/treeline_long.gif"><![CDATA[b81074b4ff603adbff29424d2312cc11]]></item>
+		<item id="/yeei_cn/cancelbutton.gif"><![CDATA[155cf77c3c0053753b9559a000e8af38]]></item>
+		<item id="/yeei_cn/fl_collapsed_no.gif"><![CDATA[2076926810967fe024476078040f1613]]></item>
+		<item id="/yeei_cn/tag.gif"><![CDATA[a21e7fb78fef86c0678b6a3b83d36386]]></item>
+		<item id="/yeei_cn/livethreadtitle.png"><![CDATA[a2df466966155289db41002a8dada0fc]]></item>
+		<item id="/yeei_cn/mine_icn.png"><![CDATA[fea3b97537bbf9cbdcaa94c5c72afc94]]></item>
+		<item id="/yeei_cn/upload.swf"><![CDATA[0d8462b53a22bf53a204ccb1b2b3c043]]></item>
+		<item id="/yeei_cn/hot_2.gif"><![CDATA[bd5556691aa1348524bea43625c7a834]]></item>
+		<item id="/yeei_cn/px.png"><![CDATA[1120da8344d0a52265635f08820867f4]]></item>
+		<item id="/yeei_cn/flw_following.png"><![CDATA[cc3741971df4f9da8d95c7a5a2eeac97]]></item>
+		<item id="/yeei_cn/pm-bg3.png"><![CDATA[738743425f8dfd5df154126772b27d68]]></item>
+		<item id="/yeei_cn/re_unsolved.gif"><![CDATA[ea8da2fb3a234f3c52d3e87aab65683a]]></item>
+		<item id="/yeei_cn/activitysmall.gif"><![CDATA[266d99019fa9b290c91407d86b819242]]></item>
+		<item id="/yeei_cn/newclose.gif"><![CDATA[d342eae0634409d21c22818dd4e101d9]]></item>
+		<item id="/yeei_cn/date_magnify.png"><![CDATA[aa3240d863fd405077f18f133d20aafd]]></item>
+		<item id="/yeei_cn/medal6.gif"><![CDATA[d1ac51d5529e49327d5c240943ca901c]]></item>
+		<item id="/yeei_cn/connect_qq.gif"><![CDATA[1734de1cd8fb3315f1bdef4a36ed17e8]]></item>
+		<item id="/yeei_cn/more1.png"><![CDATA[420105f6723d6fd1de78535db1c4942a]]></item>
+		<item id="/yeei_cn/yahoo.gif"><![CDATA[101816a3d93499a46e46f91fb4abe288]]></item>
+		<item id="/yeei_cn/user_offline.gif"><![CDATA[72bcf1d44feaeadf04bcd5005d10bc39]]></item>
+		<item id="/yeei_cn/uploadbutton.png"><![CDATA[8d0c03e505511e31e3d1f2406604f66f]]></item>
+		<item id="/yeei_cn/tip_up_grey.gif"><![CDATA[6fcf8bd102a9f3a4fe1d04d2e53d6c82]]></item>
+		<item id="/yeei_cn/legend_reward.gif"><![CDATA[b8a743e189b29b9ca35d7cdac9826eea]]></item>
+		<item id="/yeei_cn/ann_icon.gif"><![CDATA[59fc6bba2d57364fe999d700321f6f25]]></item>
+		<item id="/yeei_cn/ico_jdt.png"><![CDATA[76561192c30611e059595c6dffa7d987]]></item>
+		<item id="/yeei_cn/code_bg.png"><![CDATA[ceb9fcda4e39b46533ba0214bbaacb9b]]></item>
+		<item id="/yeei_cn/tree_plusmiddle.gif"><![CDATA[5d0c4e49c344e5520e2a9e5eebc68cee]]></item>
+		<item id="/yeei_cn/rright.gif"><![CDATA[12e27383a08e2b25e970515c3d2dcfc4]]></item>
+		<item id="/yeei_cn/arrow_down_big.gif"><![CDATA[bc3876c0904d9f3f51136effb2fb4c3d]]></item>
+		<item id="/yeei_cn/access_normal.gif"><![CDATA[3f72bb8706d0ed2e38d92ee9b064ee05]]></item>
+		<item id="/yeei_cn/arrow_up.png"><![CDATA[bfac6cbcb1cd66727078c9a3d639d5d3]]></item>
+		<item id="/yeei_cn/icon_top.gif"><![CDATA[72b5136a61d544dfc98e96cd5ec5a4f1]]></item>
+		<item id="/yeei_cn/switch_style.png"><![CDATA[78cd307357ae22a376ccda899d2fd57c]]></item>
+		<item id="/yeei_cn/tree_linebottom.gif"><![CDATA[7e925a166bcf763a27cf716e4f1ffe78]]></item>
+		<item id="/yeei_cn/js/DD_belatedPNG_0.0.8a-min.js"><![CDATA[849d70044bc54678f4835308534513bd]]></item>
+		<item id="/yeei_cn/folder_lock.gif"><![CDATA[c5d717c4c00a3a71a655822fc3c32dc8]]></item>
+		<item id="/yeei_cn/icon_quote_e.gif"><![CDATA[f218b37abea3b5b4a347d051080de781]]></item>
+		<item id="/yeei_cn/pic_nv_next.gif"><![CDATA[2e9032c2e2503dd8fb636805bdaaaf38]]></item>
+		<item id="/yeei_cn/facelist.gif"><![CDATA[02e57021bba0fdc446802658efed6786]]></item>
+		<item id="/yeei_cn/forum.gif"><![CDATA[9e1e16607a1d90b73741f31ad8dc1563]]></item>
+		<item id="/yeei_cn/rwd2.gif"><![CDATA[316381ee5bdcb15214312c4ddff03ed1]]></item>
+		<item id="/yeei_cn/flag.gif"><![CDATA[a2083480ee70858adb67f5fbb61e9115]]></item>
+		<item id="/yeei_cn/logo.png"><![CDATA[82537d47ada3b2649894d2c56d45a1b7]]></item>
+		<item id="/yeei_cn/videophoto_btn.gif"><![CDATA[3dadeb4406dc9ffdd362cc25aa3f6baa]]></item>
+		<item id="/yeei_cn/dot.gif"><![CDATA[a30e58c7264d97b746f28fbd68e53c78]]></item>
+		<item id="/yeei_cn/hs_qg.gif"><![CDATA[a553d91cd8247b092976247ce2571430]]></item>
+		<item id="/yeei_cn/medal8.gif"><![CDATA[785ee8b324569ef2bb21ce107b03029c]]></item>
+		<item id="/yeei_cn/recyclebin.gif"><![CDATA[d183c02689201c38af7399bbf5dc50a5]]></item>
+		<item id="/yeei_cn/pm_ntc.gif"><![CDATA[627132856f13480184c730e29053f779]]></item>
+		<item id="/yeei_cn/pn_reply.png"><![CDATA[a9af353b2bcfb203aa54553043bb4472]]></item>
+		<item id="/yeei_cn/appnew.png"><![CDATA[a8e4587f9cfbebd688197f0ff4a170ec]]></item>
+		<item id="/yeei_cn/qzone.gif"><![CDATA[a9754b610e95b189f5326bb19de48783]]></item>
+		<item id="/yeei_cn/pn_post.png"><![CDATA[9bfb8b7b6c491b9de9c2abd9a35c158f]]></item>
+		<item id="/yeei_cn/nopublish.gif"><![CDATA[5b1305d4c729af6758c718e7879f1445]]></item>
+		<item id="/yeei_cn/fall.png"><![CDATA[3c80e3b5b601cadcf177bb76f14d96f1]]></item>
+		<item id="/yeei_cn/dot_c.gif"><![CDATA[9ce6acab6f8fe7fae5672a98baa1bce5]]></item>
+		<item id="/yeei_cn/app_set.gif"><![CDATA[e4e9eb4186622a8a32bb3179ef9f7be9]]></item>
+		<item id="/yeei_cn/oshr.png"><![CDATA[fddf03ad3ce3cdc81d226d2edf7d8842]]></item>
+		<item id="/yeei_cn/print.png"><![CDATA[f6a155832c4564860439a27de5c88d03]]></item>
+		<item id="/yeei_cn/notice.gif"><![CDATA[e6fe82209f9f6cd43631593360a5d453]]></item>
+		<item id="/yeei_cn/pdbt.gif"><![CDATA[435253c44c2505e8538ed94bf81a2623]]></item>
+		<item id="/yeei_cn/arw_d.gif"><![CDATA[84c80f6ff5928aa2a849fc60c52a69ac]]></item>
+		<item id="/yeei_cn/cmmnt.gif"><![CDATA[d3010e88278d0fffc8cc3ece29de73c2]]></item>
+		<item id="/yeei_cn/qq.gif"><![CDATA[44bf00ace335179432cf9baf2fbeb21f]]></item>
+		<item id="/yeei_cn/apphot.png"><![CDATA[550d541d51e4bc536f5bfbed639890a0]]></item>
+		<item id="/yeei_cn/btnS.png"><![CDATA[dfa8d11616d274a7a98d707212be2517]]></item>
+		<item id="/yeei_cn/bb_sup.gif"><![CDATA[ec74a296f9d508369dacd2afc2037cf8]]></item>
+		<item id="/yeei_cn/create_group.png"><![CDATA[d1fe350a972dbdc1049b1c36be93f78f]]></item>
+		<item id="/yeei_cn/debatesmall.gif"><![CDATA[5427e1b02e7dcdaf1331b487ea4ad5ec]]></item>
+		<item id="/yeei_cn/fav.gif"><![CDATA[c60ae139e99832de84fd12c7d41b452f]]></item>
+		<item id="/yeei_cn/agree.gif"><![CDATA[f53be16f50f957f1242168e5cdd5820f]]></item>
+		<item id="/yeei_cn/warning.gif"><![CDATA[9083dbf70468d7ac25128f018422b89f]]></item>
+		<item id="/yeei_cn/collection.png"><![CDATA[64ea8a65e06df3d872d10d152da07262]]></item>
+		<item id="/yeei_cn/flw_ico.png"><![CDATA[383530409489245ff009358b3c8009e2]]></item>
+		<item id="/yeei_cn/flw_btn_s.png"><![CDATA[9cb2223d444d7f54bc34c733c62efaac]]></item>
+		<item id="/yeei_cn/numbg.gif"><![CDATA[c52771b67ca1b2dbbe7894c5f8320ef8]]></item>
+		<item id="/yeei_cn/alipay_logo.gif"><![CDATA[3116481326a49827ec7e81bd14cc22be]]></item>
+		<item id="/yeei_cn/arrow_up_hover.png"><![CDATA[46106d3a515f78bdc78549f4e43eb4cd]]></item>
+		<item id="/yeei_cn/uploadbutton_small.png"><![CDATA[563a891e5097ba65693dc05510ec422e]]></item>
+		<item id="/yeei_cn/groupicon.gif"><![CDATA[122541818b029c344e54bb0925ad511c]]></item>
+		<item id="/yeei_cn/grid.png"><![CDATA[fa196d7ac11d213a3bedab4b2c6555b7]]></item>
+		<item id="/yeei_cn/pg_bg.png"><![CDATA[5b8baa4c131aed98375f901da9006e58]]></item>
+		<item id="/yeei_cn/close.gif"><![CDATA[c62559524d105e0199b3e00c8bd261b9]]></item>
+		<item id="/yeei_cn/pic_nv_prev.gif"><![CDATA[0e95a09f6b5d91b6e818c6dad45c49d0]]></item>
+		<item id="/yeei_cn/icon_collection.png"><![CDATA[3f27b7f4c0ec17876253d126c81f2ee6]]></item>
+		<item id="/yeei_cn/pn.png"><![CDATA[87cf38cc5ab4f602d7b82e0dc9bbfce1]]></item>
+		<item id="/yeei_cn/viewpay.gif"><![CDATA[a109e4534c66f70c9f6c4b231e064c85]]></item>
+		<item id="/yeei_cn/none.gif"><![CDATA[bf7d3e1972b3fe5bfe8c119fee05e89d]]></item>
+		<item id="/yeei_cn/tb.png"><![CDATA[4b97417d356c39ccb6f595f7b192f315]]></item>
+		<item id="/yeei_cn/flvplayer.swf"><![CDATA[7d675405ff7c94fa899784b7ccae68d3]]></item>
+		<item id="/yeei_cn/nv_a.png"><![CDATA[30006d8eff8bfbb4e29701eb30a18320]]></item>
+		<item id="/yeei_cn/bg_waterfall.png"><![CDATA[76e9a20b59211d31490ffb1b13ca390c]]></item>
+		<item id="/yeei_cn/mood_input_btn.png"><![CDATA[752ba31350c484c1c5df91b8e101a1be]]></item>
+		<item id="/yeei_cn/imagelist_nav.png"><![CDATA[f98f1255282f2a2703e3d23a06291d46]]></item>
+		<item id="/yeei_cn/attachimg.gif"><![CDATA[839922e44e69266397822bebe5a8f884]]></item>
+		<item id="/yeei_cn/new_pm.gif"><![CDATA[83d3c92db54405913a727696d2255a89]]></item>
+		<item id="/yeei_cn/pm_member.png"><![CDATA[110ffd7207be4f2366787e9383ef7f98]]></item>
+		<item id="/yeei_cn/pllb.png"><![CDATA[55d2db08364e63e2759bc59ed8e9e737]]></item>
+		<item id="/yeei_cn/control_r.png"><![CDATA[4765a0b1575b3f94a69b57c387f79745]]></item>
+		<item id="/yeei_cn/mp3player.swf"><![CDATA[f73b6405a9bb7a06ecca93bfc89f8d81]]></item>
+		<item id="/yeei_cn/fj_btn.png"><![CDATA[d0bc29383cf1a98a9dee93cae05ae305]]></item>
+		<item id="/yeei_cn/pt_icn.png"><![CDATA[2e17442e727972231667574ae4fa9acf]]></item>
+		<item id="/yeei_cn/newarow_big.gif"><![CDATA[f5706e319346f29f9c152337d092034f]]></item>
+		<item id="/yeei_cn/tree_line.gif"><![CDATA[463b0dfe60d859433e0164c9533ac9e1]]></item>
+		<item id="/yeei_cn/index.htm"><![CDATA[7215ee9c7d9dc229d2921a40e899ec5f]]></item>
+		<item id="/yeei_cn/tree_linemiddle.gif"><![CDATA[44dea49bb586184e15468dc841a45d04]]></item>
+		<item id="/yeei_cn/systempm.png"><![CDATA[75331d0927ef4b626f1e03963614c63f]]></item>
+		<item id="/yeei_cn/access_allow.gif"><![CDATA[123485d8232243d6fd8124fa72d9b867]]></item>
+		<item id="/yeei_cn/mdly.png"><![CDATA[ee6deb282328a9ae4c20ddc70b40f154]]></item>
+		<item id="/yeei_cn/search.png"><![CDATA[023bf13beeebac77fdafffa4f1cfde06]]></item>
+		<item id="/yeei_cn/arrow_right_big.gif"><![CDATA[66acb0a055365fc31f394e5ec9748c04]]></item>
+		<item id="/yeei_cn/medal5.gif"><![CDATA[00e2683b6e94fe39f0d8bb386e113852]]></item>
+		<item id="/yeei_cn/tip_bottom.png"><![CDATA[4cb37af1099b93a01f328671f37b8b2a]]></item>
+		<item id="/yeei_cn/tree_folderopen.gif"><![CDATA[08beb7725c26d4736c462f4ac67b49a7]]></item>
+		<item id="/yeei_cn/ratesrcorebg.gif"><![CDATA[e946b878aab946b0113dc66f32196779]]></item>
+		<item id="/yeei_cn/locked.gif"><![CDATA[5b3ac58fc29ecc1622cfc845c5c4d310]]></item>
+		<item id="/yeei_cn/addicn.gif"><![CDATA[f743921aad752e0331ee319edf05fc10]]></item>
+		<item id="/yeei_cn/p_topusr_btn.png"><![CDATA[dde7865ffb43ee1aa09cb82836af5de1]]></item>
+		<item id="/yeei_cn/pin_2.gif"><![CDATA[859d28ebc4b631a629243002ee6be48b]]></item>
+		<item id="/yeei_cn/sigline.gif"><![CDATA[309026e6895bbe46e5eb3e4b90deaae7]]></item>
+		<item id="/yeei_cn/gentlemanbg.png"><![CDATA[1ab2faf9cca28fab4ee32d1f67040f2c]]></item>
+		<item id="/yeei_cn/edit.gif"><![CDATA[da4b239b59c925a8b9bac762b28ec78a]]></item>
+		<item id="/yeei_cn/icon_fav.png"><![CDATA[bc12a7282899f6b40d7556d3fd5943a0]]></item>
+		<item id="/yeei_cn/ladybg.png"><![CDATA[47d64421902e677bea36c7ed014ab500]]></item>
+		<item id="/yeei_cn/folder_common.gif"><![CDATA[5f8168bb3ba2bc107fdb658c78e6c77d]]></item>
+		<item id="/yeei_cn/se.gif"><![CDATA[49c15b7cd656a125e0345c0eab282ada]]></item>
+		<item id="/yeei_cn/player.swf"><![CDATA[5fe5c729ab7038027be819832e6fd099]]></item>
+		<item id="/yeei_cn/uploadbutton_small_pic.png"><![CDATA[76e0ba4869feaf2810c73142d4cf049d]]></item>
+		<item id="/yeei_cn/switch_width.png"><![CDATA[e223f548c6b313e1f52f66965d155aac]]></item>
+		<item id="/yeei_cn/security.png"><![CDATA[bcc407ab412372a0ebcfd3ae822c5e88]]></item>
+		<item id="/yeei_cn/bg_doing.png"><![CDATA[9955c97b4e268bdf87212159486dec0e]]></item>
+		<item id="/yeei_cn/qq_bind_small.gif"><![CDATA[2772bb5963055ab01078bd491f7e2669]]></item>
+		<item id="/yeei_cn/mifm.png"><![CDATA[eb29c09d089cfd8a8e71199471451295]]></item>
+		<item id="/yeei_cn/recommend_3.gif"><![CDATA[05d2d9ad3e82f48ca9691a3beecf1d63]]></item>
+		<item id="/yeei_cn/arrwd.gif"><![CDATA[500bded7204591300a0acb17f59adfc5]]></item>
+		<item id="/yeei_cn/gst.gif"><![CDATA[cd87ebed00e1986e64812c0e9c7eee82]]></item>
+		<item id="/yeei_cn/mobile-type.png"><![CDATA[cc5c7493d1ec54200555335b4b571e01]]></item>
+		<item id="/yeei_cn/p_debate_chart.png"><![CDATA[0ff31917fde26bc9f68a9dbe6751009d]]></item>
+		<item id="/yeei_cn/imgzoom_tb.gif"><![CDATA[efccbc39b885fb1b0e39a09d20210701]]></item>
+		<item id="/yeei_cn/atarget.png"><![CDATA[127b48b0d9f880ce108e47660503017a]]></item>
+		<item id="/yeei_cn/rleft.gif"><![CDATA[52bb109177da9621d317e98969ecaf1d]]></item>
+		<item id="/yeei_cn/tree_minusbottom.gif"><![CDATA[eadf6cdea290f690f102f1a7551151ee]]></item>
+		<item id="/yeei_cn/security.gif"><![CDATA[57fa79714e28bdbfff2601a511c780a6]]></item>
+		<item id="/yeei_cn/sortnum.png"><![CDATA[66ef1fdd9a40f1d69d171bd70fe2bca9]]></item>
+		<item id="/yeei_cn/pengyou.png"><![CDATA[c73b8e425406a93deeeaa3bb6c599ca4]]></item>
+		<item id="/yeei_cn/attinbg.gif"><![CDATA[190f1317fdb8590fb76121e3ef661cc1]]></item>
+		<item id="/yeei_cn/annpm.png"><![CDATA[22bdd6f79f1704d4b2a25c0f1dd1d867]]></item>
+		<item id="/yeei_cn/topnav.png"><![CDATA[6ee294752940de83bf07a6750ab56422]]></item>
+		<item id="/yeei_cn/debate_bg.gif"><![CDATA[b97fe4e6d3711d3bb359cb2a81945065]]></item>
+		<item id="/yeei_cn/tenpay_logo.gif"><![CDATA[c593c77d4cf6e09736ef48950e27c0dc]]></item>
+		<item id="/yeei_cn/icon_preview.png"><![CDATA[02b5093eaef926de761ba0f0a7bc98aa]]></item>
+		<item id="/yeei_cn/focus.swf"><![CDATA[c16a7c6143f098472e52dd13de85527f]]></item>
+		<item id="/yeei_cn/winner_flag.gif"><![CDATA[9a4e45359fb23f06f62b44c949bd65a0]]></item>
+		<item id="/yeei_cn/side.png"><![CDATA[efa1689eea47655cb957c0f79646f12d]]></item>
+		<item id="/yeei_cn/pg_arw.png"><![CDATA[25c75741e7518b62d97ffa5e97dbfc52]]></item>
+		<item id="/yeei_cn/rank_2.gif"><![CDATA[a075844e2ed7183d0a5dd2ced7a4a989]]></item>
+		<item id="/yeei_cn/andriod.png"><![CDATA[03c18d5439459c0a1a7b43daf4b526ce]]></item>
+		<item id="/yeei_cn/hot_1.gif"><![CDATA[78e0ad21e05de35d386b7a917ca5721c]]></item>
+		<item id="/yeei_cn/tree_folder.gif"><![CDATA[6482e859e7e4ffdbe436b50b27715f92]]></item>
+		<item id="/yeei_cn/r_b_resize.png"><![CDATA[487673ce15ebfe7f5d7d3ee5b2b2861f]]></item>
+		<item id="/yeei_cn/grouppm.png"><![CDATA[bf8a79f29ec47e00fa3ca7d2120a7550]]></item>
+		<item id="/yeei_cn/mobile-attach-4.png"><![CDATA[1d03734a6236013d3f95af72d02664d2]]></item>
+		<item id="/yeei_cn/logo_sc_s.png"><![CDATA[addfe983364528baafeb443ddab1869e]]></item>
+		<item id="/yeei_cn/bg.png"><![CDATA[4c7bbd98a5b5f307316f361c51fc1c01]]></item>
+		<item id="/yeei_cn/right.gif"><![CDATA[d9ff43f18d468615f2ae13bba9ff634c]]></item>
+		<item id="/yeei_cn/closed.png"><![CDATA[fa9f9669a69d895f34818e49561ce7d1]]></item>
+		<item id="/yeei_cn/online_admin.gif"><![CDATA[192969dc12128cec078a00106e342dba]]></item>
+		<item id="/yeei_cn/access_disallow.gif"><![CDATA[9aa903890d9242d43d25b6da3dd63f5d]]></item>
+		<item id="/yeei_cn/attachurl.gif"><![CDATA[c14a4d4db12b941fe36620e2a660197a]]></item>
+		<item id="/forum/discuz.htm"><![CDATA[5786d0e8ed5887184aa8b84b9524fead]]></item>
+		<item id="/preview.jpg"><![CDATA[19ffdca11d85f52e709edc80e347f8f6]]></item>
+		<item id="/discuz_style_yeei_dream.xml"><![CDATA[47c12ff01dd3b98e33f04a32eaeaa24e]]></item>
+	</item>
+</root>

+ 0 - 0
data/attachment/album/index.htm


BIN
data/attachment/block/00/00f231102f3b855a5e518355cb620b41.jpg


+ 0 - 0
data/attachment/block/00/index.html


BIN
data/attachment/block/03/03d5072f5232561b9c0f44488afb3c17.jpg


+ 0 - 0
data/attachment/block/03/index.html


BIN
data/attachment/block/15/155282fd9a8d0cbf64e78d2f9e91c953.jpg


+ 0 - 0
data/attachment/block/15/index.html


BIN
data/attachment/block/18/186418823641f2a4b216a4f9fc6d391d.jpg


+ 0 - 0
data/attachment/block/18/index.html


+ 0 - 0
data/attachment/block/19/index.html


+ 0 - 0
data/attachment/block/22/index.html


BIN
data/attachment/block/23/236aad35faaa352f17e3cdcd765c487b.jpg


+ 0 - 0
data/attachment/block/23/index.html


+ 0 - 0
data/attachment/block/3c/index.html


+ 0 - 0
data/attachment/block/3d/index.html


BIN
data/attachment/block/3e/3e32fabfe55e4f307675624a26bf63a0.jpg


+ 0 - 0
data/attachment/block/3e/index.html


+ 0 - 0
data/attachment/block/40/index.html


BIN
data/attachment/block/43/43579b9b7c6eff141d29f00d0114dd66.jpg


+ 0 - 0
data/attachment/block/43/index.html


BIN
data/attachment/block/44/448ebb8f9102091273c7acc695809989.jpg


+ 0 - 0
data/attachment/block/44/index.html


+ 0 - 0
data/attachment/block/46/index.html


BIN
data/attachment/block/4b/4b5c049d40e0c67ec0cc6eeec060ff00.jpg


+ 0 - 0
data/attachment/block/4b/index.html


BIN
data/attachment/block/50/5070ee4732b20592e418beaa83950695.jpg


+ 0 - 0
data/attachment/block/50/index.html


BIN
data/attachment/block/59/594153466da5ebef5c29d533b5635fd6.jpg


+ 0 - 0
data/attachment/block/59/index.html


BIN
data/attachment/block/5d/5d938cc273b8500227ee3e9052615af6.jpg


+ 0 - 0
data/attachment/block/5d/index.html


BIN
data/attachment/block/69/699495b94a5e4b003a767ecff158235f.jpg


+ 0 - 0
data/attachment/block/69/index.html


BIN
data/attachment/block/6c/6cb7e163a85f789a9e076a92d563a25d.jpg


+ 0 - 0
data/attachment/block/6c/index.html


BIN
data/attachment/block/6e/6eb9d9fe9a532133a3df3fea2be10e66.jpg


+ 0 - 0
data/attachment/block/6e/index.html


BIN
data/attachment/block/72/7236949d7bd947771f40f8ac5017a0ec.jpg


+ 0 - 0
data/attachment/block/72/index.html


+ 0 - 0
data/attachment/block/73/index.html


BIN
data/attachment/block/77/77d35751c56b95f21124f5f6b9390d1d.jpg


+ 0 - 0
data/attachment/block/77/index.html


BIN
data/attachment/block/78/78637432b61e4e2131ccf3a31bfef3b4.jpg


+ 0 - 0
data/attachment/block/78/index.html


+ 0 - 0
data/attachment/block/79/index.html


BIN
data/attachment/block/7a/7af3c7f4157d1a4b2beaa9083264065f.jpg


+ 0 - 0
data/attachment/block/7a/index.html


+ 0 - 0
data/attachment/block/7c/index.html


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است