www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/admina/answers.inc.php

    <?
(!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission');
aheader();
!checkapermission($sid ? 137 : 73) && amessage(lang('no_apermission'));
include_once M_ROOT."./include/arcedit.cls.php";
load_cache('currencys');
load_cache('catalogs',$sid);
if($action == 'answersedit'){
	$page = !empty($page) ? max(1, intval($page)) : 1;
	submitcheck('bfilter') && $page = 1;
	$viewdetail = empty($viewdetail) ? '' : $viewdetail;
	$checked = isset($checked) ? $checked : '-1';
	$caid = empty($caid) ? '0' : $caid;
	$subject = empty($subject) ? '' : $subject;
	$mname = empty($mname) ? '' : $mname;
	$indays = empty($indays) ? 0 : max(0,intval($indays));
	$outdays = empty($outdays) ? 0 : max(0,intval($outdays));
	$filterstr = '';
	foreach(array('viewdetail','checked','caid','subject','mname','indays','outdays') as $k){
		$filterstr .= "&$k=".rawurlencode($$k);
	}
	$wheresql = "WHERE a.sid=$sid";
	if($checked != '-1') $wheresql .= " AND c.checked='$checked'";
	if(!empty($caid)){
		$caids = array($caid);
		$tempids = array();
		$tempids = son_ids($catalogs,$caid,$tempids);
		$caids = array_merge($caids,$tempids);
		$wheresql .= " AND a.caid IN (".mimplode($caids).")";
	}
	$subject && $wheresql .= " AND a.subject LIKE '%".str_replace(array(' ','*'),'%',addcslashes($subject,'%_'))."%'";
	$mname && $wheresql .= " AND c.mname LIKE '%".str_replace(array(' ','*'),'%',addcslashes($mname,'%_'))."%'";
 	$indays && $wheresql .= " AND c.createdate>'".($timestamp - 86400 * $indays)."'";
	$outdays && $wheresql .= " AND c.createdate<'".($timestamp - 86400 * $outdays)."'";
	if(!submitcheck('barcsedit')){
		$caidsarr = array('0' => lang('all catalog')) + caidsarr();
		$checkedarr = array('-1' => lang('nolimit'),'0' => lang('noadopt answer0'),'1' => lang('adopted answer0'));
		tabheader(lang('filter0 answer0')."&nbsp;&nbsp;&nbsp;&nbsp;<input class=\"checkbox\" type=\"checkbox\" name=\"viewdetail\" value=\"1\" onclick=\"alterview('tbodyfilter')\"".(empty($viewdetail) ? '' : ' checked').">".lang('viewdetail')
		."&nbsp; &nbsp; <input class=\"button\" type=\"submit\" name=\"bfilter\" value=\"".lang('filter0')."\">",'arcsedit',"?entry=answers&action=answersedit$param_suffix&page=$page");
		echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">";
		trbasic(lang('weather adopted answer0'),'checked',makeoption($checkedarr,$checked),'select');
		trbasic(lang('belong catalog'),'caid',makeoption($caidsarr,$caid),'select');
		trbasic(lang('search archive title'),'subject',$subject,'text',lang('agsearchkey'));
		trbasic(lang('search author'),'mname',$mname,'text',lang('agsearchkey'));
		trrange(lang('add date'),array('outdays',empty($outdays) ? '' : $outdays,'','&nbsp; '.lang('day before').'&nbsp; -&nbsp; ',5),array('indays',empty($indays) ? '' : $indays,'','&nbsp; '.lang('day in'),5));
		echo "</tbody>";
		tabfooter();

		$pagetmp = $page;
		do{
			$query = $db->query("SELECT c.*,a.arcurl,a.sid,a.caid,a.chid FROM {$tblprefix}answers c LEFT JOIN {$tblprefix}archives a ON (a.aid=c.aid) $wheresql ORDER BY c.cid DESC LIMIT ".(($pagetmp - 1) * $atpp).",$atpp");
			$pagetmp--;
		} while(!$db->num_rows($query) && $pagetmp);
		$itemstr = '';
		while($item = $db->fetch_array($query)){
			$item['answer'] = cutstr(br2nl($item['answer']),50);
			$item['createdate'] = date("$dateformat", $item['createdate']);
			$checkedstr = $item['checked'] ? 'Y' : '-';
			$endstr = $item['end'] ? 'Y' : '-';
			$sourcestr = "<a href=\"".view_arcurl($item)."\" target=\"_blank\">".lang('look')."</a>";
			$itemstr .= "<tr><td align=\"center\" class=\"item1\" width=\"40\"><input class=\"checkbox\" type=\"checkbox\" name=\"selectid[$item[cid]]\" value=\"$item[cid]\">\n".
				"<td class=\"item2\">$item[answer]</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"80\">$item[mname]</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"30\">$checkedstr</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\">$item[currency]</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"30\">$endstr</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"80\">$item[createdate]</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"30\">$sourcestr</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\"><a href=\"?entry=answers&action=answerdetail&cid=$item[cid]$param_suffix\">".lang('edit')."</a></td></tr>\n";
		}
		$counts = $db->result_one("SELECT count(*) FROM {$tblprefix}answers c LEFT JOIN {$tblprefix}archives a ON (a.aid=c.aid) $wheresql");
		$multi = multi($counts, $atpp, $page, "?entry=answers&action=answersedit$param_suffix$filterstr");

		tabheader(lang('answer0 list')."&nbsp;&nbsp;&nbsp;&nbsp;<input class=\"checkbox\" type=\"checkbox\" name=\"select_all\" value=\"1\">&nbsp;".lang('selectallpage'),'','',9);
		trcategory(array("<input class=\"checkbox\" type=\"checkbox\" name=\"chkall\" class=\"category\" onclick=\"checkall(this.form, 'selectid', 'chkall')\">".lang('del'),lang('question title'),lang('member'),lang('adopt'),lang('award'),lang('accountin'),lang('add time'),lang('source'),lang('edit')));
		echo $itemstr;
		tabfooter();
		echo $multi;
		echo "<input class=\"button\" type=\"submit\" name=\"barcsedit\" value=\"".lang('submit')."\">";
	}else{
		if(empty($selectid) && empty($select_all)) amessage(lang('confirmselect answer0'),M_REFERER);
		if(!empty($select_all)){
			$selectid = array();
			$npage = empty($npage) ? 1 : $npage;
			if(empty($pages)){
				$counts = $db->result_one("SELECT count(*) FROM {$tblprefix}answers c LEFT JOIN {$tblprefix}archives a ON (a.aid=c.aid) $wheresql");
				$pages = @ceil($counts / $atpp);
			}
			if($npage <= $pages){
				$fromstr = empty($fromid) ? "" : "cid<$fromid";
				$nwheresql = !$wheresql ? ($fromstr ? "WHERE $fromstr" : "") : ($wheresql.($fromstr ? " AND " : "").$fromstr);
				$query = $db->query("SELECT cid FROM {$tblprefix}answers c LEFT JOIN {$tblprefix}archives a ON (a.aid=c.aid) $nwheresql ORDER BY cid DESC LIMIT 0,$atpp");
				while($item = $db->fetch_array($query)){
					$selectid[] = $item['cid'];
				}
			}
		}
		$aedit = new cls_arcedit();
		foreach($selectid as $cid){
			$item = $db->fetch_one("SELECT * FROM {$tblprefix}answers WHERE cid='$cid'");
			$aedit->set_aid($item['aid']);
			$aedit->basic_data();
			if($aedit->aid){
				$item['checked'] && $aedit->arc_nums('adopts',-1,0);
				$aedit->arc_nums('answers',-1,1);
				$aedit->auser->basedeal('answer',0,1,1);
			}
			$aedit->init();
		}
		unset($aedit,$item);
		$db->query("DELETE FROM {$tblprefix}answers WHERE cid IN (".mimplode($selectid).")",'SILENT');
		$db->query("DELETE FROM {$tblprefix}notaanswer WHERE cid IN (".mimplode($selectid).")",'SILENT');
		if(!empty($select_all)){
			$npage ++;
			if($npage <= $pages){
				$fromid = min($selectid);
				$transtr = '';
				$transtr .= "&select_all=1";
				$transtr .= "&pages=$pages";
				$transtr .= "&npage=$npage";
				$transtr .= "&barcsedit=1";
				$transtr .= "&fromid=$fromid";
				amessage(lang('operating')."<br>
						".lang('all')." $pages ".lang('page0').",".lang('dealing')." $npage ".lang('page0')."<br><br>
						<a href=\"?entry=answers&action=answersedit$param_suffix&page=$page$filterstr\">>>".lang('pause')."</a>",
						"?entry=answers&action=answersedit$param_suffix&page=$page$filterstr$transtr",
						500);
			}
		}
		adminlog(lang('answer0 list admin'),lang('answer0 list admin operate'));
		amessage(lang('answer0 list operate finish'),"?entry=answers&action=answersedit$param_suffix&page=$page$filterstr");
	}
}
elseif($action == 'answerdetail' && $cid){
	$forward = empty($forward) ? M_REFERER : $forward;
	if(!($answer = $db->fetch_one("SELECT * FROM {$tblprefix}answers WHERE cid=".$cid))){
		amessage(lang('pointed answer0 noexist'),$forward);
	}
	$aedit = new cls_arcedit();
	$aedit->set_aid($answer['aid']);
	$aedit->basic_data();
	if(!submitcheck('banswerdetail')){
		a_guide('answerdetail');
		tabheader(lang('edit answer0'),'answerdetail',"?entry=answers&action=answerdetail&cid=$cid$param_suffix&forward=".urlencode($forward));
		trbasic(lang('question state'),'',($aedit->archive['closed'] || $aedit->archive['finishdate'] < $timestamp) ? lang('question closed') : lang('question noclose'),'');
		trbasic(lang('answer0 title'),'',$answer['subject'],'');
		trbasic(lang('answer0 content'),'answernew[answer]',br2nl($answer['answer']),'btextarea');
		tabfooter('banswerdetail');
	}else{
		($aedit->archive['closed'] || $aedit->archive['finishdate'] < $timestamp) && amessage(lang('question closed'),$forward);
		$answernew['answer'] = empty($answernew['answer']) ? '' : trim($answernew['answer']);
		empty($answernew['answer']) && amessage(lang('please input answer content'),$forward);
		$commu = read_cache('commu',$channels[$aedit->archive['chid']]['cuid']);
		(!empty($commu['setting']['minlength']) && strlen($answernew['answer']) < $commu['setting']['minlength']) && amessage(lang('answer0 over minlength'),$forward);
		!empty($commu['setting']['maxlength']) && $answernew['answer'] = cutstr($answernew['answer'],$commu['setting']['maxlength']);
		$answernew['answer'] = mnl2br(mhtmlspecialchars($answernew['answer']));	
		$db->query("UPDATE {$tblprefix}answers SET answer='$answernew[answer]' WHERE cid='$cid'");
		if(!empty($commu['setting']['nota']) && $answernew['answer'] != addslashes($answer['answer'])){
			$db->query("INSERT INTO {$tblprefix}notaanswer (aid,cid,content,createdate) VALUES ('$answer[aid]','$cid','$answernew[answer]','$timestamp')"); 
		}
		adminlog(lang('answer0 content edit'),lang('edit answer0 content'));
		amessage(lang('answer0 modify finish'),$forward);
	}
}
?>