www.gusucode.com > HadSky PHP轻论坛系统源码 v2.4.2源码程序 > ytqlt_v2.4.2.0701/puyuetian/plug/1.php

    <?php
if (!defined('puyuetian'))
	exit('Not Found puyuetian!Please contact QQ632827168');
/*
 * 全部变量的定义
 */
define('ZONE_TIMELINENUM', 20);
$_G['TEMPLATE']['HEADER'] = 'header';
$_G['TEMPLATE']['BODY'] = 'body';
$_G['TEMPLATE']['HDRIVE'] = 'hdrive';
$_G['TEMPLATE']['SCRIPT'] = 'script';
$_G['TEMPLATE']['FOOTER'] = 'footer';
/*
 * session验证码安全机制,每个验证码存储变量先赋值随机数
 */
$__rnd = rand(0, 9999);
if (!$_SESSION['VERIFYCODE'])
	$_SESSION['VERIFYCODE'] = $__rnd;
if (!$_SESSION['VERIFYCODE_UPLOADFILE'])
	$_SESSION['VERIFYCODE_UPLOADFILE'] = $__rnd;
if (!$_SESSION['VERIFYCODE_POST'])
	$_SESSION['VERIFYCODE_POST'] = $__rnd;
if (!$_SESSION['VERIFYCODE_SENDMESSAGE'])
	$_SESSION['VERIFYCODE_SENDMESSAGE'] = $__rnd;
unset($__rnd);
/*
 * 用户登录检测,若登录用户信息保存在$_G['USER']数组内
 * $_G['USER']['ID']为$LoginUserId的简写
 * $_G['USER']为$LoginUserArray的简写
 */
//获取session用户id,若不存在设为2,系统游客用户
$_G['USER']['ID'] = Cnum($_SESSION['LoginUserId'], 2);
//读取此用户信息存在$_G['USER']数组中
$LUA = $_G['TABLE']['USER'] -> getData($_G['USER']['ID']);
if (!$LUA) {
	$_SESSION['LoginUserId'] = '';
	$_G['USER']['ID'] = 2;
	$LUA = $_G['TABLE']['USER'] -> getData($_G['USER']['ID']);
}
//将$_G['USER']数据存入全局$_G中
foreach ($LUA as $key => $value) {
	$_G['USER'][strtoupper($key)] = $value;
	$_G['USER']['NICKNAME'] = htmlspecialchars($_G['USER']['NICKNAME']);
}
unset($LUA, $key, $value);

//用户&游客class样式
$_G['TEMP']['USERHIDECLASS'] = $_G['TEMP']['GUESTHIDECLASS'] = '';
if ($_G['USER']['ID'] == 2) {
	$_G['TEMP']['GUESTHIDECLASS'] = 'am-hide';
} else {
	$_G['TEMP']['USERHIDECLASS'] = 'am-hide';
	if ($_G['USER']['ID'] == 1) {
		//创始人可以用html代码
	} elseif (chkUserQx($RUA['quanxian'], 'admin')) {
		//管理员可以用bbcode
		$_G['USER']['SIGN'] = BBcode($_G['USER']['SIGN']);
	} else {
		//普通用户仅能使用指定标签
		$_G['USER']['SIGN'] = BBcode($_G['USER']['SIGN'], '<b><i><u><strong><font><img>');
	}
	if (chkUserQx($_G['USER']['QUANXIAN'], 'nosign')) {
		$RUA['sign'] = '您的签名可能涉及违法内容,已被管理员禁止';
	}
	if (!trim($_G['USER']['SIGN'])) {
		$_G['USER']['SIGN'] = '您暂未设置签名';
	}
}

//用户消息获取
$NEWMESSAGENUM = $_G['TABLE']['USER_MESSAGE'] -> getId(array("uid", "islook"), array($_G['USER']['ID'], 0));

$USERCOUNT = $_G['TABLE']['USER'] -> getCount();
$READCOUNT = $_G['TABLE']['READ'] -> getCount();
$REPLYCOUNT = $_G['TABLE']['REPLY'] -> getCount();
$RRCOUNT = $READCOUNT + $REPLYCOUNT;

$bbsreferer = urlencode("index.php?{$QUERY_STRING}");
$ClientInfos = getClientInfos();
//签到内容
$sign_date = date('m月d日', time());
$sign_dated = Cnum($_G['USER']['QIANDAOTIME']);
if ($sign_dated) {
	if ($_G['DATETIME']['DATE'] == date('Y-m-d', $sign_dated)) {
		$QIANDAOED = 'TRUE';
	} else {
		$QIANDAOED = 'FALSE';
	}
}

