www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/admina/comments.inc.php
<? (!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission'); aheader(); !checkapermission($sid ? 136 : 72) && amessage(lang('no_apermission')); include_once M_ROOT."./include/arcedit.cls.php"; load_cache('channels,currencys,commus,cotypes'); load_cache('catalogs',$sid); if($action == 'commentsedit'){ $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; $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','chid','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('bcommentsedit')){ $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')." <input class=\"checkbox\" type=\"checkbox\" name=\"viewdetail\" value=\"1\" onclick=\"alterview('tbodyfilter')\"".(empty($viewdetail) ? '' : ' checked').">".lang('viewdetail') ." <input class=\"button\" type=\"submit\" name=\"bfilter\" value=\"".lang('filter0')."\">",'arcsedit',"?entry=comments&action=commentsedit$param_suffix&page=$page"); echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">"; trbasic(lang('weather check'),'checked',makeoption($checkedarr,$checked),'select'); trbasic(lang('belong catalog'),'caid',makeoption($caidsarr,$caid),'select'); trbasic(lang('archive channel'),'chid',makeoption($chidsarr,$chid),'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,'',' '.lang('day before').' - ',5),array('indays',empty($indays) ? '' : $indays,'',' '.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}comments 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)){ $cid = $item['cid']; $item['arcurl'] = view_arcurl($item); $item['content'] = cutstr(mhtmlspecialchars($item['content']),60); $item['createdate'] = date("$dateformat", $item['createdate']); $checkedstr = $item['checked'] ? 'Y' : '-'; $sourcestr = "<a href=\"".view_arcurl($item)."\" target=\"_blank\">".lang('look')."</a>"; $editstr = "<a href=\"?entry=comments&action=commentdetail&cid=$cid$param_suffix\">".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\">$item[mname]</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, $atpp, $page, "?entry=comments&action=commentsedit$param_suffix$filterstr"); tabheader(lang('comment list')." <input class=\"checkbox\" type=\"checkbox\" name=\"select_all\" value=\"1\"> ".lang('selectallpage'),'','',8); trcategory(array("<input class=\"checkbox\" type=\"checkbox\" name=\"chkall\" onclick=\"checkall(this.form, 'selectid', 'chkall')\">",lang('comment content'),lang('score'),lang('member'),lang('check'),lang('add date'),lang('source'),lang('edit'))); echo $itemstr; tabfooter(); echo $multi; $checkedarr = array('0' => lang('release check'),'1' => lang('check comment')); tabheader(lang('operate item')); trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[delete]\" value=\"1\"> ".lang('delete comment'),'','',''); trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"arcdeal[checked]\" value=\"1\"> ".lang('check comment'),'',makeradio('arcchecked',$checkedarr,'1'),''); tabfooter('bcommentsedit'); }else{ if(empty($arcdeal) && empty($dealstr)) amessage(lang('confirmselect operate item'),M_REFERER); if(empty($selectid) && empty($select_all)) amessage(lang('confirmselect comment'),M_REFERER); 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('arcchecked') as $k) $parastr .= "&$k=".$$k; $selectid = array(); $npage = empty($npage) ? 1 : $npage; if(empty($pages)){ $counts = $db->result_one("SELECT count(*) FROM {$tblprefix}comments c LEFT JOIN {$tblprefix}archives a ON (a.aid=c.aid) $wheresql"); $pages = @ceil($counts / $atpp); } if($npage <= $pages){ $fromstr = empty($fromid) ? "" : "c.cid<$fromid"; $nwheresql = !$wheresql ? ($fromstr ? "WHERE $fromstr" : "") : ($wheresql.($fromstr ? " AND " : "").$fromstr); $query = $db->query("SELECT c.cid,c.aid,c.score,c.checked,c.mid FROM {$tblprefix}comments c LEFT JOIN {$tblprefix}archives a ON (a.aid=c.aid) $nwheresql ORDER BY c.cid DESC LIMIT 0,$atpp"); } }else{ $query = $db->query("SELECT cid,aid,score,checked,mid FROM {$tblprefix}comments WHERE cid IN (".mimplode($selectid).") ORDER BY cid DESC"); } $aedit = new cls_arcedit; $actuser = new cls_userinfo; while($item = $db->fetch_array($query)){ $items[$item['cid']] = $item; } if(!empty($arcdeal['delete'])){ foreach($items as $item){ if($item['checked']){ $aedit->set_aid($item['aid']); $aedit->comments_num($item['score'],0,1); $aedit->init(); $actuser->activeuser($item['mid']); $actuser->basedeal('comment',0,1,1); $actuser->init(); } } $db->query("DELETE FROM {$tblprefix}comments WHERE cid IN (".mimplode(array_keys($items)).")",'UNBUFFERED'); }elseif(!empty($arcdeal['checked'])){ foreach($items as $item){ if($item['checked'] != $arcchecked){ $aedit->set_aid($item['aid']); $aedit->comments_num($item['score'],$arcchecked,1); $aedit->init(); $actuser->activeuser($item['mid']); $actuser->basedeal('comment',$arcchecked,1,1); $actuser->init(); } } $db->query("UPDATE {$tblprefix}comments SET checked='".$arcchecked."' WHERE cid IN (".mimplode(array_keys($items)).")"); } unset($aedit,$actuser); 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"; amessage(lang('operating')."<br> ".lang('all')." $pages ".lang('page0').",".lang('dealing')." $npage ".lang('page0')."<br><br> <a href=\"?entry=comments&action=commentsedit$param_suffix&page=$page$filterstr\">>>".lang('pause')."</a>", "?entry=comments&action=commentsedit&page=$page$param_suffix$filterstr$transtr$parastr&dealstr=$dealstr", 500); } } adminlog(lang('archive comment admin'),lang('comment list admin operate')); amessage(lang('comment admin finish'),"?entry=comments&action=commentsedit$param_suffix&page=$page$filterstr"); } } elseif($action == 'commentdetail' && $cid){ $forward = empty($forward) ? M_REFERER : $forward; if(!($comment = $db->fetch_one("SELECT * FROM {$tblprefix}comments WHERE cid=".$cid))){ amessage(lang('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; a_guide('commentdetail'); tabheader(lang('edit comment'),'commentdetail',"?entry=comments&action=commentdetail&cid=$cid$param_suffix&forward=".rawurlencode($forward)); trbasic(lang('comment 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']) && amessage(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]'"); adminlog(lang('archive comment edit'),lang('edit comment content')); amessage(lang('comment modify finish'),$forward); } } ?>