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

    <?
!defined('M_COM') && exit('No Permission');
load_cache('channels,acatalogs,currencys,commus');
$catalogs = &$acatalogs;
$cid = empty($cid) ? 0 : max(0,intval($cid));
if(!$cid){
	$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;
	$chid = empty($chid) ? '0' : $chid;
	$subject = empty($subject) ? '' : $subject;
	$indays = empty($indays) ? 0 : max(0,intval($indays));
	$outdays = empty($outdays) ? 0 : max(0,intval($outdays));
	$filterstr = '';
	foreach(array('viewdetail','checked','caid','chid','subject','indays','outdays') as $k){
		$filterstr .= "&$k=".rawurlencode($$k);
	}
	$wheresql = "WHERE c.mid='$memberid'";
	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).")";
	}
	if($chid) $wheresql .= " AND a.chid='$chid'";
	if($subject) $wheresql .= " AND a.subject='$subject'";
 	if($indays) $wheresql .= " AND c.createdate>'".($timestamp - 86400 * $indays)."'";
	if($outdays) $wheresql .= " AND c.createdate<'".($timestamp - 86400 * $outdays)."'";
	if(!submitcheck('bcommentsedit')){
		m_guide(20);
		$checkedarr = array('-1' => lang('nolimit'),'0' => lang('nocheck'),'1' => lang('checked'));
		$caidsarr = array('0' => lang('all catalog')) + caidsarr();
		$chidsarr = array('0' => lang('all channel')) + chidsarr();
		tabheader(lang('filter0 comment').viewcheck('viewdetail',$viewdetail,'tbodyfilter').'&nbsp; &nbsp; '.strbutton('bfilter','filter0'),'arcsedit',"adminm.php?action=comments");
		echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">";
		trbasic(lang('weather check'),'',makeradio('checked',$checkedarr,$checked),'');
		trbasic(lang('belong catalog'),'caid',makeoption($caidsarr,$caid),'select');
		trbasic(lang('archive channel'),'chid',makeoption($chidsarr,$chid),'select');
		trbasic(lang('archive title'),'subject',$subject);
		trrange(lang('comment 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.sid,a.arcurl,a.caid,a.chid FROM {$tblprefix}comments c LEFT JOIN {$tblprefix}archives a ON (a.aid=c.aid) $wheresql ORDER BY c.cid DESC LIMIT ".(($pagetmp - 1) * $mrowpp).",$mrowpp");
			$pagetmp--;
		} while(!$db->num_rows($query) && $pagetmp);
		$itemstr = '';
		while($item = $db->fetch_array($query)){
			$cid = $item['cid'];
			$item['content'] = cutstr(mhtmlspecialchars($item['content']),40);
			$item['createdate'] = date("$dateformat", $item['createdate']);
			$castr = @$catalogs[$item['caid']]['title'];
			$checkedstr = $item['checked'] ? 'Y' : '-';
			$sourcestr = "<a href=\"".view_arcurl($item)."\" target=\"_blank\">".lang('look')."</a>";
			$editstr = "<a href=\"?action=comments&cid=$cid\">".lang('edit')."</a>";
			$itemstr .= "<tr><td align=\"center\" class=\"item1\" width=\"30\"><input class=\"checkbox\" type=\"checkbox\" name=\"selectid[$cid]\" value=\"$cid\"></td>\n".
				"<td class=\"item2\">$item[content]</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\">$item[score]</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"80\">$castr</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\">$checkedstr</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"70\">$item[createdate]</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\">$sourcestr</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"30\">$editstr</td></tr>\n";
		}
		$counts = $db->result_one("SELECT count(*) FROM {$tblprefix}comments c LEFT JOIN {$tblprefix}archives a ON (a.aid=c.aid) $wheresql");
		$multi = multi($counts,$mrowpp,$page,"?action=comments$filterstr");

		tabheader(lang('comment list')."&nbsp;&nbsp;&nbsp;&nbsp;<input class=\"checkbox\" type=\"checkbox\" name=\"select_all\" value=\"1\">&nbsp;".lang('selectallpage'),'','',8);
		trcategory(array("<input class=\"checkbox\" type=\"checkbox\" name=\"chkall\" onclick=\"checkall(this.form, 'selectid', 'chkall')\">",lang('comment content'),lang('score'),lang('catalog'),lang('check'),lang('comment date'),lang('source'),lang('edit')));
		echo $itemstr;
		tabfooter();
		echo $multi;
		echo "<input class=\"button\" type=\"submit\" name=\"bcommentsedit\" value=\"".lang('delete')."\"></form>";
	}else{
		if(empty($selectid) && empty($select_all)){
			mcmessage(lang('confirmselect comment'),"?action=comments&page=$page$filterstr");
		}
		if(!empty($select_all)){
			$selectid = array();
			$npage = empty($npage) ? 1 : $npage;
			if(empty($pages)){
				$itemcount = $db->result_one("SELECT count(*) FROM {$tblprefix}comments c LEFT JOIN {$tblprefix}archives a ON (a.aid=c.aid) $wheresql");
				$pages = @ceil($itemcount / $mrowpp);
			}
			if($npage <= $pages){
				$fromstr = empty($fromid) ? "" : "c.cid<$fromid";
				$nwheresql = !$wheresql ? ($fromstr ? "WHERE $fromstr" : "") : ($wheresql.($fromstr ? " AND " : "").$fromstr);
				$query = $db->query("SELECT c.cid FROM {$tblprefix}comments c LEFT JOIN {$tblprefix}archives a ON (a.aid=c.aid) $nwheresql ORDER BY c.cid DESC LIMIT 0,$mrowpp");
				$items = array();
				while($item = $db->fetch_array($query)){
					$items[$item['cid']] = $item['cid'];
				}
			}
		}else{
			$items = $selectid;
		}
		$db->query("DELETE FROM {$tblprefix}comments WHERE cid IN (".mimplode(array_keys($items)).") AND checked=0",'UNBUFFERED');
		if(!empty($select_all)){
			$npage ++;
			if($npage <= $pages){
				$fromid = min(array_keys($items));
				$transtr = '';
				$transtr .= "&select_all=1";
				$transtr .= "&pages=$pages";
				$transtr .= "&npage=$npage";
				$transtr .= "&bcommentsedit=1";
				$transtr .= "&fromid=$fromid";
				mcmessage(lang('operating')."<br>
						".lang('all')." $pages ".lang('page0').",".lang('dealing')." $npage ".lang('page0')."<br><br>
						<a href=\"?action=comments&page=$page$filterstr\">>>".lang('pause')."</a>",
						"?action=comments&page=$page$filterstr$transtr",
						500);
			}
		}
		mcmessage(lang('comment delete succeed'),"?action=comments&page=$page$filterstr");
	}
}else{
	$forward = empty($forward) ? M_REFERER : $forward;
	if(!$comment = $db->fetch_one("SELECT * FROM {$tblprefix}comments WHERE cid=$cid AND mid=$memberid")){
		mcmessage('pointed comment noexist',$forward);
	}
	$commu = read_cache('commu',5);
	if(!submitcheck('bcommentdetail')){
		$scorearr = array();
		for($i = (empty($commu['setting']['minscore']) ? 0 : $commu['setting']['minscore']);$i <= (empty($commu['setting']['maxscore']) ? 10 : $commu['setting']['maxscore']);$i ++) $scorearr[$i] = $i;
		tabheader(lang('edit comment'),'commentdetail',"adminm.php?action=comments&cid=$cid&forward=".urlencode($forward));
		trbasic(lang('archive title'),'',$comment['title'],'');
		trbasic(lang('archive score'),'commentnew[score]',makeoption($scorearr,$comment['score']),'select');
		trbasic(lang('comment content'),'commentnew[content]',$comment['content'],'btextarea');
		tabfooter('bcommentdetail');
	}else{
		$commentnew['content'] = empty($commentnew['content']) ? '' : trim($commentnew['content']);
		(!empty($commu['setting']['minlength']) && strlen($commentnew['content']) < $commu['setting']['minlength']) && mcmessage(lang('comment over minlength'),M_REFERER);
		!empty($commu['setting']['maxlength']) && $commentnew['content'] = cutstr($commentnew['content'],$commu['setting']['maxlength']);
		$db->query("UPDATE {$tblprefix}comments SET 
					score='$commentnew[score]',
					content='$commentnew[content]'
					WHERE cid='$cid'");
		if($d = $commentnew['score'] - $comment['score']) $db->query("UPDATE {$tblprefix}archives SET scores=ROUND((comments*scores+$d)/comments,2) WHERE aid='$comment[aid]'");
		mcmessage(lang('comment modify finish'),$forward);
	}
}
?>