Commit 8c803ad1 by tangweichao

first commit

0 parents
Showing with 2940 additions and 0 deletions

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

+======================================+
Discuz! X3.4 Release 20180101
+======================================+
增加 HTML版头像上传机制
优化 Media改成扩展形式
+======================================+
Discuz! X3.4 Release 20171001
+======================================+
优化 去除云平台
增加 新触屏版(本地化微社区前端)
+======================================+
Discuz! X3.3 Release 20170401
+======================================+
兼容 PHP7
优化 SQL查询
修复 安全问题
优化 优化缓存机制改为扩展形式,可自由扩展
新增 APCu、Yac、文件缓存,文件缓存默认开启
+--------------------------------------+
往日版本( Old Version )
+--------------------------------------+
Discuz! X1 Beta Release 20100501
Discuz! X1 Release 20100518
Discuz! X1 Release 20100601
Discuz! X1 Release 20100613
Discuz! X1 Release 20100723
Discuz! X1.5RC Release 20100901
Discuz! X1.5
Discuz! X2
Discuz! X2.5
Discuz! X3
Discuz! X3.1
Discuz! X3.2
\ No newline at end of file
||==================================||
Discuz! X 转换文档
||==================================||
本文档用于帮助您将原有社区产品转换或者转换到 Discuz! X 系列产品。
在您开始转换之前,请务必逐条仔细阅读以下的注意事项:
1. 转换之前,为了确保无误,强烈建议您备份原有数据,我们无法对转换前没有备份的用
户提供任何技术支持
2. 通常情况下,我们的转换程序放置在发行版本的 ./utilities/convert 目录中,此程序
可以独立于产品运行
3. 我们不能保障转换或者转换到 Discuz! X 产品当中所有的数据都是有效的,某些插件或
者自行开发的功能数据需要您自行转换
4. 大多数情况下,您转换到 Discuz! X 产品以后,需要进入后台进行一系列重新设置,否
则某些功能可能无法正常使用。
5. 除非有特殊的声明,我们的转换程序不会改变您原有的数据格式和设置,他会将原有数
据重新复制一份,并做格式转换。所以,在转换开始之前,您应当检查您的数据库存储
空间是否够用。假设您原有数据是 100M,您至少需要 110M 以上的数据剩余空间,否则
可能无法转换成功
6. 转换成功后,请您删除 convert 程序,以避免可能的安全问题
+--------------------------------------+
转换方法和步骤
+--------------------------------------+
1. 进入您原来的系统,关闭您的站点。
2. 进行数据备份,附件备份
3. 备份您的系统的配置文件 例如 config.inc.php,记录下当中的各种服务器信息,例如
mysql 数据库
4. 将原有程序 全部转移到一个备份目录,例如 old
5. 上传 Discuz! X 程序到您的站点目录
6. 正确安装 Discuz! X (如果您的 UCenter Server 是独立安装的,您需要提供他的访问
路径和创始人密码)
7. 上传 utilities 目录中的 convert 文件夹到您的站点根目录
设置为可写(777)
8. 访问 http://您的域名/convert 开始转换/转换
9. convert 程序当中集成了多种程序可以转换到 Discuz! X,请您根据系统进行选择
10. 转换程序通常会提供一个转换或者安装说明,您在开始之前请仔细阅读他
11. 按照程序提示,直至所有转换执行完毕
+--------------------------------------+
转换疑难解决
+--------------------------------------+
您在转换过程中遇到任何问题,可通过以下途径解决
1. 到我们的讨论区寻求帮助和支持
http://www.discuz.net
2. 查看详细转换指导文件
http://faq.comsenz.com/category-202
3. 商业用户可以根据您购买的服务,使用电话、MSN、QQ、论坛等多种方式寻求技术支持
+--------------------------------------+
常见问题和解答
+--------------------------------------+
1. 我必须要先安装 Discuz! X 么?
通常是这样的,尤其是在进行转换的时候,这是最关键的一步,否则无法转换成功
2. 我已经安装了 Discuz! 论坛和 UChome 两个产品,可以转换到 Discuz! X 产品么?
可以的。Discuz! X 融合了论坛和 SNS 的功能,转换以后,您的两个产品将会完美整合
3. 转换 Discuz! 和 UChome 有什么特殊要求么?
在进行转换之前,您必须在站点上安装 DiscuzX 程序,并保证它可以正常运行。
如果您仅仅安装了某一个产品,那么转换到 DiscuzX 是容易的,按照提示即可。
如果您安装了两个或者多个产品,那么转换的时候要注意转换顺序,您首先应当转换论
坛产品到 Discuz! X,然后再执行其他转换程序,转换 UChome 或者 Supesite
4. 为何我转换完毕以后,站点的用户都没有了
转换程序只有检测到 UCenter 数据表的时候,才会转换用户数据。如果您以前使用的是
我们提供的 Discuz! 完整版,转换程序可以自动检测到 UCenter 的。但是如果您使用的
是自己独立安装的 UCenter,那么转换程序会检测不到。
解决的办法:
请重新安装您的 Discuz! X,安装的时候选择 仅安装 Discuz! X (手工指定已经安
装的 UCenter Server),然后填入您的 UCenter 的信息,并开始安装。安装完毕以后重新
开始转换。
5. 我原来的论坛规模很大,转换程序对数据的大小有限制么?是否可能确保转换成功?
我们的转换程序经过多次的测试,并在 >6G 的数据环境中反复转换成功,因此对于原始
数据的大小是没有限制的,只不过随着数据量越大,转换时间越长。您应当保障
数据转换期间,服务器一直是可用的。
6. 如果转换中途出错或者意外中断,该如何处理?
如果出现意外中断,通常情况下您应当根据错误提示,排除错误,然后再重新开始。
转换程序提供了高级转换模式,您可以选择跳过某些转换步骤,而不必重新来过,但您
应当了解哪些步骤已经执行过,否则可能导致数据转换不完整。
如果您是在转换 UChome 或者 Supesite 过程中出错,并且此时论坛已经转换完毕,
那么您可能需要重新转换论坛,然后再执行 UChome 的转换,否则转换可能无法成功。
因此,如果您需要转换论坛 + UChome + ... 多个程序,我们建议您在每个转换程序结束,
对已经转换好的数据进行备份,这样可以在中断的时候,恢复备份,然后继续执行。
7. 转换过程中需要人工干预么?
除了转换前面需要填写一些信息和选择转换程序,转换一旦开始,程序将会自动运行和
跳转,所以您无需进行干预。不恰当的干预反而可能在成转换中断或者失败。
\ No newline at end of file
+----------------------------------+
Discuz! X 社区软件系统简介
+----------------------------------+
Crossday Discuz! Board(以下简称 Discuz!,中国国家版权局著作权登记号 2008SR11708
)是腾讯云计算(北京)有限责任公司,即原康盛创想(北京)科技有限公司(英文简称Comsenz),
推出的一套通用的社区论坛软件系统。作为国内最大的社区软件及服务提供商,Comsenz旗下的
Discuz! 产品,无论在功能、稳定性、负载能力、安全保障等方面都居于国内外同类产品领先地位,
是全球成熟度最高、覆盖率最大的论坛软件系统之一。
+----------------------------------+
Discuz! X 社区软件的下载
+----------------------------------+
您可以随时从我们的官方下载站下载到最新版本,以及各种补丁
http://www.discuz.net/
+----------------------------------+
Discuz! X 软件的技术支持
+----------------------------------+
当您在安装、升级、日常使用当中遇到疑难,请您到以下站点获取技术支持。
Discuz! 讨论区: http://www.discuz.net
Discuz! 使用手册: https://www.discuz.net/portal.php?mod=list&catid=8
Discuz! 应用中心: http://addon.discuz.com
Discuz! 商业授权购买: http://www.discuz.net/redirect.php?service
||==================================||
Discuz! X 升级文档
||==================================||
本文档用于帮助您将 Discuz! X 版本程序升级至现今版本,如果您的论坛不是 Discuz! X
系列,请首先使用我们的转换程序。
在您开始升级之前,请务必逐条仔细阅读以下的注意事项:
1. 升级之前,为了确保无误,强烈建议您备份原有数据,我们无法对升级前没有备份的用
户提供任何技术支持
2. 通常情况下,我们的升级程序是 update.php, 他放置在发行版本的 ./utilities/ 目录中
3. 大多数情况下,您升级到 Discuz! X 产品以后,需要进入后台进行一系列重新设置,否
则某些功能可能无法正常使用。
4. 升级成功后,请您删除 update 程序,以避免可能的安全问题
+--------------------------------------+
升级方法和步骤(以下方法仅适用于Discuz!X系列产品)
+--------------------------------------+
1. 进入您原来的系统,关闭您的站点。进行数据备份。
2. 站点建立 old 文件夹,除 data, config, uc_server, uc_client 之外的文件移动到 old 目录中
3. 下载并解压缩最新版的程序包(请注意需要与您原来的语言版本一样,不可混用)
4. 程序包解压缩后,可以看到 readme, upload, utilities 三个目录,
5. 上传upload目录中的程序到服务器论坛目录,如果提示需要覆盖,则选择“是”
6. 将压缩包中 /utilities/ 目录中的 update.php 程序上传到您的论坛 install 目录。并删除 install 目录
中的 index.php
7. 访问 http://您的域名/论坛目录/install/update.php
8. 按照程序提示,直至所有升级完毕。删除 update.php 程序,以免被恶意利用。
9. 进入论坛后台,更新缓存,并对新功能进行设置和测试。
10.old目录中如果存放有非discuzX程序文件,则将他备份或者恢复到原来的位置,否则当中的程序可以在升级成功后删除。
+--------------------------------------+
升级疑难解决
+--------------------------------------+
您在升级过程中遇到任何问题,可通过以下途径解决
1. 到我们的讨论区寻求帮助和支持
http://www.discuz.net
2. 查看详细升级指导文件
http://faq.comsenz.com/category-202
3. 商业用户可以根据您购买的服务,使用电话、MSN、QQ、论坛等多种方式寻求技术支持
\ No newline at end of file
<?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_cron = false;
$discuz->init();
$admincp = new discuz_admincp();
$admincp->core = & $discuz;
$admincp->init();
$admincp_actions_founder = array('templates', 'db', 'founder', 'postsplit', 'threadsplit', 'cloudaddons', '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', 'announce', 'faq', 'ec', 'remoderate',
'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();
if($action == 'cloudaddons') {
cpmsg('cloudaddons_noaccess', '', 'error');
} else {
cpmsg('action_noaccess', '', 'error');
}
}
?>
\ No newline at end of file
<?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();
}
?>
\ No newline at end of file
<!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>
<?php
if(phpversion() >= '5.3') {
include 'zendcheck53.php';
} else {
include 'zendcheck52.php';
}
?>
\ No newline at end of file
<?php @Zend;
4123;
/*
\ No newline at end of file
<?php @Zend;
3074;
/*
\ No newline at end of file
<?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);
dheader('Content-Type: application/javascript');
echo 'document.write(\''.preg_replace("/\r\n|\n|\r/", '\n', addcslashes($data, "'\\")).'\');';
?>
\ No newline at end of file
<?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);
dheader('Content-Type: application/javascript');
echo 'document.write(\''.preg_replace("/\r\n|\n|\r/", '\n', addcslashes($data, "'\\")).'\');';
?>
\ No newline at end of file
<?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';
}
}
?>
\ No newline at end of file
<?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);
}
}
?>
\ No newline at end of file
<?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');
}
}
\ No newline at end of file
<?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);
}
}
\ No newline at end of file
<?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("https://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'];
}
}
}
}
?>
\ No newline at end of file
<?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($_G['scheme'].'://'.$_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']);
}
?>
\ No newline at end of file
<?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($_G['scheme'].'://'.$_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']);
}
?>
\ No newline at end of file
<?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($_G['scheme'].'://'.$_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']);
}
?>
\ No newline at end of file
<?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']) && !empty($_GET['value'])) {
$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';
?>
\ No newline at end of file
<?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'] = '127.0.0.1';
$_config['db'][1]['dbuser'] = 'root';
$_config['db'][1]['dbpw'] = '';
$_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'] = ''; // File 缓存存放目录,如设置为 data/cache/filecache ,设置后启动 File 缓存
// 服务器相关设置
$_config['server']['id'] = 1; // 服务器编号,多webserver的时候,用于标识当前服务器的ID
// 附件下载相关
//
// 本地文件读取模式; 模式2为最节省内存方式,但不支持多线程下载
// 如需附件URL地址、媒体附件播放,需选择支持Range参数的读取模式1或4,其他模式会导致部分浏览器下视频播放异常
// 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 兼容模式
$_config['output']['upgradeinsecure'] = 0; // 在HTTPS环境下请求浏览器升级HTTP内链到HTTPS,此选项影响外域资源链接且与自定义CSP冲突 0=关闭(默认),1=打开
// 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']['onlyremoteaddr'] = 0; // 用户IP地址获取方式 0=信任HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR 1=只信任 REMOTE_ADDR
$_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['security']['creditsafe']['second'] = 0; // 开启用户积分信息安全,可防止并发刷分,满足 times(次数)/second(秒) 的操作无法提交
$_config['security']['creditsafe']['times'] = 10;
$_config['security']['fsockopensafe']['port'] = array(80); //fsockopen 有效的端口
$_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' => ''
// )
//);
?>
\ No newline at end of file
<?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');
?>
\ No newline at end of file
<?php
/*
[Discuz!] (C)2001-2099 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(isset($_GET['mod']) && $_GET['mod'] == 'register') {
$_GET['mod'] = 'connect';
$_GET['action'] = 'register';
require_once 'member.php';
exit;
}
define('APPTYPEID', 126);
define('CURSCRIPT', 'connect');
define('NOT_IN_MOBILE_API', 1);
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();
require_once DISCUZ_ROOT.'/source/plugin/qqconnect/lib/Connect.php';
$connectService = new Cloud_Service_Connect();
require_once libfile('connect/'.$mod, 'plugin/qqconnect');
?>
\ No newline at end of file
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: forum.php 33828 2013-08-20 02:29:32Z nemohou $
*/
define('APPTYPEID', 2);
define('CURSCRIPT', 'forum');
require './source/class/class_core.php';
require './source/function/function_forum.php';
$modarray = array('ajax','announcement','attachment','forumdisplay',
'group','image','index','medal','misc','modcp','notice','post','redirect',
'rss','topicadmin','trade','viewthread','tag','collection','guide'
);
$modcachelist = array(
'index' => array('announcements', 'onlinelist', 'forumlinks',
'heats', 'historyposts', 'onlinerecord', 'userstats', 'diytemplatenameforum'),
'forumdisplay' => array('smilies', 'announcements_forum', 'globalstick', 'forums',
'onlinelist', 'forumstick', 'threadtable_info', 'threadtableids', 'stamps', 'diytemplatenameforum'),
'viewthread' => array('smilies', 'smileytypes', 'forums', 'usergroups',
'stamps', 'bbcodes', 'smilies', 'custominfo', 'groupicon', 'stamps',
'threadtableids', 'threadtable_info', 'posttable_info', 'diytemplatenameforum'),
'redirect' => array('threadtableids', 'threadtable_info', 'posttable_info'),
'post' => array('bbcodes_display', 'bbcodes', 'smileycodes', 'smilies', 'smileytypes',
'domainwhitelist', 'albumcategory'),
'space' => array('fields_required', 'fields_optional', 'custominfo'),
'group' => array('grouptype', 'diytemplatenamegroup'),
'topicadmin' => array('usergroups'),
);
$mod = !in_array(C::app()->var['mod'], $modarray) ? 'index' : C::app()->var['mod'];
define('CURMODULE', $mod);
$cachelist = array();
if(isset($modcachelist[CURMODULE])) {
$cachelist = $modcachelist[CURMODULE];
$cachelist[] = 'plugin';
$cachelist[] = 'pluginlanguage_system';
}
if(C::app()->var['mod'] == 'group') {
$_G['basescript'] = 'group';
}
C::app()->cachelist = $cachelist;
C::app()->init();
loadforum();
set_rssauth();
runhooks();
$navtitle = str_replace('{bbname}', $_G['setting']['bbname'], $_G['setting']['seotitle']['forum']);
$_G['setting']['threadhidethreshold'] = 1;
require DISCUZ_ROOT.'./source/module/forum/forum_'.$mod.'.php';
?>
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: group.php 31307 2012-08-10 02:10:56Z zhengqingpeng $
*/
define('APPTYPEID', 3);
define('CURSCRIPT', 'group');
require './source/class/class_core.php';
$discuz = C::app();
$cachelist = array('grouptype', 'groupindex', 'diytemplatenamegroup');
$discuz->cachelist = $cachelist;
$discuz->init();
$_G['disabledwidthauto'] = 0;
$modarray = array('index', 'my', 'attentiongroup');
$mod = !in_array($_G['mod'], $modarray) ? 'index' : $_G['mod'];
define('CURMODULE', $mod);
runhooks();
$navtitle = str_replace('{bbname}', $_G['setting']['bbname'], $_G['setting']['seotitle']['group']);
require DISCUZ_ROOT.'./source/module/group/group_'.$mod.'.php';
?>
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: home.php 32932 2013-03-25 06:53:01Z zhangguosheng $
*/
define('APPTYPEID', 1);
define('CURSCRIPT', 'home');
if(!empty($_GET['mod']) && ($_GET['mod'] == 'misc' || $_GET['mod'] == 'invite')) {
define('ALLOWGUEST', 1);
}
require_once './source/class/class_core.php';
require_once './source/function/function_home.php';
$discuz = C::app();
$cachelist = array('magic','usergroups', 'diytemplatenamehome');
$discuz->cachelist = $cachelist;
$discuz->init();
$space = array();
$mod = getgpc('mod');
if(!in_array($mod, array('space', 'spacecp', 'misc', 'magic', 'editor', 'invite', 'task', 'medal', 'rss', 'follow'))) {
$mod = 'space';
$_GET['do'] = 'home';
}
if($mod == 'space' && ((empty($_GET['do']) || $_GET['do'] == 'index') && ($_G['inajax']))) {
$_GET['do'] = 'profile';
}
$curmod = !empty($_G['setting']['followstatus']) && (empty($_GET['diy']) && empty($_GET['do']) && $mod == 'space' || $_GET['do'] == 'follow') ? 'follow' : $mod;
define('CURMODULE', $curmod);
runhooks($_GET['do'] == 'profile' && $_G['inajax'] ? 'card' : $_GET['do']);
require_once libfile('home/'.$mod, 'module');
?>
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: index.php 34524 2014-05-15 04:42:23Z nemohou $
*/
if(version_compare(PHP_VERSION, '8.0.0', '>=')) {
exit('This version of Discuz! is not compatible with >= PHP 8.0, Please install or update to higher version.');
}
if(!empty($_SERVER['QUERY_STRING']) && is_numeric($_SERVER['QUERY_STRING'])) {
$_ENV['curapp'] = 'home';
$_GET = array('mod'=>'space', 'uid'=>$_SERVER['QUERY_STRING']);
} else {
$url = '';
$domain = $_ENV = array();
$jump = false;
@include_once './data/sysdata/cache_domain.php';
$_ENV['domain'] = $domain;
if(empty($_ENV['domain'])) {
$_ENV['curapp'] = 'forum';
} else {
$_ENV['defaultapp'] = array('portal.php' => 'portal', 'forum.php' => 'forum', 'group.php' => 'group', 'home.php' => 'home');
$_ENV['hostarr'] = explode('.', $_SERVER['HTTP_HOST']);
$_ENV['domainroot'] = substr($_SERVER['HTTP_HOST'], strpos($_SERVER['HTTP_HOST'], '.')+1);
if(!empty($_ENV['domain']['app']) && is_array($_ENV['domain']['app']) && in_array($_SERVER['HTTP_HOST'], $_ENV['domain']['app'])) {
$_ENV['curapp'] = array_search($_SERVER['HTTP_HOST'], $_ENV['domain']['app']);
if($_ENV['curapp'] == 'mobile') {
$_ENV['curapp'] = 'forum';
if(!isset($_GET['mobile'])) {
@$_GET['mobile'] = '2';
}
}
if($_ENV['curapp'] == 'default' || !isset($_ENV['defaultapp'][$_ENV['curapp'].'.php'])) {
$_ENV['curapp'] = '';
}
} elseif(!empty($_ENV['domain']['root']) && is_array($_ENV['domain']['root']) && in_array($_ENV['domainroot'], $_ENV['domain']['root'])) {
$_G['setting']['holddomain'] = $_ENV['domain']['holddomain'] ? $_ENV['domain']['holddomain'] : array('www');
$list = $_ENV['domain']['list'];
if(isset($list[$_SERVER['HTTP_HOST']])) {
$domain = $list[$_SERVER['HTTP_HOST']];
switch($domain['idtype']) {
case 'subarea':
$_ENV['curapp'] = 'forum';
$_GET['gid'] = intval($domain['id']);
break;
case 'forum':
$_ENV['curapp'] = 'forum';
$_GET['mod'] = 'forumdisplay';
$_GET['fid'] = intval($domain['id']);
break;
case 'topic':
$_ENV['curapp'] = 'portal';
$_GET['mod'] = 'topic';
$_GET['topicid'] = intval($domain['id']);
break;
case 'channel':
$_ENV['curapp'] = 'portal';
$_GET['mod'] = 'list';
$_GET['catid'] = intval($domain['id']);
break;
case 'plugin':
$_ENV['curapp'] = 'plugin';
$_GET['id'] = $domain['id'];
$_GET['fromapp'] = 'index';
break;
}
} elseif(count($_ENV['hostarr']) > 2 && $_ENV['hostarr'][0] != 'www' && !checkholddomain($_ENV['hostarr'][0])) {
$_ENV['prefixdomain'] = addslashes($_ENV['hostarr'][0]);
$_ENV['domainroot'] = addslashes($_ENV['domainroot']);
require_once './source/class/class_core.php';
C::app()->init_setting = true;
C::app()->init_user = false;
C::app()->init_session = false;
C::app()->init_cron = false;
C::app()->init_misc = false;
C::app()->init();
$jump = true;
$domain = C::t('common_domain')->fetch_by_domain_domainroot($_ENV['prefixdomain'], $_ENV['domainroot']);
$apphost = $_ENV['domain']['app'][$domain['idtype']] ? $_ENV['domain']['app'][$domain['idtype']] : $_ENV['domain']['app']['default'];
$apphost = $apphost ? $_G['scheme'].'://'.$apphost.'/' : '';
switch($domain['idtype']) {
case 'home':
if($_G['setting']['rewritestatus'] && in_array('home_space', $_G['setting']['rewritestatus'])) {
$url = rewriteoutput('home_space', 1, $apphost, $domain['id']);
} else {
$url = $apphost.'home.php?mod=space&uid='.$domain['id'];
}
break;
case 'group':
if($_G['setting']['rewritestatus'] && in_array('group_group', $_G['setting']['rewritestatus'])) {
$url = rewriteoutput('group_group', 1, $apphost, $domain['id']);
} else {
$url = $apphost.'forum.php?mod=group&fid='.$domain['id'].'&page=1';
}
break;
}
}
} else {
$jump = true;
}
if(empty($url) && empty($_ENV['curapp'])) {
if(!empty($_ENV['domain']['defaultindex']) && !$jump) {
if($_ENV['defaultapp'][$_ENV['domain']['defaultindex']]) {
$_ENV['curapp'] = $_ENV['defaultapp'][$_ENV['domain']['defaultindex']];
} else {
$url = $_ENV['domain']['defaultindex'];
}
} else {
if($jump) {
$url = empty($_ENV['domain']['app']['default']) ? (!empty($_ENV['domain']['defaultindex']) ? $_ENV['domain']['defaultindex'] : 'forum.php') : (is_https() ? 'https' : 'http').'://'.$_ENV['domain']['app']['default'];
} else {
$_ENV['curapp'] = 'forum';
}
}
}
}
}
if(!empty($url)) {
$delimiter = strrpos($url, '?') ? '&' : '?';
if(isset($_GET['fromuid']) && $_GET['fromuid']) {
$url .= sprintf('%sfromuid=%d', $delimiter, $_GET['fromuid']);
} elseif(isset($_GET['fromuser']) && $_GET['fromuser']) {
$url .= sprintf('%sfromuser=%s', $delimiter, rawurlencode($_GET['fromuser']));
}
$parse = parse_url($url);
if(!isset($parse['host']) && file_exists($parse['path'])) {
if(!empty($parse['query'])) {
parse_str($parse['query'], $_GET);
}
require './'.$parse['path'];
} else {
header("location: $url");
}
} else {
require './'.$_ENV['curapp'].'.php';
}
function checkholddomain($domain) {
global $_G;
$domain = strtolower($domain);
if(preg_match("/^[^a-z]/i", $domain)) return true;
$holdmainarr = empty($_G['setting']['holddomain']) ? array('www') : explode('|', $_G['setting']['holddomain']);
$ishold = false;
foreach ($holdmainarr as $value) {
if(strpos($value, '*') === false) {
if(strtolower($value) == $domain) {
$ishold = true;
break;
}
} else {
$value = str_replace('*', '.*?', $value);
if(@preg_match("/$value/i", $domain)) {
$ishold = true;
break;
}
}
}
return $ishold;
}
function is_https() {
if(isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) != 'off') {
return true;
}
if(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https') {
return true;
}
if(isset($_SERVER['HTTP_X_CLIENT_SCHEME']) && strtolower($_SERVER['HTTP_X_CLIENT_SCHEME']) == 'https') {
return true;
}
if(isset($_SERVER['HTTP_FROM_HTTPS']) && strtolower($_SERVER['HTTP_FROM_HTTPS']) != 'off') {
return true;
}
if(isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) {
return true;
}
return false;
}
?>
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<item id="spacecss"><![CDATA[#portal_block_1 .dxb_bc {margin-left:0px !important;}#portal_block_2 .dxb_bc {font-size:14px !important;margin-left:10px !important;}]]></item>
<item id="layoutdata">
<item id="diy1"><![CDATA[]]></item>
<item id="diycontenttop"><![CDATA[]]></item>
<item id="diy5">
<item id="frame`framez4HEbL">
<item id="attr">
<item id="name"><![CDATA[framez4HEbL]]></item>
<item id="moveable"><![CDATA[true]]></item>
<item id="className"><![CDATA[frame move-span cl frame-1-1]]></item>
<item id="titles"><![CDATA[]]></item>
</item>
<item id="column`framez4HEbL_left">
<item id="attr">
<item id="name"><![CDATA[framez4HEbL_left]]></item>
<item id="className"><![CDATA[column frame-1-1-l]]></item>
</item>
<item id="block`portal_block_1">
<item id="attr">
<item id="name"><![CDATA[portal_block_1]]></item>
<item id="className"><![CDATA[block move-span]]></item>
<item id="titles"><![CDATA[]]></item>
</item>
</item>
</item>
<item id="column`framez4HEbL_center">
<item id="attr">
<item id="name"><![CDATA[framez4HEbL_center]]></item>
<item id="className"><![CDATA[column frame-1-1-r]]></item>
</item>
<item id="block`portal_block_2">
<item id="attr">
<item id="name"><![CDATA[portal_block_2]]></item>
<item id="className"><![CDATA[block move-span]]></item>
<item id="titles"><![CDATA[]]></item>
</item>
</item>
</item>
</item>
</item>
<item id="diycommendtop"><![CDATA[]]></item>
<item id="diycategorytop"><![CDATA[]]></item>
<item id="diycontentbottom"><![CDATA[]]></item>
<item id="diysidetop"><![CDATA[]]></item>
<item id="diysidemiddle"><![CDATA[]]></item>
<item id="diysidebottom"><![CDATA[]]></item>
<item id="diy4"><![CDATA[]]></item>
</item>
<item id="style"><![CDATA[]]></item>
<item id="blockdata">
<item id="block">
<item id="1">
<item id="bid"><![CDATA[1]]></item>
<item id="blockclass"><![CDATA[group_thread]]></item>
<item id="blocktype"><![CDATA[0]]></item>
<item id="name"><![CDATA[]]></item>
<item id="title"><![CDATA[]]></item>
<item id="classname"><![CDATA[]]></item>
<item id="summary"><![CDATA[]]></item>
<item id="uid"><![CDATA[1]]></item>
<item id="username"><![CDATA[admin]]></item>
<item id="styleid"><![CDATA[0]]></item>
<item id="blockstyle">
<item id="name"><![CDATA[]]></item>
<item id="blockclass"><![CDATA[group_thread]]></item>
<item id="makethumb"><![CDATA[1]]></item>
<item id="getpic"><![CDATA[1]]></item>
<item id="getsummary"><![CDATA[0]]></item>
<item id="settarget"><![CDATA[1]]></item>
<item id="fields">
<item id="0"><![CDATA[url]]></item>
<item id="1"><![CDATA[pic]]></item>
<item id="2"><![CDATA[title]]></item>
</item>
<item id="template">
<item id="raw"><![CDATA[<div class="module cl slidebox">
<ul class="slideshow">
[loop]
<li style="width: {picwidth}px; height: {picheight}px;"><a href="{url}"{target}><img src="{pic}" width="{picwidth}" height="{picheight}" /></a><span class="title">{title}</span></li>
[/loop]
</ul>
</div>
<script type="text/javascript">
runslideshow();
</script>]]></item>
<item id="footer"><![CDATA[]]></item>
<item id="header"><![CDATA[]]></item>
<item id="indexplus">
</item>
<item id="index">
</item>
<item id="orderplus">
</item>
<item id="order">
</item>
<item id="loopplus">
</item>
<item id="loop"><![CDATA[<li style="width: {picwidth}px; height: {picheight}px;"><a href="{url}"{target}><img src="{pic}" width="{picwidth}" height="{picheight}" /></a><span class="title">{title}</span></li>]]></item>
</item>
<item id="hash"><![CDATA[7af6727c]]></item>
</item>
<item id="picwidth"><![CDATA[339]]></item>
<item id="picheight"><![CDATA[215]]></item>
<item id="target"><![CDATA[blank]]></item>
<item id="dateformat"><![CDATA[Y-m-d]]></item>
<item id="dateuformat"><![CDATA[0]]></item>
<item id="script"><![CDATA[groupthread]]></item>
<item id="param">
<item id="gtids">
<item id="0"><![CDATA[0]]></item>
</item>
<item id="rewardstatus"><![CDATA[0]]></item>
<item id="titlelength"><![CDATA[40]]></item>
<item id="summarylength"><![CDATA[80]]></item>
<item id="startrow"><![CDATA[0]]></item>
<item id="items"><![CDATA[4]]></item>
<item id="special">
<item id="0"><![CDATA[0]]></item>
</item>
<item id="picrequired"><![CDATA[1]]></item>
</item>
<item id="shownum"><![CDATA[4]]></item>
<item id="cachetime"><![CDATA[0]]></item>
<item id="punctualupdate"><![CDATA[0]]></item>
<item id="hidedisplay"><![CDATA[0]]></item>
<item id="dateline"><![CDATA[1308275841]]></item>
<item id="notinherited"><![CDATA[0]]></item>
<item id="isblank"><![CDATA[0]]></item>
</item>
<item id="2">
<item id="bid"><![CDATA[2]]></item>
<item id="blockclass"><![CDATA[group_thread]]></item>
<item id="blocktype"><![CDATA[0]]></item>
<item id="name"><![CDATA[]]></item>
<item id="title"><![CDATA[]]></item>
<item id="classname"><![CDATA[]]></item>
<item id="summary"><![CDATA[]]></item>
<item id="uid"><![CDATA[1]]></item>
<item id="username"><![CDATA[admin]]></item>
<item id="styleid"><![CDATA[24]]></item>
<item id="blockstyle"><![CDATA[]]></item>
<item id="picwidth"><![CDATA[0]]></item>
<item id="picheight"><![CDATA[0]]></item>
<item id="target"><![CDATA[blank]]></item>
<item id="dateformat"><![CDATA[Y-m-d]]></item>
<item id="dateuformat"><![CDATA[0]]></item>
<item id="script"><![CDATA[groupthreadspecial]]></item>
<item id="param">
<item id="gtids">
<item id="0"><![CDATA[0]]></item>
</item>
<item id="rewardstatus"><![CDATA[0]]></item>
<item id="picrequired"><![CDATA[0]]></item>
<item id="titlelength"><![CDATA[40]]></item>
<item id="summarylength"><![CDATA[80]]></item>
<item id="items"><![CDATA[10]]></item>
</item>
<item id="shownum"><![CDATA[10]]></item>
<item id="cachetime"><![CDATA[3600]]></item>
<item id="punctualupdate"><![CDATA[0]]></item>
<item id="hidedisplay"><![CDATA[0]]></item>
<item id="dateline"><![CDATA[1308275761]]></item>
<item id="notinherited"><![CDATA[0]]></item>
<item id="isblank"><![CDATA[0]]></item>
</item>
</item>
<item id="style">
<item id="24">
<item id="styleid"><![CDATA[24]]></item>
<item id="blockclass"><![CDATA[group_thread]]></item>
<item id="name"><![CDATA[[内置]帖子标题]]></item>
<item id="template">
<item id="raw"><![CDATA[<div class="module cl xl xl1">
<ul>
[loop]
<li><a href="{url}" title="{title}"{target}>{title}</a></li>
[/loop]
</ul>
</div>]]></item>
<item id="footer"><![CDATA[]]></item>
<item id="header"><![CDATA[]]></item>
<item id="indexplus">
</item>
<item id="index">
</item>
<item id="orderplus">
</item>
<item id="order">
</item>
<item id="loopplus">
</item>
<item id="loop"><![CDATA[<li><a href="{url}" title="{title}"{target}>{title}</a></li>]]></item>
</item>
<item id="hash"><![CDATA[176fcc68]]></item>
<item id="getpic"><![CDATA[0]]></item>
<item id="getsummary"><![CDATA[0]]></item>
<item id="makethumb"><![CDATA[0]]></item>
<item id="settarget"><![CDATA[1]]></item>
<item id="fields">
<item id="0"><![CDATA[url]]></item>
<item id="1"><![CDATA[title]]></item>
</item>
</item>
</item>
</item>
</root>
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
/*
(C) 2001-2099 Comsenz Inc.
*/
/* common */
*{ word-wrap:break-word; }
body{ padding:5px 0; background:#FFF; text-align:center; }
body, td, input, textarea, select, button{ color:#666; font:12px/1.5 Verdana, Tahoma, Arial, 'Microsoft Yahei', 'Simsun', sans-serif; }
ul, dl, dd, p, h1, h2, h3, h4, h5, h6, form, fieldset { margin:0; padding:0; }
h1, h2, h3, h4, h5, h6{ font-size:12px; }
a{ color:#2366A8; text-decoration:none; }
a:hover { text-decoration:underline; }
a img{ border:none; }
em, cite, strong, th{ font-style:normal; font-weight:normal; }
table{ border-collapse:collapse; }
th{ text-align:left; }
/* box */
.container{ overflow:hidden; margin:0 auto; width:700px; height:auto !important;text-align:left; border:1px solid #B5CFD9; }
.header{ *overflow:hidden; height:194px; background:url(bg_repx.gif) repeat-x; }
.header h1{ text-indent:-9999px; width:270px; height:48px; background:url(bg_repno.gif) no-repeat 26px 22px; }
.header span { float: right; padding-right: 10px; }
.main{ padding:20px 20px 0; background:#F7FBFE url(bg_repx.gif) repeat-x 0 -194px; }
.main h3{ margin:10px auto; width:75%; color:#6CA1B4; font-weight:700; }
.desc{ margin:0 auto; width:537px; line-height:180%; clear:both; }
.desc ul{ margin-left:20px; }
.desc1{ margin:10px 0; width:100%; }
.desc1 ul{ margin-left:25px; }
.desc1 li{ margin:3px 0; }
.tb, .tb2{ margin:15px 0 15px 67px; }
.tb th{ padding:5px; color:#6CA1B4; font-weight:700; }
.tb td{ padding:3px 5px; }
.tb .w, .tb .nw, .tb .padleft{ padding-left:45px; }
.tb .pdleft1{ padding-left:67px; }
.tb2{}
.tb2 th, .tb2 td{ padding:3px 5px; }
.tbopt{ width:130px; }
.btnbox{ text-align:center; }
.btnbox input{ margin:0 2px; }
.btnbox textarea{ margin-bottom:10px; height:150px; }
.btn{ margin-top:10px; }
.footer{ line-height:40px; text-align:center; background:#F7FBFE url(bg_footer.gif) repeat-x; font-size:11px; }
/* form */
.txt{ width:200px; }
/* step num */
.setup{ margin:46px 0 0 200px; padding-left:70px; }
.setup h2{ padding-top:0; *padding-top:6px; line-height:1.2; color:#6CA1B4; font-size:36px; }
.setup p{ margin:0 0 10px 6px; color:#999; }
.step1{ background:url(stepnum.gif) no-repeat 0 8px; }
.step2{ background:url(stepnum.gif) no-repeat 0 -92px; }
.step3{ background:url(stepnum.gif) no-repeat 0 -192px; }
.step4{ background:url(stepnum.gif) no-repeat 0 -292px; }
/* step status */
.stepstat{ position:relative; bottom:-5px; *bottom:0; left:80px; *width:593px; height:30px; }
.stepstatbg{ position:absolute; top:18px; z-index:90; width:535px; height:9px; overflow:hidden; background:#81C6F0 url(bg_stepstatus.gif) no-repeat; }
.stepstat ul{ position:absolute; top:3px; left:-2px; z-index:100; list-style:none; width:600px; white-space:nowrap; overflow:hidden; }
.stepstat li{ float:left; text-indent:20px; width:175px; height:30px; line-height:14px; font-size:12px; background:url(bg_repno.gif) no-repeat 0 -38px; }
.stepstat .current{ background:url(bg_repno.gif) no-repeat 0 -71px; font-weight:700; }
.stepstat .unactivated{ background:url(bg_repno.gif) no-repeat 0 -103px; }
.stepstat .last{ width:50px; }
.stepstat1{ background-position:-750px 0; }
.stepstat2{ background-position:-570px 0; }
.stepstat3{ background-position:-390px 0; }
.stepstat4{ background-position:-210px 0; }
/* file status */
.w{ background:url(bg_repno.gif) no-repeat 45px -148px; }
.nw{ background:url(bg_repno.gif) no-repeat 45px -197px; }
/* space */
.marginbot{ margin-bottom:20px; }
.margintop{ margin-top:20px; }
.red{ color:red; }
.licenseblock{ margin-bottom:15px; padding:8px; height:280px; border:1px solid #EEE; background:#FFF; overflow:scroll; overflow-x:hidden; }
.license{}
.license h1{ padding-bottom:10px; font-size:14px; text-align:center; }
.license h3{ margin:0; color:#666; }
.license p{ line-height:150%; margin:10px 0; text-indent:25px; }
.license li{ line-height:150%; margin:5px 0; }
.title{ margin:5px 0 -15px 60px; }
#notice { overflow: hidden; margin: 20px; padding: 5px; height: 300px; border: 1px solid #B5CFD9; text-align: left; }
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: install_extvar.php 31245 2012-07-31 02:54:24Z liulanbo $
*/
if(!defined('IN_COMSENZ')) {
exit('Access Denied');
}
$settings = array(
'extcredits' => array(
1 => array('title' => $lang['init_credits_money'], 'ratio' => 0, 'available' => 1),
2 => array('title' => $lang['init_credits_karma'], 'ratio' => 0, 'available' => 1),
),
'postnocustom' => array(
0 => $lang['init_postno0'], 1 => $lang['init_postno1'], 2 => $lang['init_postno2'], 3 => $lang['init_postno3']
),
'recommendthread' => array(
'status' => '1',
'addtext' => $lang['init_support'],
'subtracttext' => $lang['init_opposition'],
'defaultshow' => '1',
'daycount' => '0',
'ownthread' => '0',
'iconlevels' => '0,100,200',
),
'tasktypes' => array(
'promotion' => array(
'name' => $lang['init_promotion_task'],
'version' => '1.0',
),
'gift' => array(
'name' => $lang['init_gift_task'],
'version' => '1.0',
),
'avatar' => array(
'name' => $lang['init_avatar_task'],
'version' => '1.0',
),
),
);
?>
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: install_mysql.php 33334 2013-05-28 09:51:11Z kamichen $
*/
if(!defined('IN_COMSENZ')) {
exit('Access Denied');
}
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, &$data) {
$query = $this->query($sql);
$data = $this->result($query, 0);
}
function fetch_first($sql, &$arr) {
$query = $this->query($sql);
$arr = $this->fetch_array($query);
}
function fetch_all($sql, &$arr) {
$query = $this->query($sql);
while($data = $this->fetch_array($query)) {
$arr[] = $data;
}
}
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('SQL:', $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 = '') {
show_error('run_sql_error', $message.$sql.'<br /> Error:'.$this->error().'<br />Errno:'.$this->errno(), 0);
}
}
?>
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: install_mysql.php 6758 2010-03-25 09:05:10Z cnteacher $
*/
if(!defined('IN_COMSENZ')) {
exit('Access Denied');
}
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;
$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, &$data) {
$query = $this->query($sql);
$data = $this->result($query, 0);
}
function fetch_first($sql, &$arr) {
$query = $this->query($sql);
$arr = $this->fetch_array($query);
}
function fetch_all($sql, &$arr) {
$query = $this->query($sql);
while($data = $this->fetch_array($query)) {
$arr[] = $data;
}
}
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('SQL:', $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 = '') {
show_error('run_sql_error', $message.$sql.'<br /> Error:'.$this->error().'<br />Errno:'.$this->errno(), 0);
}
}
?>
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: install_plugin.php 32877 2013-03-19 03:48:10Z liulanbo $
*/
define('IN_COMSENZ', TRUE);
define('IN_ADMINCP', TRUE);
chdir('../../');
require_once './source/class/class_core.php';
$discuz = C::app();
$discuz->init_cron = false;
$discuz->init_session = false;
$discuz->init();
if($_GET['key'] !== md5($_G['setting']['authkey'].$_SERVER['REMOTE_ADDR'])) {
exit;
}
$plugins = array('qqconnect', 'cloudstat', 'soso_smilies', 'cloudsearch', 'qqgroup', 'security', 'xf_storage', 'pcmgr_url_safeguard');
require_once libfile('function/plugin');
require_once libfile('function/admincp');
require_once libfile('function/cache');
foreach($plugins as $pluginid) {
$importfile = DISCUZ_ROOT.'./source/plugin/'.$pluginid.'/discuz_plugin_'.$pluginid.'.xml';
$importtxt = @implode('', file($importfile));
$pluginarray = getimportdata('Discuz! Plugin', $importtxt);
if(plugininstall($pluginarray)) {
if(!empty($pluginarray['installfile']) && file_exists(DISCUZ_ROOT.'./source/plugin/'.$pluginid.'/'.$pluginarray['installfile'])) {
@include_once DISCUZ_ROOT.'./source/plugin/'.$pluginid.'/'.$pluginarray['installfile'];
}
}
}
?>
\ No newline at end of file
<?php
define('IN_MOBILE', 4);
define('IN_NEWMOBILE', true);
global $_G;
chdir('../');
require './source/class/class_core.php';
$discuz = C::app();
$discuz->reject_robot();
$discuz->init_cron = false;
$discuz->init_session = false;
$discuz->init_user = false;
$discuz->init_mobile = false;
$discuz->init();
if (!$_G['setting']['mobile']['allowmnew']) {
dheader('location: ' . $_G['siteurl']);
}
if(!file_exists(DISCUZ_ROOT . $_G['style']['tpldir'] . '/m')) {
$_G['style']['tpldir'] = './template/default';
}
if ($_GET['c'] == 'static') {
$path = DISCUZ_ROOT . $_G['style']['tpldir'] . '/m/js/';
$bpath = DISCUZ_ROOT . 'template/default/m/js/';
header("Content-type: application/json");
$files = explode(',', $_GET['f']);
$version = $_GET['v'];
$cachename = 'static_' . md5($_GET['f']) . $version;
if (!$files) {
$array = array('code' => 1);
echo json_encode($array);
exit;
}
$contents = array();
foreach ($files as $file) {
if (strpos($file, '..') !== false) {
continue;
}
$filename = file_exists($path . $file) ? $path . $file : $bpath . $file;
$contents[$file] = file_get_contents($filename);
}
$array = array('code' => 0, 'file' => $contents);
$result = json_encode($array);
echo $result;
exit;
}
$jsglobal = array(
'source' => '',
'cookiepre' => $discuz->config['cookie']['cookiepre'],
'jsversion' => !$discuz->config['debug'] ? $_G['style']['verhash'] : time(),
'f' => '',
'path' => '',
'formhash' => FORMHASH,
'plugins' => array()
);
$site = array(
'siteId' => 0,
'siteUrl' => $_G['siteurl'],
'siteName' => diconv($_G['setting']['sitename'], CHARSET, 'UTF-8'),
'siteLogo' => $_G['siteurl'] . '/static/image/common/logom.png',
'openApi' => array(),
);
$a = $_GET['a'] && preg_match('/^\w+$/', $_GET['a']) ? $_GET['a'] : 'forumlist';
include template('m/' . $a);
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: member.php 34253 2013-11-25 03:36:23Z nemohou $
*/
define('APPTYPEID', 0);
define('CURSCRIPT', 'member');
require './source/class/class_core.php';
$discuz = C::app();
$modarray = array('getpasswd',
'groupexpiry', 'logging', 'lostpasswd',
'register', 'regverify', 'switchstatus');
$mod = !in_array($discuz->var['mod'], $modarray) && (!preg_match('/^\w+$/', $discuz->var['mod']) || !file_exists(DISCUZ_ROOT.'./source/module/member/member_'.$discuz->var['mod'].'.php')) ? 'register' : $discuz->var['mod'];
define('CURMODULE', $mod);
$discuz->init();
if($mod == 'register' && $discuz->var['mod'] != $_G['setting']['regname']) {
showmessage('undefined_action');
}
require libfile('function/member');
require libfile('class/member');
runhooks();
require DISCUZ_ROOT.'./source/module/member/member_'.$mod.'.php';
?>
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: misc.php 34264 2013-11-27 03:14:58Z nemohou $
*/
if(isset($_GET['css'])) {
$css = explode('|', $_GET['css']);
$string = '';
$size = 0;
foreach($css as $file) {
if(preg_match('/^\w+$/', $file)) {
$file = './data/cache/style_'.$file.'.css';
$string .= @implode('', file($file));
}
}
ob_start('ob_gzhandler');
header('Content-Type: text/css');
header('Expires: '.gmdate('D, d M Y H:i:s', time() + 2592000).' GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT');
echo $string;
exit;
}
if(isset($_GET['js'])) {
$js = explode('|', $_GET['js']);
$string = '';
$size = 0;
foreach($js as $file) {
$file = substr($file, 0, strpos($file, '.'));
if(preg_match('/^\w+$/', $file)) {
$file = './data/cache/'.$file.'.js';
$string .= @implode('', file($file));
}
}
ob_start('ob_gzhandler');
header('Content-Type: text/javascript');
header('Expires: '.gmdate('D, d M Y H:i:s', time() + 2592000).' GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT');
echo $string;
exit;
}
define('APPTYPEID', 100);
define('CURSCRIPT', 'misc');
require './source/class/class_core.php';
$discuz = C::app();
if($_GET['mod'] != 'tag'){
$discuz->reject_robot();
}
$modarray = array('seccode', 'secqaa', 'initsys', 'invite', 'faq', 'report',
'swfupload', 'stat', 'ranklist', 'buyinvitecode',
'tag', 'diyhelp', 'mobile', 'patch', 'getatuser', 'imgcropper',
'userstatus',);
$modcachelist = array(
'ranklist' => array('forums', 'diytemplatename'),
);
$mod = getgpc('mod');
$mod = (empty($mod) || !in_array($mod, $modarray)) ? 'error' : $mod;
if(in_array($mod, array('seccode', 'secqaa', 'initsys', 'faq', 'swfupload', 'mobile'))) {
define('ALLOWGUEST', 1);
}
$cachelist = array();
if(isset($modcachelist[$mod])) {
$cachelist = $modcachelist[$mod];
}
$discuz->cachelist = $cachelist;
switch ($mod) {
case 'secqaa':
case 'userstatus':
case 'seccode':
$discuz->init_cron = false;
$discuz->init_session = false;
break;
default:
break;
}
$discuz->init();
define('CURMODULE', $mod);
runhooks();
require DISCUZ_ROOT.'./source/module/misc/misc_'.$mod.'.php';
?>
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: plugin.php 27335 2012-01-16 10:15:37Z monkey $
*/
define('APPTYPEID', 127);
define('CURSCRIPT', 'plugin');
define('NOT_IN_MOBILE_API', 1);
require './source/class/class_core.php';
$discuz = C::app();
$cachelist = array('plugin', 'diytemplatename');
$discuz->cachelist = $cachelist;
$discuz->init();
if(!empty($_GET['id'])) {
list($identifier, $module) = explode(':', $_GET['id']);
$module = $module !== NULL ? $module : $identifier;
} else {
showmessage('plugin_nonexistence');
}
$mnid = 'plugin_'.$identifier.'_'.$module;
$pluginmodule = isset($_G['setting']['pluginlinks'][$identifier][$module]) ? $_G['setting']['pluginlinks'][$identifier][$module] : (isset($_G['setting']['plugins']['script'][$identifier][$module]) ? $_G['setting']['plugins']['script'][$identifier][$module] : array('adminid' => 0, 'directory' => preg_match("/^[a-z]+[a-z0-9_]*$/i", $identifier) ? $identifier.'/' : ''));
if(!preg_match('/^[\w\_]+$/', $identifier)) {
showmessage('plugin_nonexistence');
}
if(empty($identifier) || !preg_match("/^[a-z0-9_\-]+$/i", $module) || !in_array($identifier, $_G['setting']['plugins']['available'])) {
showmessage('plugin_nonexistence');
} elseif($pluginmodule['adminid'] && ($_G['adminid'] < 1 || ($_G['adminid'] > 0 && $pluginmodule['adminid'] < $_G['adminid']))) {
showmessage('plugin_nopermission');
} elseif(@!file_exists(DISCUZ_ROOT.($modfile = './source/plugin/'.$pluginmodule['directory'].$module.'.inc.php'))) {
showmessage('plugin_module_nonexistence', '', array('mod' => $modfile));
}
define('CURMODULE', $identifier);
runhooks();
include DISCUZ_ROOT.$modfile;
?>
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: portal.php 33234 2013-05-08 04:13:19Z andyzheng $
*/
define('APPTYPEID', 4);
define('CURSCRIPT', 'portal');
require './source/class/class_core.php';
$discuz = C::app();
$cachelist = array('portalcategory', 'diytemplatenameportal');
$discuz->cachelist = $cachelist;
$discuz->init();
require DISCUZ_ROOT.'./source/function/function_home.php';
require DISCUZ_ROOT.'./source/function/function_portal.php';
if(empty($_GET['mod']) || !in_array($_GET['mod'], array('list', 'view', 'comment', 'portalcp', 'topic', 'attachment', 'rss', 'block'))) $_GET['mod'] = 'index';
define('CURMODULE', $_GET['mod']);
runhooks();
$navtitle = str_replace('{bbname}', $_G['setting']['bbname'], $_G['setting']['seotitle']['portal']);
$_G['disabledwidthauto'] = 1;
require_once libfile('portal/'.$_GET['mod'], 'module');
?>
\ No newline at end of file
#
# robots.txt for Discuz! X3
#
User-agent: *
Disallow: /api/
Disallow: /data/addonmd5/
Disallow: /data/download/
Disallow: /data/ipdata/
Disallow: /data/log/
Disallow: /data/plugindata/
Disallow: /data/template/
Disallow: /data/threadcache/
Disallow: /source/
Disallow: /install/
Disallow: /template/default/
Disallow: /config/
Disallow: /uc_client/
Disallow: /uc_server/
Disallow: /admin.php
Disallow: /search.php
Disallow: /member.php
Disallow: /api.php
Disallow: /misc.php
Disallow: /connect.php
Disallow: /forum.php?mod=redirect*
Disallow: /forum.php?mod=post*
Disallow: /home.php?mod=spacecp*
Disallow: /*?mod=misc*
Disallow: /*?mod=attachment*
Disallow: /*mobile=yes*
\ No newline at end of file
<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: search.php 34131 2013-10-17 03:54:09Z andyzheng $
*/
define('APPTYPEID', 0);
define('CURSCRIPT', 'search');
require './source/class/class_core.php';
$discuz = C::app();
$modarray = array('user', 'curforum', 'newthread');
$cachelist = $slist = array();
$mod = '';
$discuz->cachelist = $cachelist;
$discuz->init();
if(in_array($discuz->var['mod'], $modarray) || !empty($_G['setting']['search'][$discuz->var['mod']]['status'])) {
$mod = $discuz->var['mod'];
} else {
foreach($_G['setting']['search'] as $mod => $value) {
if(!empty($value['status'])) {
break;
}
}
}
if(empty($mod)) {
showmessage('search_closed');
}
define('CURMODULE', $mod);
runhooks();
require_once libfile('function/search');
$navtitle = lang('core', 'title_search');
if($mod == 'curforum') {
$mod = 'forum';
$_GET['srchfid'] = array($_GET['srhfid']);
} elseif($mod == 'forum') {
$_GET['srhfid'] = 0;
}
if(!empty($_GET['srchtxt']) && getglobal('setting/srchcensor')) {
$_GET['srchtxt'] = censor($_GET['srchtxt']);
}
require DISCUZ_ROOT.'./source/module/search/search_'.$mod.'.php';
?>
\ No newline at end of file
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!