📄 editpost.inc.php
字号:
$db->query("DELETE FROM {$tablepre}polloptions WHERE polloptionid='$key' AND tid='$tid'");
unset($pollarray['options'][$key]);
}
}
$polladd = ', special=\'1\'';
foreach($displayorder as $key => $value) {
if(preg_match("/^-?\d*$/", $value)) {
$pollarray['displayorder'][$key] = $value;
}
}
$pollarray['multiple'] = !empty($multiplepoll);
$pollarray['visible'] = empty($visibilitypoll);
$pollarray['expiration'] = $expiration;
foreach($polloptionid as $key => $value) {
if(!preg_match("/^\d*$/", $value)) {
showmessage('submit_invalid');
}
}
$maxchoices = $maxchoices >= count($pollarray['options']) ? count($pollarray['options']) : $maxchoices;
if(preg_match("/^\d*$/", $maxchoices)) {
if(!$pollarray['multiple']) {
$pollarray['maxchoices'] = 1;
} elseif(empty($maxchoices)) {
$pollarray['maxchoices'] = 0;
} else {
$pollarray['maxchoices'] = $maxchoices;
}
}
$expiration = intval($expiration);
if($close) {
$pollarray['expiration'] = $timestamp;
} elseif($expiration) {
if(empty($pollarray['expiration'])) {
$pollarray['expiration'] = 0;
} else {
$pollarray['expiration'] = $timestamp + 86400 * $expiration;
}
}
$optid = '';
$query = $db->query("SELECT polloptionid FROM {$tablepre}polloptions WHERE tid='$tid'");
while($tempoptid = $db->fetch_array($query)) {
$optid[] = $tempoptid['polloptionid'];
}
foreach($pollarray['options'] as $key => $value) {
$value = dhtmlspecialchars(trim($value));
if(in_array($polloptionid[$key], $optid)) {
if($alloweditpoll) {
$db->query("UPDATE {$tablepre}polloptions SET displayorder='".$pollarray['displayorder'][$key]."', polloption='$value' WHERE polloptionid='$polloptionid[$key]' AND tid='$tid'");
} else {
$db->query("UPDATE {$tablepre}polloptions SET displayorder='".$pollarray['displayorder'][$key]."' WHERE polloptionid='$polloptionid[$key]' AND tid='$tid'");
}
} else {
$db->query("INSERT INTO {$tablepre}polloptions (tid, displayorder, polloption) VALUES ('$tid', '".$pollarray['displayorder'][$key]."', '$value')");
}
}
$db->query("UPDATE {$tablepre}polls SET multiple='$pollarray[multiple]', visible='$pollarray[visible]', maxchoices='$pollarray[maxchoices]', expiration='$pollarray[expiration]' WHERE tid='$tid'", 'UNBUFFERED');
} else {
$polladd = ', special=\'0\'';
$db->query("DELETE FROM {$tablepre}polls WHERE tid='$tid'");
$db->query("DELETE FROM {$tablepre}polloptions WHERE tid='$tid'");
}
} elseif($thread['special'] == 2 && $allowposttrade) {
$message = $message."\t\t\t".$aboutcounter;
} elseif($thread['special'] == 3 && $allowpostreward) {
if($thread['price'] > 0 && $thread['price'] != $rewardprice) {
$rewardprice = intval($rewardprice);
if($rewardprice <= 0){
showmessage("reward_credits_invalid");
}
$addprice = ceil(($rewardprice - $thread['price']) + ($rewardprice - $thread['price']) * $creditstax);
if(!$forum['ismoderator']) {
if($rewardprice < $thread['price']) {
showmessage("reward_credits_fall");
} elseif($rewardprice < $minrewardprice || ($maxrewardprice > 0 && $rewardprice > $maxrewardprice)) {
showmessage("reward_credits_between");
} elseif($addprice > $_DSESSION["extcredits$creditstrans"]) {
showmessage('reward_credits_shortage');
}
}
$realprice = ceil($thread['price'] + $thread['price'] * $creditstax) + $addprice;
$db->query("UPDATE {$tablepre}members SET extcredits$creditstrans=extcredits$creditstrans-$addprice WHERE uid='$thread[authorid]'");
$db->query("UPDATE {$tablepre}rewardlog SET netamount='$realprice' WHERE tid='$tid' AND authorid='$thread[authorid]'");
}
if(!$forum['ismoderator']) {
if($thread['replies'] > 1) {
$subject = addslashes($thread['subject']);
}
if($thread['price'] < 0) {
$rewardprice = abs($thread['price']);
}
}
$price = $thread['price'] > 0 ? $rewardprice : -$rewardprice;
} elseif($thread['special'] == 4 && $allowpostactivity) {
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;
}
$db->query("UPDATE {$tablepre}activities SET cost='$activity[cost]', starttimefrom='$activity[starttimefrom]', starttimeto='$activity[starttimeto]', place='$activity[place]', class='$activity[class]', gender='$activity[gender]', number='$activity[number]', expiration='$activity[expiration]' WHERE tid='$tid'", 'UNBUFFERED');
} elseif($thread['special'] == 5 && $allowpostdebate) {
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'")) {
$umpire = dhtmlspecialchars($umpire);
showmessage('debate_umpire_invalid');
}
}
$affirmpoint = dhtmlspecialchars($affirmpoint);
$negapoint = dhtmlspecialchars($negapoint);
$db->query("UPDATE {$tablepre}debates SET affirmpoint='$affirmpoint', negapoint='$negapoint', endtime='$endtime', umpire='$umpire' WHERE tid='$tid' AND uid='$discuz_uid'");
}
$optiondata = array();
if($forum['threadtypes']['special'][$typeid] && $checkoption) {
$optiondata = threadtype_validator($typeoption);
}
if($forum['threadtypes']['special'][$typeid] && $optiondata && is_array($optiondata)) {
foreach($optiondata as $optionid => $value) {
$db->query("UPDATE {$tablepre}typeoptionvars SET value='$value' WHERE tid='$tid' AND optionid='$optionid'");
}
}
$db->query("UPDATE {$tablepre}threads SET iconid='$iconid', typeid='$typeid', subject='$subject', readperm='$readperm', price='$price' $authoradd $polladd ".($auditstatuson && $audit == 1 ? ",displayorder='0', moderated='1'" : '')." WHERE tid='$tid'", 'UNBUFFERED');
if($tagstatus) {
$tags = str_replace(array(chr(0xa3).chr(0xac), chr(0xa1).chr(0x41), chr(0xef).chr(0xbc).chr(0x8c)), ',', censor($tags));
if(strexists($tags, ',')) {
$tagarray = array_unique(explode(',', $tags));
} else {
$tags = str_replace(array(chr(0xa1).chr(0xa1), chr(0xa1).chr(0x40), chr(0xe3).chr(0x80).chr(0x80)), ' ', $tags);
$tagarray = array_unique(explode(' ', $tags));
}
$threadtagsnew = array();
$tagcount = 0;
foreach($tagarray as $tagname) {
$tagname = trim($tagname);
if(preg_match('/^([\x7f-\xff_-]|\w|\s){3,20}$/', $tagname)) {
$threadtagsnew[] = $tagname;
if(!in_array($tagname, $threadtagary)) {
$query = $db->query("SELECT closed FROM {$tablepre}tags WHERE tagname='$tagname'");
if($db->num_rows($query)) {
if(!$tagstatus = $db->result($query, 0)) {
$db->query("UPDATE {$tablepre}tags SET total=total+1 WHERE tagname='$tagname'", 'UNBUFFERED');
}
} else {
$db->query("INSERT INTO {$tablepre}tags (tagname, closed, total)
VALUES ('$tagname', 0, 1)", 'UNBUFFERED');
$tagstatus = 0;
}
if(!$tagstatus) {
$db->query("INSERT {$tablepre}threadtags (tagname, tid) VALUES ('$tagname', '$tid')", 'UNBUFFERED');
}
}
}
$tagcount++;
if($tagcount > 4) {
unset($tagarray);
break;
}
}
foreach($threadtagary as $tagname) {
if(!in_array($tagname, $threadtagsnew)) {
if($db->result_first("SELECT count(*) FROM {$tablepre}threadtags WHERE tagname='$tagname' AND tid!='$tid'")) {
$db->query("UPDATE {$tablepre}tags SET total=total-1 WHERE tagname='$tagname'", 'UNBUFFERED');
} else {
$db->query("DELETE FROM {$tablepre}tags WHERE tagname='$tagname'", 'UNBUFFERED');
}
$db->query("DELETE FROM {$tablepre}threadtags WHERE tagname='$tagname' AND tid='$tid'", 'UNBUFFERED');
}
}
}
} else {
if($subject == '' && $message == '') {
showmessage('post_sm_isnull');
}
}
if($editedby && ($timestamp - $orig['dateline']) > 60 && $adminid != 1) {
include_once language('misc');
$editor = $isanonymous && $isorigauthor ? $language['anonymous'] : $discuz_user;
$edittime = gmdate($_DCACHE['settings']['dateformat'].' '.$_DCACHE['settings']['timeformat'], $timestamp + $timeoffset * 3600);
eval("\$message .= \"$language[post_edit]\";");
}
$bbcodeoff = checkbbcodes($message, !empty($bbcodeoff));
$smileyoff = checksmilies($message, !empty($smileyoff));
$tagoff = $isfirstpost ? !empty($tagoff) : 0;
$htmlon = bindec(($tagstatus && $tagoff ? 1 : 0).($allowhtml && !empty($htmlon) ? 1 : 0));
$tattachment = 0;
if($special == 2 && !empty($_FILES['tradeattach']['tmp_name'][0])) {
$_FILES['attach'] = array_merge_recursive($_FILES['attach'], $_FILES['tradeattach']);
$deleteaid[] = $tradeaid;
}
$pattachment = ($allowpostattach && $attachments = attach_upload()) ? 1 : 0;
$uattachment = ($allowpostattach && $uattachments = attach_upload('attachupdate')) ? 1 : 0;
$query = $db->query("SELECT aid, readperm, price, attachment, description, thumb, remote FROM {$tablepre}attachments WHERE pid='$pid'");
$attachdescnew = is_array($attachdescnew) ? $attachdescnew : array();
$attachpermnew = is_array($attachpermnew) ? $attachpermnew : array();
$attachpricenew = is_array($attachpricenew) ? $attachpricenew : array();
while($attach = $db->fetch_array($query)) {
$attachpermnew[$attach['aid']] = intval($attachpermnew[$attach['aid']]);
$attachpermadd = $allowsetattachperm && $attach['readperm'] != $attachpermnew[$attach['aid']] ? ", readperm='{$attachpermnew[$attach['aid']]}'" : '' ;
$attachpricenew[$attach['aid']] = intval($attachpricenew[$attach['aid']]);
$attachpriceadd = $maxprice && $attach['price'] != $attachpricenew[$attach['aid']] && $attachpricenew[$attach['aid']] <= $maxprice ? ", price='{$attachpricenew[$attach['aid']]}'" : '' ;
$attachdescnew[$attach['aid']] = cutstr(dhtmlspecialchars($attachdescnew[$attach['aid']]), 100);
$attachdescadd = $attach['description'] != $attachdescnew[$attach['aid']] ? 1 : 0;
if($uattachment || $attachpermadd || $attachdescadd || $attachpriceadd) {
$paid = 'paid'.$attach['aid'];
$attachfileadd = '';
if($uattachment && isset($uattachments[$paid])) {
dunlink($attach['attachment'], $attach['thumb'], $attach['remote']);
$attachfileadd = ', dateline=\''.$timestamp.'\',
filename=\''.$uattachments[$paid]['name'].'\',
filetype=\''.$uattachments[$paid]['type'].'\',
filesize=\''.$uattachments[$paid]['size'].'\',
attachment=\''.$uattachments[$paid]['attachment'].'\',
thumb=\''.$uattachments[$paid]['thumb'].'\',
isimage=\''.$uattachments[$paid]['isimage'].'\',
remote=\''.$uattachments[$paid]['remote'].'\'';
unset($uattachments[$paid]);
}
$db->query("UPDATE {$tablepre}attachments SET description='{$attachdescnew[$attach['aid']]}' $attachpermadd $attachpriceadd $attachfileadd WHERE aid='$attach[aid]'");
}
}
if($uattachment && !empty($uattachments)) {
foreach($uattachments as $attach) {
dunlink($attach['attachment'], $attach['thumb'], $attach['remote']);
}
}
if(!empty($deleteaid) || $pattachment) {
if(!empty($deleteaid) && is_array($deleteaid)) {
$deleteaids = '\''.implode("','", $deleteaid).'\'';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -