📄 newthread.inc.php
字号:
<?php
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: newthread.inc.php 13661 2008-04-30 11:52:24Z monkey $
*/
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
$discuz_action = 11;
if(empty($forum['fid']) || $forum['type'] == 'group') {
showmessage('forum_nonexistence');
}
if(($special == 1 && !$allowpostpoll) || ($special == 2 && !$allowposttrade) || ($special == 3 && !$allowpostreward) || ($special == 4 && !$allowpostactivity) || ($special == 5 && !$allowpostdebate) || ($special == 6 && !$allowpostvideo)) {
showmessage('group_nopermission', NULL, 'NOPERM');
}
if($special == 6) {
require_once DISCUZ_ROOT.'./api/video.php';
require_once DISCUZ_ROOT.'./include/insenz.func.php';
}
if(!$discuz_uid && !((!$forum['postperm'] && $allowpost) || ($forum['postperm'] && forumperm($forum['postperm'])))) {
showmessage('group_nopermission', NULL, 'NOPERM');
} elseif(empty($forum['allowpost'])) {
if(!$forum['postperm'] && !$allowpost) {
showmessage('group_nopermission', NULL, 'NOPERM');
} elseif($forum['postperm'] && !forumperm($forum['postperm'])) {
showmessage('post_forum_newthread_nopermission', NULL, 'HALTED');
}
} elseif($forum['allowpost'] == -1) {
showmessage('post_forum_newthread_nopermission', NULL, 'HALTED');
}
if($url && !empty($qihoo['relate']['webnum'])) {
$from = in_array($from, array('direct', 'iframe')) ? $from : '';
if($data = @implode('', file("http://search.qihoo.com/sint/content.html?surl=$url&md5=$md5&ocs=$charset&ics=$charset&from=$from"))) {
preg_match_all("/(\w+):([^\>]+)/i", $data, $data);
if(!$data[2][1]) {
$subject = trim($data[2][3]);
$message = !$editormode ? str_replace('[br]', "\n", trim($data[2][4])) : str_replace('[br]', '<br />', trim($data[2][4]));
} else {
showmessage('reprint_invalid');
}
}
}
checklowerlimit($postcredits);
if(!submitcheck('topicsubmit', 0, $seccodecheck, $secqaacheck)) {
$modelid = $modelid ? intval($modelid) : '';
$typeselect = typeselect($typeid, $special, '', $modelid);
$tagoffcheck = '';
$icons = '';
if(!$special && is_array($_DCACHE['icons'])) {
$key = 1;
foreach($_DCACHE['icons'] as $id => $icon) {
$icons .= ' <input class="radio" type="radio" name="iconid" value="'.$id.'" /><img src="images/icons/'.$icon.'" alt="" />';
$icons .= !(++$key % 10) ? '<br />' : '';
}
}
if($special == 2 && $allowposttrade) {
$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));
$tradetypeselect = '';
$forum['tradetypes'] = $forum['tradetypes'] == '' ? -1 : unserialize($forum['tradetypes']);
if($tradetypes && !empty($forum['tradetypes'])) {
$tradetypeselect = '<select name="tradetypeid" onchange="ajaxget(\'post.php?action=threadtypes&tradetype=yes&typeid=\'+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>';
}
} elseif($special == 6 && $allowpostvideo) {
$videoAccount = new VideoClient_Util($appid, $siteid, $sitekey);
$videoupload = $videoAccount->createUploadFrom($option, array('url' => 'data.php'));
$query = $db->query("SELECT value FROM {$tablepre}settings WHERE variable='videoinfo'");
$settings = unserialize($db->result($query, 0));
if($settings['videotype'] && is_array($settings['videotype'])) {
$vtypeselect = '<select name="vclass">';
foreach($settings['videotype'] as $key => $type) {
if($type['able']) {
$vtypeselect .= '<option value="'.$key.'"> '.$type['name'].'</option>';
}
}
$vtypeselect .= '</select>';
}
}
if($special == 2) {
include template('post_newthread_trade');
} elseif($special == 4) {
$activitytypelist = $activitytype ? explode("\n", trim($activitytype)) : '';
include template('post_newthread_activity');
} else {
include template('post_newthread');
}
} else {
if($subject == '' || $message == '') {
showmessage('post_sm_isnull');
}
if($post_invalid = checkpost()) {
showmessage($post_invalid);
}
if(checkflood()) {
showmessage('post_flood_ctrl');
}
if($allowpostattach && is_array($_FILES['attach'])) {
foreach($_FILES['attach']['name'] as $attachname) {
if($attachname != '') {
checklowerlimit($postattachcredits);
break;
}
}
}
$typeid = isset($typeid) && isset($forum['threadtypes']['types'][$typeid]) ? $typeid : 0;
$iconid = !empty($iconid) && isset($_DCACHE['icons'][$iconid]) ? $iconid : 0;
$displayorder = $modnewthreads ? -2 : (($forum['ismoderator'] && !empty($sticktopic)) ? 1 : 0);
$digest = ($forum['ismoderator'] && !empty($addtodigest)) ? 1 : 0;
$readperm = $allowsetreadperm ? $readperm : 0;
$isanonymous = $isanonymous && $allowanonymous ? 1 : 0;
$price = intval($price);
$price = $maxprice && !$special ? ($price <= $maxprice ? $price : $maxprice) : 0;
if(!$typeid && $forum['threadtypes']['required'] && !$special) {
showmessage('post_type_isnull');
}
if($price > 0 && floor($price * (1 - $creditstax)) == 0) {
showmessage('post_net_price_iszero');
}
if($special == 1) {
$pollarray = array();
$polloptions = explode("\n", $polloptions);
foreach($polloptions as $key => $value) {
if(!$value = trim($value)) {
unset($polloptions[$key]);
}
}
if(count($polloptions) > $maxpolloptions) {
showmessage('post_poll_option_toomany');
} elseif(count($polloptions) < 2) {
showmessage('post_poll_inputmore');
}
$maxchoices = $maxchoices >= count($polloptions) ? count($polloptions) : $maxchoices;
$pollarray['options'] = $polloptions;
$pollarray['multiple'] = !empty($multiplepoll);
$pollarray['visible'] = empty($visiblepoll);
if(preg_match("/^\d*$/", trim($maxchoices)) && preg_match("/^\d*$/", trim($expiration))) {
if(!$pollarray['multiple']) {
$pollarray['maxchoices'] = 1;
} elseif(empty($maxchoices)) {
$pollarray['maxchoices'] = 0;
} elseif($maxchoices == 1) {
$pollarray['multiple'] = 0;
$pollarray['maxchoices'] = $maxchoices;
} else {
$pollarray['maxchoices'] = $maxchoices;
}
if(empty($expiration)) {
$pollarray['expiration'] = 0;
} else {
$pollarray['expiration'] = $timestamp + 86400 * $expiration;
}
} else {
showmessage('poll_maxchoices_expiration_invalid');
}
} elseif($special == 3) {
$rewardprice = intval($rewardprice);
if($rewardprice < 1) {
showmessage('reward_credits_please');
} elseif($rewardprice > 32767) {
showmessage('reward_credits_overflow');
} elseif($rewardprice < $minrewardprice || ($maxrewardprice > 0 && $rewardprice > $maxrewardprice)) {
if($maxrewardprice > 0) {
showmessage('reward_credits_between');
} else {
showmessage('reward_credits_lower');
}
} elseif(($realprice = $rewardprice + ceil($rewardprice * $creditstax)) > $_DSESSION["extcredits$creditstrans"]) {
showmessage('reward_credits_shortage');
}
$price = $rewardprice;
$db->query("UPDATE {$tablepre}members SET extcredits$creditstrans=extcredits$creditstrans-$realprice WHERE uid='$discuz_uid'");
} elseif($special == 4) {
if(empty($starttimefrom[$activitytime])) {
showmessage('activity_fromtime_please');
} elseif(@strtotime($starttimefrom[$activitytime]) === -1 || @strtotime($starttimefrom[$activitytime]) === FALSE) {
showmessage('activity_fromtime_error');
} elseif(@strtotime($starttimefrom[$activitytime]) < $timestamp) {
showmessage('activity_smaller_current');
} elseif($activitytime && ((@strtotime($starttimefrom) > @strtotime($starttimeto) || !$starttimeto))) {
showmessage('activity_fromtime_error');
} elseif(!trim($activityclass)) {
showmessage('activity_sort_please');
} elseif(!trim($activityplace)) {
showmessage('activity_address_please');
} elseif(trim($activityexpiration) && (@strtotime($activityexpiration) === -1 || @strtotime($activityexpiration) === FALSE)) {
showmessage('activity_totime_error');
}
$activity = array();
$activity['class'] = dhtmlspecialchars(trim($activityclass));
$activity['starttimefrom'] = @strtotime($starttimefrom[$activitytime]);
$activity['starttimeto'] = $activitytime ? @strtotime($starttimeto) : 0;
$activity['place'] = dhtmlspecialchars(trim($activityplace));
$activity['cost'] = intval($cost);
$activity['gender'] = intval($gender);
$activity['number'] = intval($activitynumber);
if($activityexpiration) {
$activity['expiration'] = @strtotime($activityexpiration);
} else {
$activity['expiration'] = 0;
}
if(trim($activitycity)) {
$subject .= '['.dhtmlspecialchars(trim($activitycity)).']';
}
} elseif($special == 5) {
if(empty($affirmpoint) || empty($negapoint)) {
showmessage('debate_position_nofound');
} elseif(!empty($endtime) && (!($endtime = @strtotime($endtime)) || $endtime < $timestamp)) {
showmessage('debate_endtime_invalid');
} elseif(!empty($umpire)) {
if(!$db->result_first("SELECT COUNT(*) FROM {$tablepre}members WHERE username='$umpire'")) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -