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

📄 ucp_pm_options.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/** ** @package ucp* @version $Id: ucp_pm_options.php,v 1.22 2006/11/15 15:34:33 acydburn Exp $* @copyright (c) 2005 phpBB Group * @license http://opensource.org/licenses/gpl-license.php GNU Public License **//*** Execute message options*/function message_options($id, $mode, $global_privmsgs_rules, $global_rule_conditions){	global $phpbb_root_path, $phpEx, $user, $template, $auth, $config, $db;	$redirect_url = append_sid("{$phpbb_root_path}ucp.$phpEx", "i=pm&amp;mode=options");	// Change "full folder" setting - what to do if folder is full	if (isset($_POST['fullfolder']))	{		$full_action = request_var('full_action', 0);		$set_folder_id = 0;		switch ($full_action)		{			case 1:				$set_folder_id = FULL_FOLDER_DELETE;			break;			case 2:				$set_folder_id = request_var('full_move_to', PRIVMSGS_INBOX);			break;			case 3:				$set_folder_id = FULL_FOLDER_HOLD;			break;			default:				$full_action = 0;			break;		}		if ($full_action)		{			$sql = 'UPDATE ' . USERS_TABLE . '				SET user_full_folder = ' . $set_folder_id . '				WHERE user_id = ' . $user->data['user_id'];			$db->sql_query($sql);			$user->data['user_full_folder'] = $set_folder_id;			$message = $user->lang['FULL_FOLDER_OPTION_CHANGED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $redirect_url . '">', '</a>');			meta_refresh(3, $redirect_url);			trigger_error($message);		}	}		// Add Folder	if (isset($_POST['addfolder']))	{		$folder_name = request_var('foldername', '', true);				if ($folder_name)		{			$sql = 'SELECT folder_name 				FROM ' . PRIVMSGS_FOLDER_TABLE . "				WHERE folder_name = '" . $db->sql_escape($folder_name) . "'					AND user_id = " . $user->data['user_id'];			$result = $db->sql_query_limit($sql, 1);			$row = $db->sql_fetchrow($result);			$db->sql_freeresult($result);			if ($row)			{				trigger_error(sprintf($user->lang['FOLDER_NAME_EXIST'], $folder_name));			}			$sql = 'SELECT COUNT(folder_id) as num_folder				FROM ' . PRIVMSGS_FOLDER_TABLE . '					WHERE user_id = ' . $user->data['user_id'];			$result = $db->sql_query($sql);			$num_folder = (int) $db->sql_fetchfield('num_folder');			$db->sql_freeresult($result);			if ($num_folder >= $config['pm_max_boxes'])			{				trigger_error('MAX_FOLDER_REACHED');			}			$sql = 'INSERT INTO ' . PRIVMSGS_FOLDER_TABLE . ' ' . $db->sql_build_array('INSERT', array(				'user_id'		=> (int) $user->data['user_id'],				'folder_name'	=> $folder_name)			);			$db->sql_query($sql);			$message = $user->lang['FOLDER_ADDED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $redirect_url . '">', '</a>');			meta_refresh(3, $redirect_url);			trigger_error($message);		}	}	// Rename folder	if (isset($_POST['rename_folder']))	{		$new_folder_name = request_var('new_folder_name', '', true);		$rename_folder_id= request_var('rename_folder_id', 0);		if (!$new_folder_name)		{			trigger_error('NO_NEW_FOLDER_NAME');		}		// Select custom folder		$sql = 'SELECT folder_name, pm_count			FROM ' . PRIVMSGS_FOLDER_TABLE . "			WHERE user_id = {$user->data['user_id']}				AND folder_id = $rename_folder_id";		$result = $db->sql_query_limit($sql, 1);		$folder_row = $db->sql_fetchrow($result);		$db->sql_freeresult($result);		if (!$folder_row)		{			trigger_error('CANNOT_RENAME_FOLDER');		}		$sql = 'UPDATE ' . PRIVMSGS_FOLDER_TABLE . " 			SET folder_name = '" . $db->sql_escape($new_folder_name) . "'			WHERE folder_id = $rename_folder_id				AND user_id = {$user->data['user_id']}";		$db->sql_query($sql);		$message = $user->lang['FOLDER_RENAMED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $redirect_url . '">', '</a>');		meta_refresh(3, $redirect_url);		trigger_error($message);	}	// Remove Folder	if (isset($_POST['remove_folder']))	{		$remove_folder_id = request_var('remove_folder_id', 0);		// Default to "move all messages to inbox"		$remove_action = request_var('remove_action', 1);		$move_to = request_var('move_to', PRIVMSGS_INBOX);		// Move to same folder?		if ($remove_action == 1 && $remove_folder_id == $move_to)		{			trigger_error('CANNOT_MOVE_TO_SAME_FOLDER');		}		// Select custom folder		$sql = 'SELECT folder_name, pm_count			FROM ' . PRIVMSGS_FOLDER_TABLE . "			WHERE user_id = {$user->data['user_id']}				AND folder_id = $remove_folder_id";		$result = $db->sql_query_limit($sql, 1);		$folder_row = $db->sql_fetchrow($result);		$db->sql_freeresult($result);		if (!$folder_row)		{			trigger_error('CANNOT_REMOVE_FOLDER');		}		$s_hidden_fields = array(			'remove_folder_id'	=> $remove_folder_id,			'remove_action'		=> $remove_action,			'move_to'			=> $move_to,			'remove_folder'		=> 1		);		// Do we need to confirm?		if (confirm_box(true))		{			// Gather message ids			$sql = 'SELECT msg_id 				FROM ' . PRIVMSGS_TO_TABLE . '				WHERE user_id = ' . $user->data['user_id'] . "					AND folder_id = $remove_folder_id";			$result = $db->sql_query($sql);			$msg_ids = array();			while ($row = $db->sql_fetchrow($result))			{				$msg_ids[] = (int) $row['msg_id'];			}			$db->sql_freeresult($result);			// First of all, copy all messages to another folder... or delete all messages			switch ($remove_action)			{				// Move Messages				case 1:					$num_moved = move_pm($user->data['user_id'], $user->data['message_limit'], $msg_ids, $move_to, $remove_folder_id);										// Something went wrong, only partially moved?					if ($num_moved != $folder_row['pm_count'])					{						trigger_error(sprintf($user->lang['MOVE_PM_ERROR'], $num_moved, $folder_row['pm_count']));					}				break;				// Remove Messages				case 2:					delete_pm($user->data['user_id'], $msg_ids, $remove_folder_id);				break;			}			// Remove folder			$sql = 'DELETE FROM ' . PRIVMSGS_FOLDER_TABLE . "				WHERE user_id = {$user->data['user_id']}					AND folder_id = $remove_folder_id";			$db->sql_query($sql);			// Check full folder option. If the removed folder has been specified as destination switch back to inbox			if ($user->data['user_full_folder'] == $remove_folder_id)			{				$sql = 'UPDATE ' . USERS_TABLE . '					SET user_full_folder = ' . PRIVMSGS_INBOX . '					WHERE user_id = ' . $user->data['user_id'];				$db->sql_query($sql);				$user->data['user_full_folder'] = PRIVMSGS_INBOX;			}			$meta_info = append_sid("{$phpbb_root_path}ucp.$phpEx", "i=pm&amp;mode=$mode");			$message = $user->lang['FOLDER_REMOVED'];			meta_refresh(3, $meta_info);			$message .= '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $meta_info . '">', '</a>');			trigger_error($message);		}		else		{			confirm_box(false, 'REMOVE_FOLDER', build_hidden_fields($s_hidden_fields));		}	}	// Add Rule	if (isset($_POST['add_rule']))	{		$check_option	= request_var('check_option', 0);		$rule_option	= request_var('rule_option', 0);		$cond_option	= request_var('cond_option', '');		$action_option	= explode('|', request_var('action_option', ''));		$rule_string	= ($cond_option != 'none') ? utf8_normalize_nfc(request_var('rule_string', '', true)) : '';		$rule_user_id	= ($cond_option != 'none') ? request_var('rule_user_id', 0) : 0;		$rule_group_id	= ($cond_option != 'none') ? request_var('rule_group_id', 0) : 0;				$action = (int) $action_option[0];		$folder_id = (int) $action_option[1];		if (!$action || !$check_option || !$rule_option || !$cond_option || ($cond_option != 'none' && !$rule_string))		{			trigger_error('RULE_NOT_DEFINED');		}		if (($cond_option == 'user' && !$rule_user_id) || ($cond_option == 'group' && !$rule_group_id))		{			trigger_error('RULE_NOT_DEFINED');		}		$rule_ary = array(			'user_id'			=> $user->data['user_id'],			'rule_check'		=> $check_option,			'rule_connection'	=> $rule_option,			'rule_string'		=> $rule_string,			'rule_user_id'		=> $rule_user_id,			'rule_group_id'		=> $rule_group_id,			'rule_action'		=> $action,			'rule_folder_id'	=> $folder_id		);		$sql = 'SELECT rule_id 			FROM ' . PRIVMSGS_RULES_TABLE . '			WHERE ' . $db->sql_build_array('SELECT', $rule_ary);		$result = $db->sql_query($sql);		$row = $db->sql_fetchrow($result);		$db->sql_freeresult($result);		if ($row)		{			trigger_error('RULE_ALREADY_DEFINED');		}		$sql = 'INSERT INTO ' . PRIVMSGS_RULES_TABLE . ' ' . $db->sql_build_array('INSERT', $rule_ary);		$db->sql_query($sql);		// Update users message rules		$sql = 'UPDATE ' . USERS_TABLE . '			SET user_message_rules = 1			WHERE user_id = ' . $user->data['user_id'];		$db->sql_query($sql);		$message = $user->lang['RULE_ADDED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $redirect_url . '">', '</a>');		meta_refresh(3, $redirect_url);		trigger_error($message);	}	// Remove Rule	if (isset($_POST['delete_rule']) && !isset($_POST['cancel']))	{		$delete_id = array_map('intval', array_keys($_POST['delete_rule']));		$delete_id = (int) $delete_id[0];		if (!$delete_id)		{			redirect(append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=' . $mode));		}		// Do we need to confirm?		if (confirm_box(true))		{			$sql = 'DELETE FROM ' . PRIVMSGS_RULES_TABLE . '				WHERE user_id = ' . $user->data['user_id'] . "					AND rule_id = $delete_id";			$db->sql_query($sql);			$meta_info = append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&amp;mode=' . $mode);			$message = $user->lang['RULE_DELETED'];			// Reset user_message_rules if no more assigned			$sql = 'SELECT rule_id 				FROM ' . PRIVMSGS_RULES_TABLE . '				WHERE user_id = ' . $user->data['user_id'];			$result = $db->sql_query_limit($sql, 1);			$row = $db->sql_fetchrow($result);			$db->sql_freeresult($result);			// Update users message rules			if (!$row)			{				$sql = 'UPDATE ' . USERS_TABLE . '					SET user_message_rules = 0					WHERE user_id = ' . $user->data['user_id'];				$db->sql_query($sql);			}			meta_refresh(3, $meta_info);			$message .= '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $meta_info . '">', '</a>');			trigger_error($message);		}		else		{			confirm_box(false, 'DELETE_RULE', build_hidden_fields(array('delete_rule' => array($delete_id => 1))));		}	}	$folder = array();	$sql = 'SELECT COUNT(msg_id) as num_messages		FROM ' . PRIVMSGS_TO_TABLE . '		WHERE user_id = ' . $user->data['user_id'] . '			AND folder_id = ' . PRIVMSGS_INBOX;	$result = $db->sql_query($sql);	$num_messages = (int) $db->sql_fetchfield('num_messages');	$db->sql_freeresult($result);		$folder[PRIVMSGS_INBOX] = array(		'folder_name'		=> $user->lang['PM_INBOX'], 		'message_status'	=> sprintf($user->lang['FOLDER_MESSAGE_STATUS'], $num_messages, $user->data['message_limit'])	);	$sql = 'SELECT folder_id, folder_name, pm_count 		FROM ' . PRIVMSGS_FOLDER_TABLE . '			WHERE user_id = ' . $user->data['user_id'];	$result = $db->sql_query($sql);	$num_user_folder = 0;	while ($row = $db->sql_fetchrow($result))	{		$num_user_folder++;		$folder[$row['folder_id']] = array(			'folder_name'		=> $row['folder_name'], 			'message_status'	=> sprintf($user->lang['FOLDER_MESSAGE_STATUS'], $row['pm_count'], $user->data['message_limit'])		);	}	$db->sql_freeresult($result);	$s_full_folder_options = $s_to_folder_options = $s_folder_options = '';

⌨️ 快捷键说明

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