//用户权限排序显示
$_G['USER']['QUANXIAN'] = explode(',', $_G['USER']['QUANXIAN']);
if (is_array($_G['USER']['QUANXIAN'])) {
	sort($_G['USER']['QUANXIAN']);
	$__quanxian2 = $_G['USER']['QUANXIAN'];
	$_G['USER']['QUANXIAN'] = '';
	foreach ($__quanxian2 as $value) {
		$_G['USER']['QUANXIAN'] .= ',' . $value;
	}
	$_G['USER']['QUANXIAN'] = substr($_G['USER']['QUANXIAN'], 1);
}
unset($__quanxian2);
//GET POST数据获取
$jifen = Cnum($_GET['jifen'], 0);
$tiandou = Cnum($_GET['tiandou'], 0);
$type = Cstr(strtolower($_GET['type']), '', true, 1, 255);
$id = Cnum($_GET['id'], 0);
if ($id < 1)
	$id = 0;
$uid = Cnum($_GET['uid'], 0);
if ($uid < 1)
	$uid = 0;
$page = Cnum($_GET['page'], 1);
if ($page < 1)
	$page = 1;
$rnd = Cnum($_GET['rnd'], 0);
$sortid = Cnum($_GET['sortid'], 0);

$verifycode = Cnum($_POST['verifycode'], '');
$viewport = Cstr($_GET['viewport'], false, true, 1, 125);
$referer = urlencode($_GET['referer']);
if ($viewport) {
	setcookie('viewport', $viewport);
}
$DOMAINS = explode('.', $_G['SYSTEM']['DOMAIN']);
if ($viewport == 'phone' || $_COOKIE['viewport'] == 'phone' || ($DOMAINS[0] == 'm' && $viewport != 'pc')) {
	$_G['SET']['TEMPLATENAME'] = $_G['SET']['PHONETEMPLATENAME'];
	//$_G['SET']['REWRITEURL'] = '';
}
$_G['HTMLCODE']['OUTPUT'] = '';

$_G['VERIFYCODE_TEMPLATE']['STATUS'] = 0;
//验证码模板加载状态,0为未加载
if ($_G['SET']['OPENVERIFYCODE'] && !chkUserQx($_G['USER']['QUANXIAN'], 'noverifycode')) {
	//验证码模板加载
	$_G['VERIFYCODE_TEMPLATE']['STATUS'] = 1;
	$_G['VERIFYCODE_TEMPLATE']['LOGIN'] .= template('verifycode_login', true);
	$_G['VERIFYCODE_TEMPLATE']['REG'] .= template('verifycode_reg', true);
	$_G['VERIFYCODE_TEMPLATE']['SENDMESSAGE'] .= template('verifycode_sendmessage', true);
	$_G['VERIFYCODE_TEMPLATE']['POST'] .= template('verifycode_post', true);
}

/*
 * 访问统计插件
 */
$TONGJIURL = "http://tongji.hadsky.com/tongji.php?domain={$_G['SYSTEM']['DOMAIN']}&serverip={$_G['SYSTEM']['SERVERIP']}&clientip={$_G['SYSTEM']['CLIENTIP']}&softname=ytqlt&allurl=" . urlencode($_G['SYSTEM']['LOCATION']) . "&checkcode={$CHECKCODE}&rnd={$RND}";
/**
 * js变量生成
 */
$_G['JAVASCRIPT']['USER'] = "var \$USER = Array();";
$_G['JAVASCRIPT']['GET'] = "var \$GET = Array();";
$_G['JAVASCRIPT']['SET'] = "var \$SET = Array();";
//系统设置
foreach ($_G['USER'] as $__key => $__value) {//用户信息
	$__pc = ",ID,NICKNAME,JIFEN,TIANDOU,QIANDAODAYS,USERNAME,";
	//不允许输出的用户信息
	$__value = str_replace('"', '\"', $__value);
	$__value = str_replace("\n", '', $__value);
	$__value = str_replace("\r", '', $__value);
	$__value = str_replace("\r\n", '', $__value);
	if (strpos($__pc, ",{$__key},") !== FALSE) {
		$_G['JAVASCRIPT']['USER'] .= "\$USER['{$__key}'] = \"" . htmlspecialchars($__value, ENT_QUOTES) . "\";";
	}
}
foreach ($_GET as $__key => $__value) {//get数据
	$__value = str_replace('"', '\"', $__value);
	$__value = str_replace("\n", '', $__value);
	$__value = str_replace("\r", '', $__value);
	$__value = str_replace("\r\n", '', $__value);
	$_G['JAVASCRIPT']['GET'] .= '$GET[' . strtoupper($__key) . '] = "' . htmlspecialchars($__value, ENT_QUOTES) . '";';
}
foreach ($_G['SET'] as $__key => $__value) {//set数据
	$__value = str_replace('"', '\"', $__value);
	$__value = str_replace("\n", '', $__value);
	$__value = str_replace("\r", '', $__value);
	$__value = str_replace("\r\n", '', $__value);
	$__bl = ",QIANDAOJIFEN,QIANDAOTIANDOU,";
	//允许输出的SET设置
	if (strpos($__bl, ",{$__key},") !== FALSE) {
		$_G['JAVASCRIPT']['SET'] .= "\$SET['{$__key}'] = \"" . htmlspecialchars($__value, ENT_QUOTES) . "\";";
	}
}
$_G['JAVASCRIPT']['ALL'] = "{$_G['JAVASCRIPT']['USER']}{$_G['JAVASCRIPT']['GET']}{$_G['JAVASCRIPT']['SET']}";
unset($__key, $__value, $__pc, $__bl);
/*
 * 用户自定义函数
 */
