⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mod_cp.php

📁 泛微协同办公系统标准版E-office V5.5的源代码内含泛微办公系统V5.5自动注册文件。
💻 PHP
📖 第 1 页 / 共 4 页
字号:
<?php

class moderate
{

	var $output = "";
	var $base_url = "";
	var $html = "";
	var $moderator = array( );
	var $forum = array( );
	var $topic = array( );
	var $tids = array( );
	var $forums = array( );
	var $children = array( );
	var $cats = array( );
	var $upload_dir = "";
	var $topic_id = "";
	var $forum_id = "";
	var $post_id = "";
	var $start_val = 0;

	function moderate( )
	{
		global $ibforums;
		global $DB;
		global $std;
		global $print;
		global $skin_universal;
		$ibforums->lang = $std->load_words( $ibforums->lang, "lang_modcp", $ibforums->lang_id );
		$ibforums->lang = $std->load_words( $ibforums->lang, "lang_topic", $ibforums->lang_id );
		$this->html = $std->load_template( "skin_modcp" );
		$this->forum_id = intval( $ibforums->input['f'] );
		$this->start_val = $ibforums->input['st'] ? intval( $ibforums->input['st'] ) : 0;
		$this->topic_id = intval( $ibforums->input['t'] );
		$this->post_id = intval( $ibforums->input['p'] );
		$this->base_url = $ibforums->base_url;
		$pass = 0;
		if ( $ibforums->member['id'] )
		{
			if ( $ibforums->member['g_is_supmod'] == 1 )
			{
				$pass = 1;
			}
			else if ( $ibforums->member['is_mod'] )
			{
				if ( $this->forum_id != "" )
				{
					$qe = " forum_id=".$this->forum_id." AND ";
				}
				else
				{
					$qe = "";
				}
				$DB->query( "SELECT * FROM ibf_moderators WHERE {$qe} (member_id='".$ibforums->member['id']."' OR (is_group=1 AND group_id='".$ibforums->member['mgroup']."'))" );
				if ( $this->moderator = $DB->fetch_row( ) )
				{
					$pass = 1;
				}
			}
			else
			{
				$pass = 0;
			}
		}
		if ( $pass == 0 )
		{
			$std->error( array( 1, "no_permission" ) );
		}
		$this->upload_dir = $ibforums->vars['upload_dir'];
		$this->upload_dir = preg_replace( "!/\$!", "", $this->upload_dir );
		$this->output = $this->html->mod_cp_start( );
		switch ( $ibforums->input['CODE'] )
		{
		case "members" :
			$this->find_user_one( );
			break;
		case "edituser" :
			$this->find_user_one( );
			break;
		case "dofinduser" :
			$this->find_user_two( );
			break;
		case "doedituser" :
			$this->edit_user( );
			break;
		case "compedit" :
			$this->complete_user_edit( );
			break;
		case "prune" :
			$this->prune_juice( );
			break;
		case "doprune" :
			$this->drink_prune_juice( );
			break;
		case "domove" :
			$this->do_move( );
			break;
		case "modtopics" :
			$this->mod_topics( );
			break;
		case "domodtopics" :
			$this->domod_topics( );
			break;
		case "modposts" :
			$this->mod_posts( );
			break;
		case "modtopicview" :
			$this->mod_topicview( );
			break;
		case "domodposts" :
			$this->mod_domodposts( );
			break;
		case "modtopicapprove" :
			$this->approve_all( );
			break;
		case "fchoice" :
			switch ( $ibforums->input['fact'] )
			{
			case "mod_topic" :
				$this->mod_topics( );
				break;
			case "mod_post" :
				$this->mod_posts( );
				break;
			case "prune_move" :
				$this->prune_juice( );
				break;
			default :
				exit( );
			}
			break;
		case "topicchoice" :
			$this->tids = $this->get_tids( );
			$this->load_forum( );
			switch ( $ibforums->input['tact'] )
			{
			case "close" :
				$this->alter_topics( "close_topic", "state='closed'" );
				break;
			case "open" :
				$this->alter_topics( "open_topic", "state='open'" );
				break;
			case "pin" :
				$this->alter_topics( "pin_topic", "pinned=1" );
				break;
			case "unpin" :
				$this->alter_topics( "unpin_topic", "pinned=0" );
				break;
			case "delete" :
				$this->delete_topics( );
				break;
			case "move" :
				$this->start_checked_move( );
				break;
			case "domove" :
				$this->complete_checked_move( );
				break;
			default :
				exit( );
			}
			break;
		case "showforums" :
			$this->show_forums( );
			break;
		case "showtopics" :
			$this->show_topics( );
			break;
		case "ip" :
			$this->ip_start( );
			break;
		case "doip" :
			$this->do_ip( );
			break;
		default :
			$this->show_forums( );
			break;
		}
		if ( count( $this->nav ) < 1 )
		{
			$this->nav[] = "<a href='{$this->base_url}&act=modcp'>{$ibforums->lang['cp_modcp_home']}</a>";
		}
		if ( !$this->page_title )
		{
			$this->page_title = $ibforums->lang['cp_modcp_ptitle'];
		}
		$print->add_output( "{$this->output}" );
		$print->do_output( array(
			"TITLE" => $this->page_title,
			"JS" => 1,
			"NAV" => $this->nav
		) );
	}

