moderate.php
来自「sabreipb 2.1.6 utf-8中文版本!」· PHP 代码 · 共 2,138 行 · 第 1/5 页
PHP
2,138 行
<?php/*+--------------------------------------------------------------------------| Invision Power Board v2.1.6| =============================================| by Matthew Mecham| (c) 2001 - 2005 Invision Power Services, Inc.| http://www.invisionpower.com| =============================================| Web: http://www.invisionboard.com| Time: Thu, 04 May 2006 17:39:49 GMT| Release: b415613eeb952a2741ff6d53e0266428| Licence Info: http://www.invisionboard.com/?license+---------------------------------------------------------------------------| > $Date: 2006-01-11 22:47:48 +0000 (Wed, 11 Jan 2006) $| > $Revision: 122 $| > $Author: bfarber $+---------------------------------------------------------------------------|| > Moderation core module| > Module written by Matt Mecham| > Date started: 19th February 2002|| > Module Version 1.0.0| > DBA Checked: Wed 19 May 2004| > Quality Checked: Wed 15 Sept. 2004+--------------------------------------------------------------------------*/if ( ! defined( 'IN_IPB' ) ){ print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded all the relevant files."; exit();}class moderate{ var $output = ""; var $base_url = ""; var $html = ""; var $moderator = ""; var $modfunc = ""; var $forum = array(); var $topic = array(); var $upload_dir = ""; var $trash_forum = 0; var $trash_inuse = 0; /*-------------------------------------------------------------------------*/ // Our constructor, load words, load skin, print the topic listing /*-------------------------------------------------------------------------*/ function auto_run() { $post_array = array( '04', '02', '20', '22', 'resync', 'prune_start', 'prune_finish', 'prune_move', 'editmember' ); $not_forum_array = array( 'editmember' ); //----------------------------------------- // Make sure this is a POST request // not a naughty IMG redirect //----------------------------------------- if ( ! in_array( $this->ipsclass->input['CODE'], $post_array ) ) { if ( $_POST['act'] == '') { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'incorrect_use') ); } } //----------------------------------------- // Nawty, Nawty! //----------------------------------------- if ($this->ipsclass->input['CODE'] != '02' and $this->ipsclass->input['CODE'] != '05') { if ($this->ipsclass->input['auth_key'] != $this->ipsclass->return_md5_check() ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'del_post') ); } } //----------------------------------------- // Compile the language file //----------------------------------------- $this->ipsclass->load_language('lang_mod'); $this->ipsclass->load_template('skin_mod'); //----------------------------------------- // Check the input //----------------------------------------- if ( ! in_array( $this->ipsclass->input['CODE'], $not_forum_array ) ) { //----------------------------------------- // t //----------------------------------------- if ($this->ipsclass->input['t']) { $this->ipsclass->input['t'] = intval($this->ipsclass->input['t']); if ( ! $this->ipsclass->input['t'] ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files') ); } else { $this->ipsclass->DB->simple_construct( array( 'select' => '*', 'from' => 'topics', 'where' => 'tid='.intval($this->ipsclass->input['t']) ) ); $this->ipsclass->DB->simple_exec(); $this->topic = $this->ipsclass->DB->fetch_row(); if (empty($this->topic['tid'])) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files') ); } } } //----------------------------------------- // p //----------------------------------------- if ($this->ipsclass->input['p']) { $this->ipsclass->input['p'] = intval($this->ipsclass->input['p']); if (! $this->ipsclass->input['p'] ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files') ); } } //----------------------------------------- // F? //----------------------------------------- $this->ipsclass->input['f'] = intval($this->ipsclass->input['f']); if ( ! $this->ipsclass->input['f'] ) { $this->ipsclass->Error( array( 'LEVEL' => 1,'MSG' => 'missing_files') ); } $this->ipsclass->input['st'] = intval($this->ipsclass->input['st']); //----------------------------------------- // Get the forum info based on the forum ID, //----------------------------------------- $this->forum = $this->ipsclass->forums->forum_by_id[ $this->ipsclass->input['f'] ]; $this->base_url = $this->ipsclass->base_url; //----------------------------------------- // Are we a moderator? //----------------------------------------- if ( $this->ipsclass->member['_moderator'][ $this->ipsclass->input['f'] ] ) { $this->moderator = $this->ipsclass->member['_moderator'][ $this->ipsclass->input['f'] ]; } } //----------------------------------------- // Load mod module... //----------------------------------------- require( ROOT_PATH.'sources/lib/func_mod.php'); $this->modfunc = new func_mod(); $this->modfunc->ipsclass =& $this->ipsclass; $this->modfunc->init($this->forum); $this->upload_dir = $this->ipsclass->vars['upload_dir']; //----------------------------------------- // Trash-can set up //----------------------------------------- if ( $this->ipsclass->vars['forum_trash_can_enable'] and $this->ipsclass->vars['forum_trash_can_id'] ) { if ( $this->ipsclass->cache['forum_cache'][ $this->ipsclass->vars['forum_trash_can_id'] ]['sub_can_post'] ) { if ( $this->ipsclass->member['mgroup'] == $this->ipsclass->vars['admin_group'] ) { $this->trash_forum = $this->ipsclass->vars['forum_trash_can_use_radmin'] ? $this->ipsclass->vars['forum_trash_can_id'] : 0; } else if ( $this->ipsclass->member['g_access_cp'] ) { $this->trash_forum = $this->ipsclass->vars['forum_trash_can_use_admin'] ? $this->ipsclass->vars['forum_trash_can_id'] : 0; } else if ( $this->ipsclass->member['g_is_supmod'] ) { $this->trash_forum = $this->ipsclass->vars['forum_trash_can_use_smod'] ? $this->ipsclass->vars['forum_trash_can_id'] : 0; } else if ( $this->ipsclass->member['is_mod'] ) { $this->trash_forum = $this->ipsclass->vars['forum_trash_can_use_mod'] ? $this->ipsclass->vars['forum_trash_can_id'] : 0; } } } //----------------------------------------- // Convert the code ID's into something // use mere mortals can understand.... //----------------------------------------- switch ($this->ipsclass->input['CODE']) { case '02': $this->move_form(); break; case '03': $this->delete_form(); break; case '04': $this->delete_post(); break; case '05': $this->edit_form(); break; case '00': $this->close_topic(); break; case '01': $this->open_topic(); break; case '08': $this->delete_topic(); break; case '12': $this->do_edit(); break; case '14': $this->do_move(); break; case '15': $this->pin_topic(); break; case '16': $this->unpin_topic(); break; case '17': $this->rebuild_topic(); break; //----------------------------------------- // Unsubscribe //----------------------------------------- case '30': $this->unsubscribe_all_form(); break; case '31': $this->unsubscribe_all(); break; //----------------------------------------- // Merge Start //----------------------------------------- case '60': $this->merge_start(); break; case '61': $this->merge_complete(); break; //----------------------------------------- // Topic History //----------------------------------------- case '90': $this->topic_history(); break; //----------------------------------------- // Multi--- //----------------------------------------- case 'topicchoice': $this->multi_topic_modify(); break; //----------------------------------------- // Multi--- //----------------------------------------- case 'postchoice': $this->multi_post_modify(); break; //----------------------------------------- // Resynchronize Forum //----------------------------------------- case 'resync': $this->resync_forum(); break; //----------------------------------------- // Prune / Move Topics //----------------------------------------- case 'prune_start': $this->prune_start(); break; case 'prune_finish': $this->prune_finish(); break; case 'prune_move': $this->prune_move(); break; //----------------------------------------- // Add. topic view func. //----------------------------------------- case 'topic_approve': $this->topic_approve_alter('approve'); break; case 'topic_unapprove': $this->topic_approve_alter('unapprove'); break; //----------------------------------------- // Edit member //----------------------------------------- case 'editmember': $this->edit_member(); break; default: $this->moderate_error(); break; } // If we have any HTML to print, do so... $this->ipsclass->print->add_output( $this->output ); $this->ipsclass->print->do_output( array( 'TITLE' => $this->page_title, 'JS' => 0, NAV => $this->nav ) ); } /*-------------------------------------------------------------------------*/ // Edit member /*-------------------------------------------------------------------------*/ function edit_member() { $mid = intval($this->ipsclass->input['mid']); //----------------------------------------- // Check Permissions //----------------------------------------- if ( ! $this->ipsclass->member['g_is_supmod'] ) { $this->moderate_error(); } //----------------------------------------- // Load and config the post parser //----------------------------------------- require_once( ROOT_PATH."sources/handlers/han_parse_bbcode.php" ); $parser = new parse_bbcode(); $parser->ipsclass = $this->ipsclass; $parser->parse_html = intval($this->ipsclass->vars['sig_allow_html']); $parser->parse_nl2br = 1; $parser->parse_smilies = 0; $parser->parse_bbcode = $this->ipsclass->vars['sig_allow_ibc']; //----------------------------------------- // Got anyfink? //----------------------------------------- if ( ! $mid ) { $this->moderate_error(); } //----------------------------------------- // Get member //----------------------------------------- $this->ipsclass->DB->cache_add_query( 'profile_get_all' , array( 'mid' => $mid ) ); $this->ipsclass->DB->cache_exec_query(); $member = $this->ipsclass->DB->fetch_row(); //----------------------------------------- // Show Form? //----------------------------------------- if ( ! $this->ipsclass->input['checked'] ) { $this->output .= $this->html_start_form( array( 1 => array( 'CODE' , 'editmember'), 4 => array( 'mid' , $mid ), 5 => array( 'checked', 1 ), ) ); //----------------------------------------- // No editing of admins! //----------------------------------------- if ( ! $this->ipsclass->member['g_access_cp'] ) { if ( $this->ipsclass->cache['group_cache'][ $member['mgroup'] ]['g_access_cp'] ) { $this->moderate_error('cp_admin_user'); return; } } $editable['signature'] = $parser->pre_edit_parse( $member['signature'] ); $editable['location'] = $member['location']; $editable['interests'] = $this->ipsclass->my_br2nl($member['interests']); $editable['website'] = $member['website']; $editable['id'] = $member['id']; $editable['members_display_name'] = $member['members_display_name']; $editable['aim_name'] = $member['aim_name']; $editable['icq_number'] = $member['icq_number']; $editable['msnname'] = $member['msnname']; $editable['yahoo'] = $member['yahoo']; $optional_output = ""; //----------------------------------------- // Profile fields //----------------------------------------- require_once( ROOT_PATH.'sources/classes/class_custom_fields.php' ); $fields = new custom_fields( $this->ipsclass->DB );
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?