DiscuzX/upload/source/admincp/admincp_moderate.php

304 lines
9.2 KiB
PHP

<?php
/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: admincp_moderate.php 32501 2013-01-29 09:51:00Z chenmengshu $
*/
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
exit('Access Denied');
}
cpheader();
$ignore = $_GET['ignore'];
$filter = $_GET['filter'];
$modfid = $_GET['modfid'];
$modsubmit = $_GET['modsubmit'];
$moderate = $_GET['moderate'];
$pm = $_GET['pm'];
$showcensor = !empty($_GET['showcensor']) ? 1 : 0;
$_G['setting']['memberperpage'] = 100;
if(empty($operation)) {
$operation = 'threads';
}
if($operation == 'members') {
require_once libfile('moderate/member', 'admincp');
exit;
} else {
require_once libfile('function/forumlist');
require_once libfile('function/post');
$modfid = !empty($modfid) ? intval($modfid) : 0;
$recyclebins = $forumlist = array();
$query = C::t('forum_forum')->fetch_all_valid_forum();
foreach($query as $forum) {
$recyclebins[$forum['fid']] = $forum['recyclebin'];
$forumlist[$forum['fid']] = $forum['name'];
}
if($modfid && $modfid != '-1') {
$fidadd = array('fids' => $modfid, 'and' => ' AND ', 't' => 't.', 'p' => 'p.');
} else {
$fidadd = array();
}
if(isset($filter) && $filter == 'ignore') {
$displayorder = -3;
$moderatestatus = 1;
$filteroptions = '<option value="normal">'.$lang['moderate_none'].'</option><option value="ignore" selected>'.$lang['moderate_ignore'].'</option>';
} else {
$displayorder = -2;
$moderatestatus = 0;
$filter = 'normal';
$filteroptions = '<option value="normal" selected>'.$lang['moderate_none'].'</option><option value="ignore">'.$lang['moderate_ignore'].'</option>';
}
$forumoptions = '<option value="all"'.(empty($modfid) ? ' selected' : '').'>'.$lang['moderate_all_fields'].'</option>';
if($operation != 'replies') {
$forumoptions .= '<option value="-1" '.($modfid == '-1' ? 'selected' : '').'>'.$lang['moderate_all_groups'].'</option>'."\n";
}
foreach($forumlist as $fid => $forumname) {
$selected = $modfid == $fid ? ' selected' : '';
$forumoptions .= '<option value="'.$fid.'" '.$selected.'>'.$forumname.'</option>'."\n";
}
require_once libfile('function/misc');
$modreasonoptions = '<option value="">'.$lang['none'].'</option><option value="">--------</option>'.modreasonselect(1);
echo <<<EOT
<script type="text/JavaScript">
var cookiepre = "{$_G[config][cookie][cookiepre]}";
function mod_setbg(tid, value) {
$('mod_' + tid + '_row1').className = 'mod_' + value;
$('mod_' + tid + '_row2').className = 'mod_' + value;
$('mod_' + tid + '_row3').className = 'mod_' + value;
$("chk_apply_all").checked = false;
$("chk_apply_all").disabled = true;
}
function mod_setbg_all(value) {
checkAll('option', $('cpform'), value);
var trs = $('cpform').getElementsByTagName('TR');
for(var i in trs) {
if(trs[i].id && trs[i].id.substr(0, 4) == 'mod_') {
trs[i].className = 'mod_' + value;
}
}
$("chk_apply_all").disabled = false;
$("chk_apply_all").value = value;
}
function attachimg() {}
function expandall() {
var tds = $('cpform').getElementsByTagName('TD');
for(var i in tds) {
if(tds[i].id && tds[i].id.match(/^mod_(\d+)_row1_op$/) != null) {
tds[i].rowSpan = "3";
}
}
var trs = $('cpform').getElementsByTagName('TR');
for(var i in trs) {
if(trs[i].id && trs[i].id.match(/^mod_(\d+)_row1$/) != null) {
tds = trs[i].getElementsByTagName('TD');
for(var j in tds) {
if(tds[j].className == "threadtitle threadopt") {
tds[j].className = "";
}
}
}
if(trs[i].id && trs[i].id.match(/^mod_(\d+)_row(2|3)$/) != null) {
trs[i].style.display = "";
}
}
setcookie("foldall", 0, 3600);
}
function foldall() {
var tds = $('cpform').getElementsByTagName('TD');
for(var i in tds) {
if(tds[i].id && tds[i].id.match(/^mod_(\d+)_row1_op$/) != null) {
tds[i].rowSpan = "1";
}
}
var trs = $('cpform').getElementsByTagName('TR');
for(var i in trs) {
if(trs[i].id && trs[i].id.match(/^mod_(\d+)_row1$/) != null) {
tds = trs[i].getElementsByTagName('TD');
for(var j in tds) {
if(tds[j].className == "") {
tds[j].className = "threadtitle threadopt";
}
}
}
if(trs[i].id && trs[i].id.match(/^mod_(\d+)_row(2|3)$/) != null) {
trs[i].style.display = "none";
}
}
setcookie("foldall", 1, 3600);
}
function display_toggle(tid) {
var tr1 = $('mod_' + tid + '_row1');
var tr1_op = $('mod_' + tid + '_row1_op');
var tr2 = $('mod_' + tid + '_row2');
var tr3 = $('mod_' + tid + '_row3');
var tds = tr1.getElementsByTagName('TD');
if(tr1_op.rowSpan == "1") {
for(var i in tds) {
if(tds[i].className == "threadtitle threadopt") {
tds[i].className = "";
}
}
tr1_op.rowSpan = "3";
tr2.style.display = "";
tr3.style.display = "";
} else {
for(var i in tds) {
if(tds[i].className == "") {
tds[i].className = "threadtitle threadopt";
}
}
tr1_op.rowSpan = "1";
tr2.style.display = "none";
tr3.style.display = "none";
}
}
function mod_cancel_all() {
var form = $('cpform');
var checkall = 'chkall';
for(var i = 0; i < form.elements.length; i++) {
var e = form.elements[i];
if(e.type == 'radio') {
e.checked = '';
}
}
var trs = $('cpform').getElementsByTagName('TR');
for(var i in trs) {
if(trs[i].id && trs[i].id.match(/^mod_(\d+)_row(1|2|3)$/)) {
trs[i].className = "mod_cancel";
}
}
$("chk_apply_all").checked = false;
$("chk_apply_all").disabled = true;
}
function remove_element(_element) {
var _parentElement = _element.parentNode;
if(_parentElement){
_parentElement.removeChild(_element);
}
}
function mod_remove_row(id) {
var id1 = "mod_" + id + "_row1";
var id2 = "mod_" + id + "_row2";
var id3 = "mod_" + id + "_row3";
var node1 = parent.document.getElementById(id1);
var node2 = parent.document.getElementById(id2);
var node3 = parent.document.getElementById(id3);
remove_element(node1);
remove_element(node2);
remove_element(node3);
}
window.onload = function() {
if(getcookie("foldall")) {
foldall();
}
};
</script>
EOT;
}
$submenu = array(
array(array('menu' => 'moderate_m_forum', 'submenu' => array(
'threads' => array('nav_moderate_threads', 'moderate&operation=threads', $operation == 'threads'),
'replies' => array('nav_moderate_replies', 'moderate&operation=replies', $operation == 'replies'),
)), in_array($operation, array('threads', 'replies'))),
array(array('menu' => 'moderate_m_home', 'submenu' => array(
'blogs' => array('nav_moderate_blogs', 'moderate&operation=blogs', $operation == 'blogs'),
'pictures' => array('nav_moderate_pictures', 'moderate&operation=pictures', $operation == 'pictures'),
'doings' => array('nav_moderate_doings', 'moderate&operation=doings', $operation == 'doings'),
'shares' => array('nav_moderate_shares', 'moderate&operation=shares', $operation == 'shares'),
'comments' => array('nav_moderate_comments', 'moderate&operation=comments', $operation == 'comments'),
)), in_array($operation, array('blogs', 'pictures', 'doings', 'shares', 'comments'))),
array(array('menu' => 'moderate_m_portal', 'submenu' => array(
'articles' => array('nav_moderate_articles', 'moderate&operation=articles', $operation == 'articles'),
'articlecomments' => array('nav_moderate_articlecomments', 'moderate&operation=articlecomments', $operation == 'articlecomments'),
'topiccomments' => array('nav_moderate_topiccomments', 'moderate&operation=topiccomments', $operation == 'topiccomments'),
)), in_array($operation, array('articles', 'articlecomments', 'topiccomments')))
);
if($operation == 'threads') {
require_once libfile('moderate/thread', 'admincp');
} elseif($operation == 'replies') {
require_once libfile('moderate/reply', 'admincp');
} elseif($operation == 'blogs') {
require_once libfile('moderate/blog', 'admincp');
} elseif($operation == 'pictures') {
require_once libfile('moderate/picture', 'admincp');
} elseif($operation == 'doings') {
require_once libfile('moderate/doing', 'admincp');
} elseif($operation == 'shares') {
require_once libfile('moderate/share', 'admincp');
} elseif($operation == 'comments') {
require_once libfile('moderate/comment', 'admincp');
} elseif($operation == 'articles') {
require_once libfile('moderate/article', 'admincp');
} elseif($operation == 'articlecomments' || $operation == 'topiccomments') {
require_once libfile('moderate/portalcomment', 'admincp');
}
echo '<iframe name="fasthandle" style="display: none;"></iframe>';
function callback_js($id) {
$js = <<<EOT
<script type="text/javascript">
mod_remove_row('$id');
</script>
EOT;
return $js;
}
function moderateswipe($type, $ids) {
if($type == 'pid') {
$exist_ids = array_keys(C::t('forum_post')->fetch_all(0, $ids));
} elseif($type == 'tid') {
$exist_ids = array_keys(C::t('forum_thread')->fetch_all($ids));
}
$remove_ids = array_diff($ids, $exist_ids);
if($remove_ids) {
return C::t('common_moderate')->delete($remove_ids, $type);
} else {
return 0;
}
}
?>