//检测用户是否具有某种权限
function chkUserQx($qxs, $qx) {
	$qxs = explode(',', $qxs);
	foreach ($qxs as $value) {
		if ($qx == $value)
			return true;
	}
	return false;
}

function ifvisitor($do = 'read') {
	global $_G, $bbsreferer;
	if ($_G['USER']['ID'] == 2 && !chkUserQx($_G['USER']['QUANXIAN'], $do)) {
		header("Location:index.php?c=login&referer={$bbsreferer}");
		exit();
	}
}

function NewMessage($uid, $content, $fid = 1, $safetype = 0) {
	global $_G;
	$array['uid'] = Cnum($uid);
	$array['fid'] = Cnum($fid);
	if ($safetype == 0) {
		$array['content'] = htmlspecialchars(BBcode($content, ''));
	} elseif ($safetype == 1) {
		$array['content'] = BBcode($content);
	} else {
		$array['content'] = $content;
	}
	$array['addtime'] = time();
	$array['islook'] = 0;
	$_G['TABLE']['USER_MESSAGE'] -> newData($array);

}

function getZoneTimeline($uid) {
	global $_G;
	$__oldid = $_G['TABLE']['READ'] -> getOldId("where `uid`={$uid}");
	$__newid = $_G['TABLE']['READ'] -> getNewId("where `uid`={$uid}");
	if ($__oldid && $__newid) {
		$__newtime = $_G['TABLE']['READ'] -> getData($__newid);
		$__oldtime = $_G['TABLE']['READ'] -> getData($__oldid);
		$__newtime = date('Ym', $__newtime['posttime']);
		$__oldtime = date('Ym', $__oldtime['posttime']);
		for ($__i = 0; ($__oldtime < $__newtime) && $__i < ZONE_TIMELINENUM; $__i++) {
			$ZONE_TIMELINE .= "
				<a class='blog-timeline-a' href='" . ReWriteURL('zone', "uid={$uid}&timeline={$__newtime}&page=1") . "'>
					" . substr($__newtime, 0, 4) . '年' . substr($__newtime, strlen($__newtime) - 2) . "月
				</a>
				";
			if (substr($__newtime, strlen($__newtime) - 2) == '01') {
				//若当前为1月,上一月则为上一年12月
				$__newtime = intval((substr($__newtime, 0, 4) - 1) . '12');
			} else {

				$__newtime--;
			}
		}
	}
	return $ZONE_TIMELINE;
}

function UserDataChange($array, $uid = 0, $way = '+') {
	global $_G;
	if (!$uid) {
		$uid = $_G['USER']['ID'];
	}
	if ($uid == 2) {
		return FALSE;
	}
	if ($way) {
		$olddata = $_G['TABLE']['USER'] -> getData($uid);
		if ($olddata) {
			foreach ($array as $key => $value) {
				if ($way == '+') {
					$array[$key] = $olddata[$key] + $value;
				} elseif ($way == '-') {
					$array[$key] = $olddata[$key] - $value;
				}
			}
		}
	}
	$array['id'] = $uid;
	$_G['TABLE']['USER'] -> NewData($array);
}

//版块遍历函数,调用前需定义childs=-1;
function foundchildforum($pid) {
	global $_G, $postnewreadforumlist, $childs;
	$data = $_G['TABLE']['READSORT'] -> getDatas(0, 0, "where `pid`={$pid} order by `rank`");
	if ($data) {
		$childs++;
		foreach ($data as $array) {
			$fgf = $sqx = $disabled = '';
			for ($i = 0; $i < $childs; $i++) {
				$fgf .= '--';
			}
			if ($_G['USER']['READLEVEL'] < $array['postlevel']) {
				$sqx = " 需阅读权限达到:{$array['postlevel']}";
				$disabled = " disabled";
			}
			$postnewreadforumlist .= "<option value='{$array['id']}'{$disabled}>{$fgf}{$array['title']}{$sqx}</option>";
			foundchildforum($array['id']);
			if ($pid == 0) {
				$childs = 0;
			}
		}
	}
}

//插件前台加载函数
function LoadHadSkyPlugHOOKHTML($html) {
	global $_G;
	//读取插件数据
	if ($_G['PLUG']['DATA'][$_G['SYSTEM']['CLOADPLUGNAME']]) {
		$__temp = $_G['PLUG']['DATA'][$_G['SYSTEM']['CLOADPLUGNAME']]['P'];
		if ($__temp) {
			$__temp = explode(',', $__temp);
			foreach ($__temp as $__value) {
				$__show = explode(':', $__value);
				if (count($__show) == 2) {
					$_G['HOOK'][strtoupper($__show[0])][strtoupper($__show[1])] .= $html;
				}
			}
		}
	}
}