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

    <?
(!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission');
aheader();
!checkapermission(100) && amessage(lang('no_apermission'));
if($sid && $sid_self) amessage(lang('msite admin item !'));
load_cache('fcatalogs,fchannels,currencys');
include_once M_ROOT."./include/farcedit.cls.php";
$fcaidsarr = $fchidsarr = array();
foreach($fcatalogs as $k => $v){
	if($v['cumode']){
		$fcaidsarr[$k] = $v['title'];
		$fchidsarr[$v['chid']] = $fchannels[$v['chid']]['cname'];
	}
}
empty($fcaidsarr) && amessage(lang('confirmadd consult message coclass'));
$qstatearr = array(
'new' => lang('nosettle'),
'dealing' => lang('dealing0'),
'end' => lang('settled'),
'close' => lang('closed'),
);
if($action == 'fconsultsedit'){
	$page = !empty($page) ? max(1, intval($page)) : 1;
	submitcheck('bfilter') && $page = 1;
	$viewdetail = empty($viewdetail) ? '' : $viewdetail;
	$caid = empty($caid) ? 0 : $caid;
	$qstate = empty($qstate) ? '' : $qstate;
	$checked = isset($checked) ? $checked : '-1';
	$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','caid','qstate','checked','subject','mname','indays','outdays') as $k){
		$filterstr .= "&$k=".urlencode($$k);
	}

	if($caid){
		$wheresql = "WHERE caid='$caid'";
	}else $wheresql = "WHERE caid IN (".mimplode(array_keys($fcaidsarr)).")";

	if($qstate) $wheresql .= " AND qstate='$qstate'";
	if($checked != '-1') $wheresql .= " AND checked='$checked'";
	if($subject) $wheresql .= " AND subject LIKE '%".str_replace(array(' ','*'),'%',addcslashes($subject,'%_'))."%'";
	if($mname) $wheresql .= " AND mname LIKE '%".str_replace(array(' ','*'),'%',addcslashes($mname,'%_'))."%'";
	if($indays) $wheresql .= " AND createdate>'".($timestamp - 86400 * $indays)."'";
	if($outdays) $wheresql .= " AND createdate<'".($timestamp - 86400 * $outdays)."'";

	if(!submitcheck('barcsedit')){
		$caidsarr = array('0' => lang('all coclass')) + $fcaidsarr;
		$checkedarr = array('-1' => lang('nolimit'),'0' => lang('nocheck message'),'1' => lang('checked message'));
		tabheader(lang('filter0 consult message').viewcheck('viewdetail',$viewdetail,'tbodyfilter').'&nbsp; &nbsp; '.strbutton('bfilter','filter0'),'arcsedit',"?entry=fconsults&action=fconsultsedit&page=$page");
		echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">";
		trbasic(lang('belong coclass'),'caid',makeoption($caidsarr,$caid),'select');
		trbasic(lang('deal state'),'',makeradio('qstate',array('' => lang('all state')) + $qstatearr,$qstate),'');
		trbasic(lang('check state'),'',makeradio('checked',$checkedarr,$checked),'');
		trbasic(lang('search 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 * FROM {$tblprefix}farchives $wheresql ORDER BY vieworder,aid DESC LIMIT ".(($pagetmp - 1) * $atpp).",$atpp");
			$pagetmp--;
		} while(!$db->num_rows($query) && $pagetmp);
		$itemstr = '';
		while($farchive = $db->fetch_array($query)){
			$farchive['createdate'] = date('y-m-d H:i', $farchive['createdate']);
			$farchive['updatedate'] = date('y-m-d H:i', $farchive['updatedate']);
			$farchive['fcatalog'] = $fcatalogs[$farchive['caid']]['title'];
			$farchive['checkedstr'] = $farchive['checked'] ? 'Y' : '-';
			$consultstr = "<a href=\"?entry=fconsults&action=fconsult&aid=$farchive[aid]\">".lang('admin')."</a>";
			$itemstr .= "<tr><td align=\"center\" class=\"item1\" width=\"30\"><input class=\"checkbox\" type=\"checkbox\" name=\"selectid[$farchive[aid]]\" value=\"$farchive[aid]\">\n".
				"<td class=\"item2\">".mhtmlspecialchars($farchive['subject'])."</td>\n".
				"<td align=\"center\" class=\"item1\">$farchive[fcatalog]</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"30\">$farchive[checkedstr]</td>\n".
				"<td align=\"center\" class=\"item1\">".$qstatearr[$farchive['qstate']]."</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"90\">$farchive[createdate]</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"90\">$farchive[updatedate]</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"30\">$consultstr</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\"><a href=\"?entry=farchive&action=farchivedetail&aid=$farchive[aid]\">".lang('detail')."</a></td></tr>\n";
		}
		$counts = $db->result_one("SELECT count(*) FROM {$tblprefix}farchives $wheresql");
		$multi = multi($counts, $atpp, $page, "?entry=fconsults&action=fconsultsedit$filterstr");

		tabheader(lang('consult message list')."&nbsp;&nbsp;&nbsp;&nbsp;<input class=\"checkbox\" type=\"checkbox\" name=\"select_all\" value=\"1\">&nbsp;".lang('selectallpage'),'','',10);
		trcategory(array("<input class=\"checkbox\" type=\"checkbox\" name=\"chkall\" class=\"category\" onclick=\"checkall(this.form, 'selectid', 'chkall')\">",lang('title'),lang('coclass'),lang('check'),lang('state'),lang('add time'),lang('update time'),lang('consult'),lang('edit')));
		echo $itemstr;
		tabfooter();
		echo $multi;
		
		$checkarr = array('0' => lang('uncheck'),'1' => lang('check'));
		tabheader(lang('operate item'));
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[delete]\" value=\"1\">&nbsp;".lang('delete message'),'','','');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[check]\" value=\"1\">&nbsp;".lang('check message content'),'',makeradio('arccheck',$checkarr,'1'),'');
		//trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[caid]\" value=\"1\">&nbsp;".lang('coclass'),'arccaid',makeoption($fcaidsarr),'select');
		tabfooter('barcsedit');
	}else{
		if(empty($arcdeal) && empty($dealstr)) amessage(lang('confirmselect operate item'),"?entry=fconsults&action=fconsultsedit&page=$page$filterstr");
		if(empty($selectid) && empty($select_all)) amessage(lang('confirmselect message'),"?entry=fconsults&action=fconsultsedit&page=$page$filterstr");
		if(!empty($select_all)){
			if(empty($dealstr)){
				$dealstr = implode(',',array_keys(array_filter($arcdeal)));
			}else{
				$arcdeal = array();
				foreach(array_filter(explode(',',$dealstr)) as $k){
					$arcdeal[$k] = 1;
				}
			}

			$parastr = "";
			foreach(array('arccheck') as $k){
				$parastr .= "&$k=".$$k;
			}
			
			$selectid = array();
			$npage = empty($npage) ? 1 : $npage;
			if(empty($pages)){
				$counts = $db->result_one("SELECT count(*) FROM {$tblprefix}farchives $wheresql");
				$pages = @ceil($counts / $atpp);
			}
			if($npage <= $pages){
				$fromstr = empty($fromid) ? "" : "aid<$fromid";
				$nwheresql = !$wheresql ? ($fromstr ? "WHERE $fromstr" : "") : ($wheresql.($fromstr ? " AND " : "").$fromstr);
				$query = $db->query("SELECT aid FROM {$tblprefix}farchives $nwheresql ORDER BY vieworder,aid DESC LIMIT 0,$atpp");
				while($item = $db->fetch_array($query)){
					$selectid[] = $item['aid'];
				}
			}
		}
		$aedit = new cls_farcedit;
		foreach($selectid as $aid){
			$aedit->set_aid($aid);
			if(!empty($arcdeal['delete'])){
				$aedit->arc_delete();
				continue;
			}
			if(!empty($arcdeal['check'])){
				$aedit->arc_check($arccheck);
			}
			//if(!empty($arcdeal['caid'])){
			//	$aedit->arc_caid($arccaid);
			//}
			$aedit->updatedb();
			$aedit->init();
		}
		unset($aedit);

		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=fconsults&action=fconsultsedit&page=$page$filterstr\">>>".lang('pause')."</a>",
						"?entry=fconsults&action=fconsultsedit&page=$page$filterstr$transtr$parastr&dealstr=$dealstr",
						500);
			}
		}
		adminlog(lang('freeinfo admin'),lang('freeinfo list admin'));
		amessage(lang('freeinfo operate finish'),"?entry=fconsults&action=fconsultsedit&page=$page$filterstr");
	
	}
}elseif($action == 'fconsult' && $aid){
	$forward = empty($forward) ? M_REFERER : $forward;
	$aedit = new cls_farcedit;
	$aedit->set_aid($aid);
	$aedit->basic_data();
	!$aedit->aid && amessage(lang('confirmchoose message'),$forward);	
	!$aedit->archive['checked'] && amessage(lang('nocheck message'),$forward);	
	$chid = $aedit->archive['chid'];
	$caid = $aedit->archive['caid'];
	if(!($fcatalog = read_cache('fcatalog',$caid)) || !$fcatalog['cumode']) amessage(lang('please point consult coclass'),$forward);
	if(!submitcheck('bfconsult') && !submitcheck('bsetstate') && !submitcheck('bfconsultadd')){
		a_guide('fconsult');
		tabheader(lang('consult based message'),'fconsult','?entry=fconsults&action=fconsult&aid='.$aid.'&forward='.urlencode($forward));
		trbasic(lang('consult coclass &nbsp;/&nbsp; title'),'',$fcatalog['title'].'&nbsp; -&nbsp; '.$aedit->archive['subject']."&nbsp;&nbsp;<a href=\"?entry=farchive&action=farchivedetail&aid=".$aedit->archive['aid']."\">>>".lang('detail')."</a>",'');
		trbasic(lang('consult member &nbsp;/&nbsp; add &nbsp;/&nbsp; update'),'',$aedit->archive['mname'].'&nbsp; /&nbsp; '.date("$dateformat $timeformat",$aedit->archive['createdate']).'&nbsp; /&nbsp; '.date("$dateformat $timeformat",$aedit->archive['updatedate']),'');
		trbasic(lang('setting state'),'qstatenew',makeradio('qstatenew',$qstatearr,$aedit->archive['qstate']),'');
		tabfooter();

		tabheader(lang('consult commu list'));
		trcategory(array(lang('based message'),lang('consult and reply content')));
		$query = $db->query("SELECT * FROM {$tblprefix}consults WHERE aid='$aid' ORDER BY cid");
		while($item = $db->fetch_array($query)){
			$cid = $item['cid'];
			trbasic('<b>'.$item['mname'].'</b>&nbsp; &nbsp; '.(empty($item['reply']) ? lang('consult') : lang('reply')).'&nbsp; :<br>'.date("$dateformat $timeformat",$item['createdate'])."<br><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$cid]\" value=\"$cid\">".lang('del'),'','<br>'.$item['content'].'<br>&nbsp;','');
		}
		tabfooter('bfconsult');
		if($aedit->archive['qstate'] != 'close'){
			tabheader(lang('admin reply'),'fconsultadd','?entry=fconsults&action=fconsult&aid='.$aid.'&forward='.urlencode($forward));
			trbasic(lang('reply content'),'contentadd','','btextarea');
			tabfooter('bfconsultadd',lang('add'));
		}

	}elseif(submitcheck('bfconsult')){
		!empty($delete) && $query = $db->query("DELETE FROM {$tblprefix}consults WHERE aid='$aid' AND cid IN (".mimplode($delete).") ORDER BY cid");
		$query = $db->query("UPDATE {$tblprefix}farchives SET qstate='$qstatenew',updatedate='$timestamp' WHERE aid='$aid'");
		amessage(lang('state setting succeed'),$forward);
	}elseif(submitcheck('bfconsultadd')){
		$aedit->archive['qstate'] == 'close' && amessage(lang('this consult item closed'),M_REFERER);
		$contentadd = empty($contentadd) ? '' : trim($contentadd);
		empty($contentadd) && amessage(lang('data missing'),M_REFERER);
		$fcatalog['culength'] && $contentadd = cutstr($contentadd,$fcatalog['culength']);
		$contentadd = mnl2br(mhtmlspecialchars($contentadd));
		$db->query("INSERT INTO {$tblprefix}consults SET
					 aid='$aid', 
					 content='$contentadd', 
					 mid='$memberid', 
					 mname='".$curuser->infos['mname']."', 
					 createdate='$timestamp',
					 reply=1
					 ");
		$db->query("UPDATE {$tblprefix}farchives SET qstate='end',updatedate='$timestamp' WHERE aid='$aid'");
		amessage(lang('add reply succeed'),$forward);
	}
}

?>