	function ip_start( )
	{
		global $std;
		global $ibforums;
		global $DB;
		global $print;
		$pass = 0;
		if ( $ibforums->member['g_is_supmod'] == 1 )
		{
			$pass = 1;
		}
		else if ( $this->moderator['view_ip'] == 1 )
		{
			$pass = 1;
		}
		else
		{
			$pass = 0;
		}
		if ( $pass == 0 )
		{
			$this->mod_error( "cp_no_perms" );
		}
		else
		{
			$ip_arr = array( );
			if ( $ibforums->input['incoming'] != "" )
			{
				$ip_arr = explode( ".", $ibforums->input['incoming'] );
			}
			$this->output .= $this->html->ip_start_form( $ip_arr );
		}
	}

	function do_ip( )
	{
		global $std;
		global $ibforums;
		global $DB;
		global $print;
		$pass = 0;
		if ( $ibforums->member['g_is_supmod'] == 1 )
		{
			$pass = 1;
		}
		else if ( $this->moderator['view_ip'] == 1 )
		{
			$pass = 1;
		}
		else
		{
			$pass = 0;
		}
		if ( $pass == 0 )
		{
			$this->mod_error( "cp_no_perms" );
		}
		else
		{
			$ip_array = array( );
			$ip_bit_count = 0;
			foreach ( array( "ip1", "ip2", "ip3", "ip4" ) as $ip_bit )
			{
				if ( $ibforums->input[$ip_bit] != "*" )
				{
					$ibforums->input[$ip_bit] = intval( $ibforums->input[$ip_bit] );
					if ( !isset( $ibforums->input[$ip_bit] ) )
					{
					}
					else
					{
						if ( $ibforums->input[$ip_bit] < 1 )
						{
							$ibforums->input[$ip_bit] = 0;
						}
						$ip_array[$ip_bit] = $ibforums->input[$ip_bit];
						++$ip_bit_count;
					}
				}
				else
				{
					$ip_array[$ip_bit] = "*";
				}
			}
			if ( count( $ip_array ) < 2 )
			{
				$this->mod_error( "cp_error_ip" );
			}
			else if ( $ip_bit_count < 1 )
			{
				$this->mod_error( "cp_error_ip" );
			}
			else
			{
				$test_ip_string = $ip_array['ip1']."%".$ip_array['ip2']."%".$ip_array['ip3']."%".$ip_array['ip4'];
				if ( preg_match( "/\\*%\\d+(%|\$)/", $test_ip_string ) )
				{
					$this->mod_error( "cp_error_ip" );
				}
				else
				{
					$final_ip_string = "";
					$exact_match = 1;
					foreach ( $ip_array as $final_bits )
					{
						if ( $final_bits == "0" )
						{
							$final_ip_string .= "0.";
						}
						else if ( $final_bits == "*" )
						{
							$final_ip_string .= "%";
							$exact_match = 0;
							break;
						}
						else
						{
							$final_ip_string .= $final_bits.".";
						}
					}
					$final_ip_string = preg_replace( "/\\.\$/", "", $final_ip_string );
					if ( $ibforums->input['iptool'] == "resolve" )
					{
						if ( $ip_bit_count != 4 )
						{
							$this->mod_error( "cp_error_resolveip" );
						}
						else
						{
							$resolved = @gethostbyaddr( $final_ip_string );
							if ( $resolved == "" )
							{
								$this->mod_error( "cp_safe_fail" );
								return;
							}
							else
							{
								$ibforums->lang['ip_resolve_result'] = sprintf( $ibforums->lang['ip_resolve_result'], $final_ip_string, $resolved );
								$this->output .= $this->html->mod_simple_page( $ibforums->lang['cp_results'], $ibforums->lang['ip_resolve_result'] );
								return TRUE;
							}
						}
					}
					else
					{
						if ( $ibforums->input['iptool'] == "members" )
						{
							if ( $exact_match == 0 )
							{
								$sql = "ip_address LIKE '{$final_ip_string}'";
							}
							else
							{
								$sql = "ip_address='{$final_ip_string}'";
							}
							$DB->query( "SELECT count(id) as max FROM ibf_members WHERE {$sql}" );
							$total_possible = $DB->fetch_row( );
							if ( $total_possible['max'] < 1 )
							{
								$this->mod_error( "cp_no_matches" );
							}
							else
							{
								$pages = $std->build_pagelinks( array(
									"TOTAL_POSS" => $total_possible['max'],
									"PER_PAGE" => 50,
									"CUR_ST_VAL" => $this->start_val,
									"L_SINGLE" => $ibforums->lang['single_page_forum'],
									"L_MULTI" => $ibforums->lang['multi_page_forum'],
									"BASE_URL" => $this->base_url."&act=modcp&CODE=doip&iptool=members&ip1={$ibforums->input['ip1']}&ip2={$ibforums->input['ip2']}&ip3={$ibforums->input['ip3']}&ip4={$ibforums->input['ip4']}"
								) );
								$this->output .= $this->html->ip_member_start( $pages );
								$DB->query( "SELECT name, id, ip_address, posts, joined FROM ibf_members WHERE {$sql} ORDER BY joined DESC LIMIT {$this->start_val},50" );
								while ( $row = $DB->fetch_row( ) )
								{
									$row['joined'] = $std->get_date( $row['joined'], "JOINED" );
									$this->output .= $this->html->ip_member_row( $row );
								}
								$this->output .= $this->html->ip_member_end( $pages );
							}
						}
						else
						{
							if ( $exact_match == 0 )
							{
								$sql = "ip_address LIKE '{$final_ip_string}'";
							}
							else
							{
								$sql = "ip_address='{$final_ip_string}'";
							}
							$aforum = array( );
							$DB->query( "SELECT id, read_perms FROM ibf_forums" );
							while ( $f = $DB->fetch_row( ) )
							{
								if ( $f['read_perms'] == "*" )
								{
									$aforum[] = $f['id'];
								}
								else if ( preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|\$)/", $f['read_perms'] ) )
								{
									$aforum[] = $f['id'];
								}
							}
							if ( count( $aforum ) < 1 )
							{
								$this->mod_error( "cp_no_matches" );
							}
							else
							{
								$forums = implode( ",", $aforum );
								$DB->query( "SELECT pid FROM ibf_posts WHERE queued <> 1 AND forum_id IN({$forums}) AND {$sql}" );
								$max_hits = $DB->get_num_rows( );
								$posts = "";
								while ( $row = $DB->fetch_row( ) )
								{
									$posts .= $row['pid'].",";
								}
								$DB->free_result( );
								$posts = preg_replace( "/,\$/", "", $posts );
								if ( $posts == "" )
								{
									$this->mod_error( "cp_no_matches" );
								}
								else
								{
									$unique_id = md5( uniqid( microtime( ), 1 ) );
									$str = $DB->compile_db_insert_string( array(
										"id" => $unique_id,
										"search_date" => time( ),
										"post_id" => $posts,
										"post_max" => $max_hits,
										"sort_key" => "p.post_date",
										"sort_order" => "desc",
										"member_id" => $ibforums->member['id'],
										"ip_address" => $ibforums->input['IP_ADDRESS']
									) );
									$DB->query( "INSERT INTO ibf_search_results ({$str['FIELD_NAMES']}) VALUES ({$str['FIELD_VALUES']})" );
									$this->output .= $this->html->mod_simple_page( $ibforums->lang['cp_results'], $this->html->ip_post_results( $unique_id, $max_hits ) );
									return TRUE;
								}
							}
						}
					}
				}
			}
		}
	}

	function complete_checked_move( )
	{
		global $std;
		global $ibforums;
		global $DB;
		global $print;
		$pass = 0;
		if ( $ibforums->member['g_is_supmod'] == 1 )
		{
			$pass = 1;
		}
		else if ( $this->moderator['move_topic'] == 1 )
		{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -