www.gusucode.com > ShopEx481 & PHPWind 整合版码程序 > bbs/hack/debate/require/newdebate.php

    <?php
!function_exists('readover') && exit('Forbidden');

if (!$winduid) Showmsg('not_login');
require_once(R_P.'require/bbscode.php');
$nowydb = $nowmdb = $nowddb = array();
list($nowy,$nowm,$nowd) = explode('-',get_date($timestamp,'Y-n-j'));
if (strpos(",$debate_admin,",",$windid,")===false && $action=='add'){
	$dbadmins = "$debate_admin,$windid";
}else{
	$dbadmins = $debate_admin;
}
$judgmentdb = explode(',',$dbadmins);
if ($action == 'add') {
	if ($_POST['step'] != 2) {
		$nowmdb[$nowm] = $nowddb[$nowd+1] = 'SELECTED';
		$juclass = '';
		foreach ($judgmentdb as $key=>$value) {
			$selected = $value==$windid ? 'selected' : '';
			$juclass .= "<option value=\"$value\" $selected> $value </option>";
		}
		unset($judgmentdb);
		require_once(PrintHack('newdebate'));
	} else {
		InitGP(array('title','atc_content','judgment','obtitle','retitle'),'P',1);
		!$title && Showmsg('debate_title');
		if (!$judgment) {
			Showmsg('debate_noadmin');
		}
		if (!$obtitle || !$retitle) {
			Showmsg('debate_choice');
		}
		InitGP(array('endtimey','endtimem','endtimed'),'P');
		$endtime = PwStrtoTime((int)$endtimey.'-'.(int)$endtimem.'-'.(int)$endtimed);
		$endtime < $timestamp && Showmsg('debate_time');
		require_once(R_P.'require/credit.php');
		require_once(H_P.'require/function.php');
		UserCredit($winduid,$debate_posttype,'set',$debate_postmoney);
		$db->pw_update(
			"SELECT uid FROM pw_debateinfo WHERE uid='$winduid'",
			"UPDATE pw_debateinfo SET posts=posts+1,author='$windid' WHERE uid='$winduid'",
			"INSERT INTO pw_debateinfo(uid,posts,author) VALUES('$winduid',1,'$windid')"
		);
		$isvisible = ($groupid==3 || !$debate_topicopen) ? 1 : 0;
		$ifconvert = $atc_content!=convert($atc_content,'') ? 1 : 0;
		$db->update("INSERT INTO pw_debatethreads (sortid,authorid,author,judgment,title,obtitle,retitle,content,ifconvert,dateline,endtime,isvisible) VALUES ('$sortid','$winduid','$windid','$judgment','$title','$obtitle', '$retitle','$atc_content','$ifconvert','$timestamp','$endtime','$isvisible')");
		debatesort_cache();
		debateindex_cache();
		if ($isvisible) {
			$did = $db->insert_id();
			refreshto("$basename&job=viewdebate&did=$did",'debate_post_success');
		} else {
			refreshto($basename,'debate_post_check');
		}
	}
} elseif ($action == 'modify') {
	$SQL_S = $_POST['step']!=2 ? ',sortid,authorid,author,judgment,title,obtitle,retitle,content,dateline,endtime' : '';
	$did = (int)GetGP('did');
	$rt = $db->get_one("SELECT authorid,endtime$SQL_S FROM pw_debatethreads WHERE did='$did'");
	if (empty($rt) || !$winduid || ($rt['authorid']!=$winduid && !CkInArray($windid,$manager) && strpos(",$debate_admin,",",$windid,")===false)) {
		Showmsg('debate_cantedit');
	}
	if ($_POST['step'] != 2) {
		list($dy,$dm,$dd) = explode('-',get_date($rt['dateline'],'Y-n-j'));
		$nowmdb[$dy] = $nowddb[$dm] = $nowddb[$dd] = 'SELECTED';
		$juclass = '';
		foreach ($judgmentdb as $value) {
			$selected = $value == $rt['judgment'] ? 'SELECTED' : '';
			$juclass .= "<option value=\"$value\" $selected> $value </option>";
		}
		$rt['atc_content'] = $rt['content'];
		unset($rt['dateline'],$rt['judgment'],$rt['content'],$judgmentdb);
		extract($rt);
		require_once(PrintHack('newdebate'));
	} else {
		require_once(H_P.'require/function.php');
		InitGP(array('title','atc_content','judgment','obtitle','retitle'),'P',1);
		!$title && Showmsg('debate_title');
		if (!$judgment) {
			Showmsg('debate_noadmin');
		}
		if (!$obtitle || !$retitle) {
			Showmsg('debate_choice');
		}
		InitGP(array('endtimey','endtimem','endtimed'),'P');
		$endtime = PwStrtoTime((int)$endtimey.'-'.(int)$endtimem.'-'.(int)$endtimed);
		$endtime!=$rt['endtime'] && $endtime < $timestamp && Showmsg('debate_time');
		$ifconvert = $atc_content!=convert($atc_content,'') ? 1 : 0;
		$db->update("UPDATE pw_debatethreads SET judgment='$judgment',title='$title',obtitle='$obtitle',retitle='$retitle',content='$atc_content',ifconvert='$ifconvert',endtime='$endtime' WHERE did='$did'");
		debatesort_cache();
		refreshto("$basename&job=viewdebate&did=$did",'debate_edit_success');
	}
} elseif ($action == 'del') {
	$did = (int)GetGP('did','G');
	$rt = $db->get_one("SELECT authorid FROM pw_debatethreads WHERE did='$did'");
	if (empty($rt) || !$winduid || ($rt['authorid']!=$winduid && !CkInArray($windid,$manager) && strpos(",$debate_admin,",",$windid,")===false)) {
		Showmsg('debate_cantedit');
	}
	require_once(R_P.'require/credit.php');
	require_once(H_P.'require/function.php');
	UserCredit($rt['authorid'],$debate_posttype,'set',"-$debate_postmoney");
	$db->update("UPDATE pw_debateinfo SET posts=posts-1 WHERE uid='$rt[authorid]'");
	$db->update("DELETE FROM pw_debatethreads WHERE did='$did'");
	debatesort_cache();
	debateindex_cache();
	refreshto($basename,'debate_del_success');
} else {
	Showmsg('undefined_action');
}
?>