📄 newreply.inc.php
字号:
<?php
/*
[Discuz!] (C)2001-2009 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: newreply.inc.php 17198 2008-12-09 09:27:24Z zhaoxiongfei $
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
$discuz_action = 12;
if($special == 5) {
$debate = array_merge($thread, $db->fetch_first("SELECT * FROM {$tablepre}debates WHERE tid='$tid'"));
$firststand = $db->result_first("SELECT stand FROM {$tablepre}debateposts WHERE tid='$tid' AND uid='$discuz_uid' AND stand<>'0' ORDER BY dateline LIMIT 1");
if($debate['endtime'] && $debate['endtime'] < $timestamp) {
showmessage('debate_end');
}
}
if(!$discuz_uid && !((!$forum['replyperm'] && $allowreply) || ($forum['replyperm'] && forumperm($forum['replyperm'])))) {
showmessage('group_nopermission', NULL, 'NOPERM');
} elseif(empty($forum['allowreply'])) {
if(!$forum['replyperm'] && !$allowreply) {
showmessage('group_nopermission', NULL, 'NOPERM');
} elseif($forum['replyperm'] && !forumperm($forum['replyperm'])) {
showmessage('post_forum_newreply_nopermission', NULL, 'HALTED');
}
} elseif($forum['allowreply'] == -1) {
showmessage('post_forum_newreply_nopermission', NULL, 'HALTED');
}
if(empty($thread)) {
showmessage('thread_nonexistence');
} elseif($thread['price'] > 0 && $thread['special'] == 0 && !$discuz_uid) {
showmessage('group_nopermission', NULL, 'NOPERM');
}
checklowerlimit($replycredits);
if(!submitcheck('replysubmit', 0, $seccodecheck, $secqaacheck)) {
if($thread['special'] == 2 && ((!isset($addtrade) || $thread['authorid'] != $discuz_uid) && !$tradenum = $db->result_first("SELECT count(*) FROM {$tablepre}trades WHERE tid='$tid'"))) {
showmessage('trade_newreply_nopermission', NULL, 'HALTED');
}
include_once language('misc');
if(isset($repquote)) {
$thaquote = $db->fetch_first("SELECT tid, fid, author, authorid, first, message, useip, dateline, anonymous, status FROM {$tablepre}posts WHERE pid='$repquote' AND invisible='0'");
if($thaquote['tid'] != $tid) {
showmessage('undefined_action', NULL, 'HALTED');
}
if(!($thread['price'] && !$thread['special'] && $thaquote['first'])) {
$quotefid = $thaquote['fid'];
$message = $thaquote['message'];
if($bannedmessages && $thaquote['authorid']) {
$author = $db->fetch_first("SELECT groupid FROM {$tablepre}members WHERE uid='$thaquote[authorid]'");
if(!$author['groupid'] || $author['groupid'] == 4 || $author['groupid'] == 5) {
$message = $language['post_banned'];
} elseif($thaquote['status'] & 1) {
$message = $language['post_single_banned'];
}
}
$time = gmdate("$dateformat $timeformat", $thaquote['dateline'] + ($timeoffset * 3600));
$bbcodes = 'b|i|u|color|size|font|align|list|indent|url|email|code|free|table|tr|td|img|swf|attach|payto|float'.($_DCACHE['bbcodes_display'] ? '|'.implode('|', array_keys($_DCACHE['bbcodes_display'])) : '');
$message = cutstr(strip_tags(preg_replace(array(
"/\[hide=?\d*\](.+?)\[\/hide\]/is",
"/\[quote](.*)\[\/quote]/siU",
$language['post_edit_regexp'],
"/\[($bbcodes)=?.*\]/iU",
"/\[\/($bbcodes)\]/i",
), array(
"[b]$language[post_hidden][/b]",
'',
'',
'',
''
), $message)), 200);
$thaquote['useip'] = substr($thaquote['useip'], 0, strrpos($thaquote['useip'], '.')).'.x';
if($thaquote['author'] && $thaquote['anonymous']) {
$thaquote['author'] = 'Anonymous';
} elseif(!$thaquote['author']) {
$thaquote['author'] = 'Guest from '.$thaquote['useip'];
} else {
$thaquote['author'] = $thaquote['author'];
}
eval("\$language['post_reply_quote'] = \"$language[post_reply_quote]\";");
$message = "[quote]$message\n[size=2][color=#999999]$language[post_reply_quote][/color] [url={$boardurl}redirect.php?goto=findpost&pid=$repquote&ptid=$tid][img]{$boardurl}images/common/back.gif[/img][/url][/size][/quote]\n";
}
} elseif(isset($reppost)) {
$thapost = $db->fetch_first("SELECT tid, author, authorid, useip, dateline, anonymous, status FROM {$tablepre}posts WHERE pid='$reppost' AND invisible='0'");
if($thapost['tid'] != $tid) {
showmessage('undefined_action', NULL, 'HALTED');
}
$thapost['useip'] = substr($thapost['useip'], 0, strrpos($thapost['useip'], '.')).'.x';
if($thapost['author'] && $thapost['anonymous']) {
$thapost['author'] = '[i]Anonymous[/i]';
} elseif(!$thapost['author']) {
$thapost['author'] = '[i]Guest[/i] from '.$thapost['useip'];
} else {
$thapost['author'] = '[i]'.$thapost['author'].'[/i]';
}
$thapost['number'] = $db->result_first("SELECT count(*) FROM {$tablepre}posts WHERE tid='$thapost[tid]' AND dateline<='$thapost[dateline]'");
$message = "[b]$lang[post_reply] [url={$boardurl}redirect.php?goto=findpost&pid=$reppost&ptid=$thapost[tid]]$thapost[number]#[/url] $thapost[author] $lang[post_thread][/b]\n\n\n";
}
if(isset($addtrade) && $thread['special'] == 2 && $allowposttrade && $thread['authorid'] == $discuz_uid) {
$expiration_7days = date('Y-m-d', $timestamp + 86400 * 7);
$expiration_14days = date('Y-m-d', $timestamp + 86400 * 14);
$trade['expiration'] = $expiration_month = date('Y-m-d', mktime(0, 0, 0, date('m')+1, date('d'), date('Y')));
$expiration_3months = date('Y-m-d', mktime(0, 0, 0, date('m')+3, date('d'), date('Y')));
$expiration_halfyear = date('Y-m-d', mktime(0, 0, 0, date('m')+6, date('d'), date('Y')));
$expiration_year = date('Y-m-d', mktime(0, 0, 0, date('m'), date('d'), date('Y')+1));
}
if($thread['replies'] <= $ppp) {
$postlist = array();
$query = $db->query("SELECT p.* ".($bannedmessages ? ', m.groupid ' : '').
"FROM {$tablepre}posts p ".($bannedmessages ? "LEFT JOIN {$tablepre}members m ON p.authorid=m.uid " : '').
"WHERE p.tid='$tid' AND p.invisible='0' ".($thread['price'] > 0 && $thread['special'] == 0 ? 'AND p.first = 0' : '')." ORDER BY p.dateline DESC");
while($post = $db->fetch_array($query)) {
$post['dateline'] = dgmdate("$dateformat $timeformat", $post['dateline'] + $timeoffset * 3600);
if($bannedmessages && ($post['authorid'] && (!$post['groupid'] || $post['groupid'] == 4 || $post['groupid'] == 5))) {
$post['message'] = $language['post_banned'];
} elseif($post['status'] & 1) {
$post['message'] = $language['post_single_banned'];
} else {
$post['message'] = preg_replace("/\[hide=?\d*\](.+?)\[\/hide\]/is", "[b]$language[post_hidden][/b]", $post['message']);
$post['message'] = discuzcode($post['message'], $post['smileyoff'], $post['bbcodeoff'], $post['htmlon'] & 1, $forum['allowsmilies'], $forum['allowbbcode'], $forum['allowimgcode'], $forum['allowhtml'], $forum['jammer']);
}
$postlist[] = $post;
}
}
if($special == 2 && isset($addtrade) && $thread['authorid'] == $discuz_uid) {
$tradetypeselect = '';
$forum['tradetypes'] = $forum['tradetypes'] == '' ? -1 : unserialize($forum['tradetypes']);
if($tradetypes && !empty($forum['tradetypes'])) {
$tradetypeselect = '<select name="tradetypeid" onchange="ajaxget(\'post.php?action=threadsorts&tradetype=yes&sortid=\'+this.options[this.selectedIndex].value+\'&sid='.$sid.'\', \'threadtypes\', \'threadtypeswait\')"><option value="0"> </option>';
foreach($tradetypes as $typeid => $name) {
if($forum['tradetypes'] == -1 || @in_array($typeid, $forum['tradetypes'])) {
$tradetypeselect .= '<option value="'.$typeid.'">'.strip_tags($name).'</option>';
}
}
$tradetypeselect .= '</select><span id="threadtypeswait"></span>';
}
}
include template('post');
} else {
require_once DISCUZ_ROOT.'./include/forum.func.php';
if($subject == '' && $message == '' && $thread['special'] != 2) {
showmessage('post_sm_isnull');
} elseif($thread['closed'] && !$forum['ismoderator']) {
showmessage('post_thread_closed');
} elseif($post_autoclose = checkautoclose()) {
showmessage($post_autoclose);
} elseif($post_invalid = checkpost($special == 2 && $allowposttrade)) {
showmessage($post_invalid);
} elseif(checkflood()) {
showmessage('post_flood_ctrl');
}
if(!empty($trade) && $thread['special'] == 2 && $allowposttrade) {
$item_price = floatval($item_price);
if(!trim($item_name)) {
showmessage('trade_please_name');
} elseif($maxtradeprice && ($mintradeprice > $item_price || $maxtradeprice < $item_price)) {
showmessage('trade_price_between');
} elseif(!$maxtradeprice && $mintradeprice > $item_price) {
showmessage('trade_price_more_than');
} elseif($item_number < 1) {
showmessage('tread_please_number');
}
threadsort_checkoption(1, 1);
$optiondata = array();
if($tradetypes && $typeoption && $checkoption) {
$optiondata = threadsort_validator($typeoption);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -