2050100"; $tpp = !empty($_GET['tpp']) ? $_GET['tpp'] : '20'; $start_limit = ($page - 1) * $tpp; $dateline = $_GET['dateline'] ? $_GET['dateline'] : '604800'; $dateline_options = ''; foreach(array('all', '604800', '2592000', '7776000') as $v) { $selected = ''; if($dateline == $v) { $selected = "selected='selected'"; } $dateline_options .= "".cplang("dateline_$v"); } shownav('topic', $lang['moderate_threads']); showsubmenu('nav_moderate_threads', $submenu); showformheader("moderate&operation=threads"); showtableheader('search'); showtablerow('', array('width="60"', 'width="160"', 'width="60"'), array( cplang('username'), "", cplang('moderate_title_keyword'), "", ) ); showtablerow('', array('width="60"', 'width="160"', 'width="60"'), array( "$lang[perpage]", "$tpp_options $lang[moderate_showcensor]", "$lang[moderate_bound]", "$filteroptions $forumoptions $dateline_options " ) ); showtablefooter(); showtableheader(); $title = ''; if(!empty($_GET['title'])) { $title = str_replace(array('_', '%'), array('\_', '\%'), $_GET['title']); } if(!empty($dateline) && $dateline != 'all') { $srcdate = TIMESTAMP - $dateline; } $fids = $modfid && $modfid != -1 ? $modfid : 0; $isgroup = $modfid == -1 ? 1 : -1; $modcount = 0; $moderates = C::t('common_moderate')->fetch_all_by_idtype('tid', $moderatestatus, $srcdate); if(!empty($moderates)) { $modcount = C::t('forum_thread')->count_by_tid_fid(array_keys($moderates), $fids, $isgroup, $_GET['username'], $title); } if($modcount != count($moderates) && !$srcdate && !$fids && !$_GET['username'] && !$title) { moderateswipe('tid', array_keys($moderates)); } $start_limit = ($page - 1) * $tpp; if($modcount) { $threadlist = C::t('forum_thread')->fetch_all_by_tid_fid(array_keys($moderates), $fids, $isgroup, $_GET['username'], $title, $start_limit, $tpp); $tids = C::t('forum_thread')->get_posttableid(); if($tids) { foreach($tids as $posttableid => $tid) { foreach(C::t('forum_post')->fetch_all_by_tid($posttableid, $tid, true, '', 0, 0, 1) as $post) { $threadlist[$post['tid']] = array_merge($threadlist[$post['tid']], $post); } } } $multipage = multi($modcount, $tpp, $page, ADMINSCRIPT."?action=moderate&operation=threads&filter=$filter&modfid=$modfid&dateline={$_GET['dateline']}&username={$_GET['username']}&title={$_GET['title']}&tpp=$tpp&showcensor=$showcensor"); } echo ''.cplang('moderate_all_expand').' '.cplang('moderate_all_fold').''; loadcache('forums'); require_once libfile('function/misc'); foreach($threadlist as $thread) { $threadsortinfo = ''; $thread['useip'] = $thread['useip'] . '-' . convertip($thread['useip']); if($thread['authorid'] && $thread['author']) { $thread['author'] = "$thread[author]"; } elseif($thread['authorid'] && !$thread['author']) { $thread['author'] = "$lang[anonymous]"; } else { $thread['author'] = $lang['guest']; } $thread['dateline'] = dgmdate($thread['dateline']); $thread['message'] = discuzcode($thread['message'], $thread['smileyoff'], $thread['bbcodeoff']); $censor = & discuz_censor::instance(); $censor->highlight = '#FF0000'; if($showcensor) { $censor->check($thread['subject']); $censor->check($thread['message']); } $thread['modthreadkey'] = modauthkey($thread['tid']); $censor_words = $censor->words_found; if(count($censor_words) > 3) { $censor_words = array_slice($censor_words, 0, 3); } $thread['censorwords'] = implode(', ', $censor_words); if($thread['attachment']) { require_once libfile('function/attachment'); foreach(C::t('forum_attachment_n')->fetch_all_by_id('tid:'.$thread['tid'], 'tid', $thread['tid']) as $attach) { $_G['setting']['attachurl'] = $attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']; $attach['url'] = $attach['isimage'] ? " $attach[filename] (".sizecount($attach['filesize']).") 400) {this.resized=true; this.width=400;}\">" : "$attach[filename] (".sizecount($attach['filesize']).")"; $thread['message'] .= "$lang[attachment]: ".attachtype(fileext($attach['filename'])).$attach['url']; } } if($thread['sortid']) { require_once libfile('function/threadsort'); $threadsortshow = threadsortshow($thread['sortid'], $thread['tid']); foreach($threadsortshow['optionlist'] as $option) { $threadsortinfo .= $option['title'].' '.$option['value'].""; } } if(count($censor_words)) { $thread_censor_text = "($thread[censorwords])"; } else { $thread_censor_text = ''; } $forumname = $_G['cache']['forums'][$thread['fid']]['name']; showtagheader('tbody', '', true, 'hover'); showtablerow("id=\"mod_$thread[tid]_row1\"", array("id=\"mod_$thread[tid]_row1_op\" rowspan=\"3\" class=\"rowform threadopt\" style=\"width:80px;\"", '', 'width="120"', 'width="120"', 'width="55"'), array( "$lang[validate]$lang[delete]$lang[ignore]", "$thread[subject] $thread_censor_text$thread[useip]", "$forumname", "$thread[author] $thread[dateline]", "$lang[view] $lang[edit]", )); showtablerow("id=\"mod_$thread[tid]_row2\"", 'colspan="4" style="padding: 10px; line-height: 180%;"', ''.$thread['message'].''.$threadsortinfo.''); showtablerow("id=\"mod_$thread[tid]_row3\"", 'class="threadopt threadtitle" colspan="4"', "$lang[validate] | $lang[delete] | $lang[ignore] | ".$lang['moderate_edit_thread']." | ".$lang['moderate_reasonpm']." $modreasonoptions"); showtagfooter('tbody'); } showsubmit('modsubmit', 'submit', '', ''.cplang('moderate_all_validate').' '.cplang('moderate_all_delete').' '.cplang('moderate_all_ignore').' '.cplang('moderate_all_cancel').' '.cplang('moderate_apply_all').'', $multipage, false); showtablefooter(); showformfooter(); } else { $validates = $ignores = $recycles = $deletes = 0; $validatedthreads = $pmlist = array(); $moderation = array('validate' => array(), 'delete' => array(), 'ignore' => array()); if(is_array($moderate)) { foreach($moderate as $tid => $act) { $moderation[$act][] = intval($tid); } } if($_GET['apply_all']) { $apply_all_action = $_GET['apply_all']; $author = $dateline = $isgroup = $displayorder = null; if($filter == 'ignore') { $displayorder = -3; } else { $displayorder = -2; } if($modfid == -1) { $isgroup = 1; } if(!empty($_GET['dateline']) && $_GET['dateline'] != 'all') { $dateline = $_GET['dateline']; } foreach(C::t('forum_thread')->fetch_all_moderate($modfid, $displayorder, $isgroup, $dateline, $_GET['username'], $_GET['title']) as $thread) { switch($apply_all_action) { case 'validate': $moderation['validate'][] = $thread['tid']; break; case 'delete': $moderation['delete'][] = $thread['tid']; break; case 'ignore': $moderation['ignore'][] = $thread['tid']; break; } } } if($moderation['ignore']) { $ignores = C::t('forum_thread')->update_displayorder_by_tid_displayorder($moderation['ignore'], -2, -3); updatemoderate('tid', $moderation['ignore'], 1); } if($moderation['delete']) { $deletetids = array(); $recyclebintids = array(); $log_handler = Cloud::loadClass('Cloud_Service_SearchHelper'); foreach(C::t('forum_thread')->fetch_all_by_tid_displayorder($moderation['delete'], $displayorder, '>=', $fidadd[fids]) as $thread) { $log_handler->myThreadLog('delete', array('tid' => $thread['tid'])); if($recyclebins[$thread['fid']]) { $recyclebintids[] = $thread['tid']; } else { $deletetids[] = $thread['tid']; } $pm = 'pm_'.$thread['tid']; if($thread['authorid'] && $thread['authorid'] != $_G['uid']) { $pmlist[] = array( 'action' => $_GET[$pm] ? 'modthreads_delete_reason' : 'modthreads_delete', 'notevar' => array('threadsubject' => $thread['subject'], 'reason' => $_GET[$pm]), 'authorid' => $thread['authorid'], ); } } require_once libfile('function/delete'); if($recyclebintids) { $recycles = deletethread($recyclebintids, false, false, true); updatemodworks('MOD', $recycles); updatemodlog(implode(',', $recyclebintids), 'DEL'); } $deletes = deletethread($deletetids); updatemoderate('tid', $moderation['delete'], 2); } if($moderation['validate']) { require_once libfile('function/forum'); $forums = array(); $tids = $authoridarray = $moderatedthread = array(); $log_handler = Cloud::loadClass('Cloud_Service_SearchHelper'); foreach(C::t('forum_thread')->fetch_all_by_tid_fid($moderation['validate'], $fidadd['fids']) as $thread) { if($thread['displayorder'] != -2 && $thread['displayorder']!= -3) { continue; } $poststatus = C::t('forum_post')->fetch_threadpost_by_tid_invisible($thread['tid']); $poststatus = $poststatus['status']; $tids[] = $thread['tid']; $log_handler->myThreadLog('validate', array('tid' => $thread['tid'])); if(getstatus($poststatus, 3) == 0) { updatepostcredits('+', $thread['authorid'], 'post', $thread['fid']); $attachcount = C::t('forum_attachment_n')->count_by_id('tid:'.$thread['tid'], 'tid', $thread['tid']); updatecreditbyaction('postattach', $thread['authorid'], array(), '', $attachcount, 1, $thread['fid']); } $forums[] = $thread['fid']; $validatedthreads[] = $thread; $pm = 'pm_'.$thread['tid']; if($thread['authorid'] && $thread['authorid'] != $_G['uid']) { $pmlist[] = array( 'action' => 'modthreads_validate', 'notevar' => array('tid' => $thread['tid'], 'threadsubject' => $thread['subject'], 'reason' => dhtmlspecialchars($_GET[''.$pm]), 'from_id' => 0, 'from_idtype' => 'modthreads'), 'authorid' => $thread['authorid'], ); } } if($tids) { $tidstr = dimplode($tids); C::t('forum_post')->update_by_tid(0, $tids, array('status' => 4), false, false, null, -2, 0); loadcache('posttableids'); $posttableids = $_G['cache']['posttableids'] ? $_G['cache']['posttableids'] : array('0'); foreach($posttableids as $id) { C::t('forum_post')->update_by_tid($id, $tids, array('invisible' => '0'), false, false, 1); } $validates = C::t('forum_thread')->update($tids, array('displayorder' => 0, 'moderated' => 1)); foreach(array_unique($forums) as $fid) { updateforumcount($fid); } updatemodworks('MOD', $validates); updatemodlog($tidstr, 'MOD'); updatemoderate('tid', $tids, 2); } } if($pmlist) { foreach($pmlist as $pm) { notification_add($pm['authorid'], 'system', $pm['action'], $pm['notevar'], 1); } } if($_GET['fast']) { echo callback_js($_GET['tid']); exit; } else { cpmsg('moderate_threads_succeed', "action=moderate&operation=threads&page=$page&filter=$filter&modfid=$modfid&username={$_GET['username']}&title={$_GET['title']}&tpp={$_GET['tpp']}&showcensor=$showcensor&dateline={$_GET['dateline']}", 'succeed', array('validates' => $validates, 'ignores' => $ignores, 'recycles' => $recycles, 'deletes' => $deletes)); } } ?>
'.cplang('moderate_all_expand').' '.cplang('moderate_all_fold').'
'; loadcache('forums'); require_once libfile('function/misc'); foreach($threadlist as $thread) { $threadsortinfo = ''; $thread['useip'] = $thread['useip'] . '-' . convertip($thread['useip']); if($thread['authorid'] && $thread['author']) { $thread['author'] = "$thread[author]"; } elseif($thread['authorid'] && !$thread['author']) { $thread['author'] = "$lang[anonymous]"; } else { $thread['author'] = $lang['guest']; } $thread['dateline'] = dgmdate($thread['dateline']); $thread['message'] = discuzcode($thread['message'], $thread['smileyoff'], $thread['bbcodeoff']); $censor = & discuz_censor::instance(); $censor->highlight = '#FF0000'; if($showcensor) { $censor->check($thread['subject']); $censor->check($thread['message']); } $thread['modthreadkey'] = modauthkey($thread['tid']); $censor_words = $censor->words_found; if(count($censor_words) > 3) { $censor_words = array_slice($censor_words, 0, 3); } $thread['censorwords'] = implode(', ', $censor_words); if($thread['attachment']) { require_once libfile('function/attachment'); foreach(C::t('forum_attachment_n')->fetch_all_by_id('tid:'.$thread['tid'], 'tid', $thread['tid']) as $attach) { $_G['setting']['attachurl'] = $attach['remote'] ? $_G['setting']['ftp']['attachurl'] : $_G['setting']['attachurl']; $attach['url'] = $attach['isimage'] ? " $attach[filename] (".sizecount($attach['filesize']).") 400) {this.resized=true; this.width=400;}\">" : "$attach[filename] (".sizecount($attach['filesize']).")"; $thread['message'] .= "$lang[attachment]: ".attachtype(fileext($attach['filename'])).$attach['url']; } } if($thread['sortid']) { require_once libfile('function/threadsort'); $threadsortshow = threadsortshow($thread['sortid'], $thread['tid']); foreach($threadsortshow['optionlist'] as $option) { $threadsortinfo .= $option['title'].' '.$option['value'].""; } } if(count($censor_words)) { $thread_censor_text = "($thread[censorwords])"; } else { $thread_censor_text = ''; } $forumname = $_G['cache']['forums'][$thread['fid']]['name']; showtagheader('tbody', '', true, 'hover'); showtablerow("id=\"mod_$thread[tid]_row1\"", array("id=\"mod_$thread[tid]_row1_op\" rowspan=\"3\" class=\"rowform threadopt\" style=\"width:80px;\"", '', 'width="120"', 'width="120"', 'width="55"'), array( "
$thread[useip]
$thread[author]
$thread[dateline]