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

    <?php
if (!defined('puyuetian'))
	exit('Not Found puyuetian!Please contact QQ632827168');

if (chkUserQx($_G['USER']['QUANXIAN'], 'lookread')) {
	$RA = $_G['TABLE']['READ'] -> getData($id);
	if ($RA) {
		if (!Cnum($RA['del'])) {
			//====================文章的阅读权限====================
			$readlevel = Cnum($RA['readlevel']);
			$uid = Cnum($RA['uid'], 2);
			$RUA = $_G['TABLE']['USER'] -> getData($uid);
			//=====================版块阅读权限===================
			if ($RA['sortid']) {
				$__sortdata = $_G['TABLE']['READSORT'] -> getData($RA['sortid']);
				if ($_G['USER']['READLEVEL'] < $__sortdata['looklevel']) {
					$banread = TRUE;
				}
			}
			//====================用户阅读权限检测==================
			if ((Cnum($_G['USER']['READLEVEL']) < $readlevel) || $banread) {
				$_G['HTMLCODE']['TIP'] = '您的阅读权限未达到要求值!';
				$_G['HTMLCODE']['OUTPUT'] .= template('tip', true);
			} else {
				//===================用户签名检测==================
				if ($RUA['id'] == 1) {
					//创始人可以用html代码
				} elseif (chkUserQx($RUA['quanxian'], 'admin') || chkUserQx($RUA['quanxian'], 'superman')) {
					//管理员可以用bbcode
					$RUA['sign'] = BBcode($RUA['sign']);
				} else {
					if (ArrayData($RUA['data'], 'signcode')) {
						//特殊用户
						$RUA['sign'] = BBcode($RUA['sign'], ArrayData($RUA['data'], 'signcode'));
					} else {
						//普通用户仅能使用指定标签
						$RUA['sign'] = BBcode($RUA['sign'], '<b><i><u><strong><font>');
					}
				}
				if (chkUserQx($RUA['quanxian'], 'nosign')) {
					$RUA['sign'] = '此用户签名可能涉及违法内容,已被管理员禁止';
				}
				if (!trim($RUA['sign'])) {
					$RUA['sign'] = '该用户暂未设置签名';
				}
				//====================初始化楼主信息数据====================
				$RUA['nickname'] = htmlspecialchars($RUA['nickname']);
				if (!trim($RUA['nickname'])) {
					$RUA['nickname'] = '该用户暂未设置昵称';
				}
				extract($RUA, EXTR_PREFIX_ALL, 'LZU');
				$RA['title'] = htmlspecialchars($RA['title']);
				$sortid = $RA['sortid'];
				//=================gps导航模板加载 head=====================
				$sortarray = $_G['TABLE']['READSORT'] -> getData(Cnum($sortid));
				$sortarray ? $sorttitle = $sortarray['title'] : $sorttitle = "最新文章";
				$_G['HTMLCODE']['GPS'] = "<a href='index.php?c=forum'>板块</a><span>&raquo;</span><a href='index.php?c=list&sortid={$sortid}'>{$sorttitle}</a><span>&raquo;</span><span>{$RA['title']}</span>";
				$_G['HTMLCODE']['OUTPUT'] .= template('gps', true);
				//====================gps导航模板加载 foot=====================
				//====================文章内容转义==========================
				if (chkUserQx($RUA['quanxian'], 'htmlcode')) {
					//什么也不做
				} elseif (chkUserQx($RUA['quanxian'], 'bbcode')) {
					if (ArrayData($RUA['data'], 'bbcode')) {
						//此用户被特定了bbcode
						$RA['content'] = BBcode($RA['content'], ArrayData($RUA['data'], 'bbcode'));
					} else {
						//通用bbocde
						$RA['content'] = BBcode($RA['content']);
					}
				} else {
					$RA['content'] = htmlspecialchars(($RA['content']), ENT_QUOTES);
					$RA['content'] = str_replace('&lt;br&gt;', '<br>', $RA['content']);
				}
				//====================是否为回复后可见帖====================
				if ($RA['replyafterlook']) {
					//检测当前用户是否回复了此文章,或当前用户是否为楼主
					if ($RA['uid'] == $_G['USER']['ID'] || ($_G['TABLE']['REPLY'] -> getId(array('uid' => $_G['USER']['ID'], 'rid' => $RA['id'])))) {
						//楼主或已回复
						$RA['content'] = '<div class="am-padding am-text-center am-margin am-text-success" style="border:dashed 2px pink;">您已回复该文章,可正常查看内容</div>' . $RA['content'];
					} else {
						//未回复
						$RA['content'] = '<div class="am-padding am-text-center am-margin am-text-danger" style="border:dashed 2px pink;">楼主设置了回复后可见,请<a href="#reply">回复</a>后查看内容</div>';
					}
				}
				//====================初始化文章信息数据====================
				$RA['posttime'] = date('Y-m-d H:i:s', $RA['posttime']);
				extract($RA, EXTR_PREFIX_ALL, 'LZC');
				//==========================浏览量+1========================
				if (!$_SESSION["LOOKREAD_{$id}"]) {
					$looknum = array();
					$looknum['id'] = $id;
					$looknum['looknum'] = $RA['looknum'] + 1;
					$_G['TABLE']['READ'] -> newData($looknum);
					$_SESSION["LOOKREAD_{$id}"] = 'read';
				}
				//============================SEO优化=========================
				$_G['SET']['WEBNAME'] = $RA['title'];
				$_G['SET']['WEBDESCRIPTION'] = str_replace(chr(13), '', htmlspecialchars(BBcode($RA['content'], '')));
				$_G['SET']['WEBDESCRIPTION'] = str_replace(chr(10), '', $_G['SET']['WEBDESCRIPTION']);
				$_G['SET']['WEBDESCRIPTION'] = str_replace(' ', '', $_G['SET']['WEBDESCRIPTION']);
				$_G['SET']['WEBDESCRIPTION'] = str_replace('	', '', $_G['SET']['WEBDESCRIPTION']);
				$_G['SET']['WEBDESCRIPTION'] = substr($_G['SET']['WEBDESCRIPTION'], 0, 255);
				//==============================rewriteurl=========================
				$lzurl = ReWriteURL("user", "id={$LZU_id}");
				//==============================管理编辑文章============================
				if (($_G['USER']['ID'] == $RA['uid'] && $_G['USER']['ID'] != 2) || chkUserQx($_G['USER']['QUANXIAN'], 'admin')) {
					$LZadmin = "
	<a href='index.php?c=edit&type=read&id={$id}&sortid={$sortid}'>编辑</a>
	<a href='javascript:' onclick=\"if(confirm('确认删除该文章?ID:$id\\n该文章作者:{$_G['SET']['JIFENNAME']}-{$_G['SET']['POSTREADJIFEN']} {$_G['SET']['TIANDOUNAME']}-{$_G['SET']['POSTREADTIANDOU']}'))location.href='index.php?c=del&type=read&id=$id'\">删除</a>
	";
				}
				$_G['HTMLCODE']['OUTPUT'] .= template('read-1', true);
				//========================楼层读取==========================
				//=======================页码范围检测========================
				$reply_num = Cnum($_G['SET']['REPLYLISTNUM']);
				$mysql_num = ($page - 1) * $reply_num;
				$thisreplycount = $_G['TABLE']['REPLY'] -> getCount('rid', $id);
				if ($mysql_num > $thisreplycount) {
					$mysql_num = $thisreplycount;
					$reply_yc = $mysql_num % $reply_num;
					if ($thisreplycount % $reply_num == 0) {
						$page = $thisreplycount / $reply_num;
					} else {
						$page = (int)($thisreplycount / $reply_num) + 1;
					}
					if ($page == 0)
						$page = 1;
					if ($reply_yc == 0 && $mysql_num != 0) {
						$mysql_num = $mysql_num - $reply_num;
					} else {
						$mysql_num = $mysql_num - $reply_yc;
					}
				}
				$dyy = 1;
				$syy = $page - 1;
				$xyy = $page + 1;
				$zmy = 999999;
				//=======================页码URL rewrite====================
				$dyyurl = ReWriteURL('read', "id={$id}&page=1");
				$syyurl = ReWriteURL('read', "id={$id}&page={$syy}");
				$xyyurl = ReWriteURL('read', "id={$id}&page={$xyy}");
				$zmyurl = ReWriteURL('read', "id={$id}&page=999999");
				//if ($page == 1) {
				$_G['HTMLCODE']['OUTPUT'] .= template('read-2', true);
				//	$lc = 1;
				//} else {
				//=======================判断正序还是倒序======================
				if (!$_G['SET']['REPLYORDER']) {
					//正序
					$lc = ($page - 1) * $reply_num + 1;
					$ordersql = '';
				} else {
					//倒序,倒序会增加服务器负担
					$thisreadreplycount = $_G['TABLE']['REPLY'] -> getCount(array('rid' => $id, 'del' => 0));
					$lc = $thisreadreplycount - ($page - 1) * $reply_num + 2;
					$ordersql = ' desc';
				}
				//}
				$query = "select * from `{$_G['MYSQL']['PREFIX']}reply` where `rid`={$id} and `del`=false order by `id`{$ordersql} limit {$mysql_num},{$reply_num}";
				$q_r = mysql_query($query);
				while ($q_d = mysql_fetch_assoc($q_r)) {
					//====================获取层主信息=======================
					$LCU_id = Cnum($q_d['uid'], 2);
					$RUA2 = $_G['TABLE']['USER'] -> getData($LCU_id);
					if (!trim($RUA2['nickname'])) {
						$RUA2['nickname'] = '该用户暂未设置昵称';
					}
					extract($RUA2, EXTR_PREFIX_ALL, 'LCU');
					//====================回复内容转义========================
					if (chkUserQx($RUA2['quanxian'], 'htmlcode')) {
						//什么也不做
					} elseif (chkUserQx($RUA2['quanxian'], 'bbcode')) {
						if (ArrayData($RUA2['data'], 'bbcode')) {
							//此用户被特定了bbcode
							$q_d['content'] = BBcode($q_d['content'], ArrayData($RUA2['data'], 'bbcode'));
						} else {
							//通用bbocde
							$q_d['content'] = BBcode($q_d['content']);
						}
					} else {
						$q_d['content'] = htmlspecialchars(($q_d['content']), ENT_QUOTES);
						$q_d['content'] = str_replace('&lt;br&gt;', '<br>', $q_d['content']);
					}
					//===================回复数据信息=========================
					$q_d['posttime'] = date('Y-m-d H:i:s', $q_d['posttime']);
					extract($q_d, EXTR_PREFIX_ALL, 'LCC');
					//===================楼层数增或减==========================
					$_G['SET']['REPLYORDER'] ? $lc-- : $lc++;
					$replyid = $q_d['id'];
					//======================rewriteurl=====================
					$lcurl = ReWriteURL("user", "id={$LCU_id}");
					//======================管理编辑回复========================
					if (($_G['USER']['ID'] == $q_d['uid'] && $_G['USER']['ID'] != 2) || chkUserQx($_G['USER']['QUANXIAN'], 'admin')) {
						$LCadmin = "
			<a href='index.php?c=edit&type=reply&id={$q_d['id']}'>编辑</a>
			<a href='javascript:' onclick=\"if(confirm('确认删除该回复?ID:{$q_d['id']}\\n该回复作者:{$_G['SET']['JIFENNAME']}-{$_G['SET']['POSTREPLYJIFEN']} {$_G['SET']['TIANDOUNAME']}-{$_G['SET']['POSTREPLYTIANDOU']}'))location.href='index.php?c=del&type=reply&id={$q_d['id']}'\">删除</a>
			";
					}
					$_G['HTMLCODE']['OUTPUT'] .= template('read-3', true);
					$LCadmin = '';
				}
				//=====================最后一页判断=============================
				if (($page * $reply_num) >= $thisreplycount) {
					$_G['HTMLCODE']['OUTPUT'] .= "
					<div style='padding:8px;text-align:center;font-size:14px;color:#333;'>
						亲,第{$page}页已经是最末页了~
					</div>
					";
				}
				//======================未登录回复的临时数据======================
				$replycontent = $_GET['replycontent'];
				$_G['HTMLCODE']['OUTPUT'] .= template('read-4', true);
			}
		} else {
			$_G['HTMLCODE']['TIP'] = '该文章正在审核或已被删除,请联系管理员';
			$_G['HTMLCODE']['TIPJS'] = "location.href='index.php?c=list'";
			$_G['HTMLCODE']['OUTPUT'] .= template('tip', true);
		}
	} else {
		$_G['HTMLCODE']['TIP'] = '找不到该文章';
		$_G['HTMLCODE']['OUTPUT'] .= template('tip', true);
	}
} else {
	$_G['HTMLCODE']['TIP'] = '您无权浏览该文章。';
	$_G['HTMLCODE']['OUTPUT'] .= template('tip', true);
}