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

📄 ucp_pm_options.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 2 页
字号:
	if ($user->data['user_full_folder'] == FULL_FOLDER_NONE)	{		// -3 here to let the correct folder id be selected		$to_folder_id = $config['full_folder_action'] - 3;	}	else	{		$to_folder_id = $user->data['user_full_folder'];	}	foreach ($folder as $folder_id => $folder_ary)	{		$s_full_folder_options .= '<option value="' . $folder_id . '"' . (($user->data['user_full_folder'] == $folder_id) ? ' selected="selected"' : '') . '>' . $folder_ary['folder_name'] . ' (' . $folder_ary['message_status'] . ')</option>';		$s_to_folder_options .= '<option value="' . $folder_id . '"' . (($to_folder_id == $folder_id) ? ' selected="selected"' : '') . '>' . $folder_ary['folder_name'] . ' (' . $folder_ary['message_status'] . ')</option>';		if ($folder_id != PRIVMSGS_INBOX)		{			$s_folder_options .= '<option value="' . $folder_id . '">' . $folder_ary['folder_name'] . ' (' . $folder_ary['message_status'] . ')</option>';		}	}	$s_delete_checked = ($user->data['user_full_folder'] == FULL_FOLDER_DELETE) ? ' checked="checked"' : '';	$s_hold_checked = ($user->data['user_full_folder'] == FULL_FOLDER_HOLD) ? ' checked="checked"' : '';	$s_move_checked = ($user->data['user_full_folder'] >= 0) ? ' checked="checked"' : '';	if ($user->data['user_full_folder'] == FULL_FOLDER_NONE)	{		switch ($config['full_folder_action'])		{			case 1:				$s_delete_checked = ' checked="checked"';			break;			case 2:				$s_hold_checked = ' checked="checked"';			break;		}	}	$template->assign_vars(array(		'S_FULL_FOLDER_OPTIONS'	=> $s_full_folder_options,		'S_TO_FOLDER_OPTIONS'	=> $s_to_folder_options,		'S_FOLDER_OPTIONS'		=> $s_folder_options,		'S_DELETE_CHECKED'		=> $s_delete_checked,		'S_HOLD_CHECKED'		=> $s_hold_checked,		'S_MOVE_CHECKED'		=> $s_move_checked,		'S_MAX_FOLDER_REACHED'	=> ($num_user_folder >= $config['pm_max_boxes']) ? true : false,		'DEFAULT_ACTION'		=> ($config['full_folder_action'] == 1) ? $user->lang['DELETE_OLDEST_MESSAGES'] : $user->lang['HOLD_NEW_MESSAGES'],		'U_FIND_USERNAME'		=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&amp;form=ucp&amp;field=rule_string'),		'UA_FIND_USERNAME'		=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&form=ucp&field=rule_string', true))	);	$rule_lang = $action_lang = $check_lang = array();	// Build all three language arrays	preg_replace('#^((RULE|ACTION|CHECK)_([A-Z0-9_]+))$#e', "\${strtolower('\\2') . '_lang'}[constant('\\1')] = \$user->lang['PM_\\2']['\\3']", array_keys(get_defined_constants()));	/*		Rule Ordering:			-> CHECK_* -> RULE_* [IN $global_privmsgs_rules:CHECK_*] -> [IF $rule_conditions[RULE_*] [|text|bool|user|group|own_group]] -> ACTION_*	*/	$check_option	= request_var('check_option', 0);	$rule_option	= request_var('rule_option', 0);	$cond_option	= request_var('cond_option', '');	$action_option	= request_var('action_option', '');	$back = (isset($_REQUEST['back'])) ? request_var('back', array('' => 0)) : array();	if (sizeof($back))	{		if ($action_option)		{			$action_option = '';		}		else if ($cond_option)		{			$cond_option = '';		}		else if ($rule_option)		{			$rule_option = 0;		}		else if ($check_option)		{			$check_option = 0;		}	}	if (isset($back['action']) && $cond_option == 'none')	{		$back['cond'] = true;	}	// Check	if (!isset($global_privmsgs_rules[$check_option]))	{		$check_option = 0;	}	define_check_option(($check_option && !isset($back['rule'])) ? true : false, $check_option, $check_lang);	if ($check_option && !isset($back['rule']))	{		define_rule_option(($rule_option && !isset($back['cond'])) ? true : false, $rule_option, $rule_lang, $global_privmsgs_rules[$check_option]);	}	if ($rule_option && !isset($back['cond']))	{		if (!isset($global_rule_conditions[$rule_option]))		{			$cond_option = 'none';			$template->assign_var('NONE_CONDITION', true);		}		else		{			define_cond_option(($cond_option && !isset($back['action'])) ? true : false, $cond_option, $rule_option, $global_rule_conditions);		}	}	if ($cond_option && !isset($back['action']))	{		define_action_option(false, $action_option, $action_lang, $folder);	}	show_defined_rules($user->data['user_id'], $check_lang, $rule_lang, $action_lang, $folder);}/*** Defining check option for message rules*/function define_check_option($hardcoded, $check_option, $check_lang){	global $template;	$s_check_options = '';	if (!$hardcoded)	{		foreach ($check_lang as $value => $lang)		{			$s_check_options .= '<option value="' . $value . '"' . (($value == $check_option) ? ' selected="selected"' : '') . '>' . $lang . '</option>'; 		}	}	$template->assign_vars(array(		'S_CHECK_DEFINED'	=> true,		'S_CHECK_SELECT'	=> ($hardcoded) ? false : true,		'CHECK_CURRENT'		=> isset($check_lang[$check_option]) ? $check_lang[$check_option] : '',		'S_CHECK_OPTIONS'	=> $s_check_options,		'CHECK_OPTION'		=> $check_option)	);}/*** Defining action option for message rules*/function define_action_option($hardcoded, $action_option, $action_lang, $folder){	global $db, $template, $user;	$l_action = $s_action_options = '';	if ($hardcoded)	{		$option = explode('|', $action_option);		$action = (int) $option[0];		$folder_id = (int) $option[1];		$l_action = $action_lang[$action];		if ($action == ACTION_PLACE_INTO_FOLDER)		{			$l_action .= ' -> ' . $folder[$folder_id]['folder_name'];		}	}	else	{		foreach ($action_lang as $action => $lang)		{			if ($action == ACTION_PLACE_INTO_FOLDER)			{				foreach ($folder as $folder_id => $folder_ary)				{					$s_action_options .= '<option value="' . $action . '|' . $folder_id . '"' . (($action_option == $action . '|' . $folder_id) ? ' selected="selected"' : '') . '>' . $lang . ' -> ' . $folder_ary['folder_name'] . '</option>';				}			}			else			{				$s_action_options .= '<option value="' . $action . '|0"' . (($action_option == $action . '|0') ? ' selected="selected"' : '') . '>' . $lang . '</option>';			}		}	}	$template->assign_vars(array(		'S_ACTION_DEFINED'	=> true,		'S_ACTION_SELECT'	=> ($hardcoded) ? false : true,		'ACTION_CURRENT'	=> $l_action,		'S_ACTION_OPTIONS'	=> $s_action_options,		'ACTION_OPTION'		=> $action_option)	);}/*** Defining rule option for message rules*/function define_rule_option($hardcoded, $rule_option, $rule_lang, $check_ary){	global $template;	$s_rule_options = '';	if (!$hardcoded)	{		foreach ($check_ary as $value => $_check)		{			$s_rule_options .= '<option value="' . $value . '"' . (($value == $rule_option) ? ' selected="selected"' : '') . '>' . $rule_lang[$value] . '</option>'; 		}	}	$template->assign_vars(array(		'S_RULE_DEFINED'	=> true,		'S_RULE_SELECT'		=> !$hardcoded,		'RULE_CURRENT'		=> isset($rule_lang[$rule_option]) ? $rule_lang[$rule_option] : '',		'S_RULE_OPTIONS'	=> $s_rule_options,		'RULE_OPTION'		=> $rule_option)	);}/*** Defining condition option for message rules*/function define_cond_option($hardcoded, $cond_option, $rule_option, $global_rule_conditions){	global $db, $template, $auth;		$template->assign_vars(array(		'S_COND_DEFINED'	=> true,		'S_COND_SELECT'		=> (!$hardcoded && isset($global_rule_conditions[$rule_option])) ? true : false)	);	// Define COND_OPTION	if (!isset($global_rule_conditions[$rule_option]))	{		$template->assign_vars(array(			'COND_OPTION'	=> 'none',			'COND_CURRENT'	=> false)		);		return;	}	// Define Condition	$condition = $global_rule_conditions[$rule_option];	$current_value = '';	switch ($condition)	{		case 'text':			$rule_string = utf8_normalize_nfc(request_var('rule_string', '', true));						$template->assign_vars(array(				'S_TEXT_CONDITION'	=> true,				'CURRENT_STRING'	=> $rule_string,				'CURRENT_USER_ID'	=> 0,				'CURRENT_GROUP_ID'	=> 0)			);			$current_value = $rule_string;		break;		case 'user':			$rule_user_id = request_var('rule_user_id', 0);			$rule_string = utf8_normalize_nfc(request_var('rule_string', '', true));						if ($rule_string && !$rule_user_id)			{				$sql = 'SELECT user_id					FROM ' . USERS_TABLE . "					WHERE username_clean = '" . $db->sql_escape(utf8_clean_string($rule_string)) . "'";				$result = $db->sql_query($sql);				$rule_user_id = (int) $db->sql_fetchfield('user_id');				$db->sql_freeresult($result);				if (!$rule_user_id)				{					$rule_string = '';				}			}			else if (!$rule_string && $rule_user_id)			{				$sql = 'SELECT username					FROM ' . USERS_TABLE . "					WHERE user_id = $rule_user_id";				$result = $db->sql_query($sql);				$rule_string = $db->sql_fetchfield('username');				$db->sql_freeresult($result);				if (!$rule_string)				{					$rule_user_id = 0;				}			}			$template->assign_vars(array(				'S_USER_CONDITION'	=> true,				'CURRENT_STRING'	=> $rule_string,				'CURRENT_USER_ID'	=> $rule_user_id,				'CURRENT_GROUP_ID'	=> 0)			);			$current_value = $rule_string;		break;		case 'group':			$rule_group_id = request_var('rule_group_id', 0);			$rule_string = utf8_normalize_nfc(request_var('rule_string', '', true));						$sql_and = ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel')) ? '<> ' . GROUP_SPECIAL : 'NOT IN (' . GROUP_SPECIAL . ', ' . GROUP_HIDDEN . ')';			$sql = 'SELECT group_id, group_name, group_type				FROM ' . GROUPS_TABLE . "				WHERE group_type $sql_and				ORDER BY group_type DESC, group_name";			$result = $db->sql_query($sql);			$s_group_options = '';			while ($row = $db->sql_fetchrow($result))			{				if ($rule_group_id && ($row['group_id'] == $rule_group_id))				{					$rule_string = (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']);				}				$s_selected = ($row['group_id'] == $rule_group_id) ? ' selected="selected"' : '';				$s_group_options .= '<option value="' . $row['group_id'] . '"' . $s_selected . '>' . (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']) . '</option>';			}			$db->sql_freeresult($result);			$template->assign_vars(array(				'S_GROUP_CONDITION'	=> true,				'S_GROUP_OPTIONS'	=> $s_group_options,				'CURRENT_STRING'	=> $rule_string,				'CURRENT_USER_ID'	=> 0,				'CURRENT_GROUP_ID'	=> $rule_group_id)			);			$current_value = $rule_string;		break;		default:			return;	}	$template->assign_vars(array(		'COND_OPTION'	=> $condition,		'COND_CURRENT'	=> $current_value)	);}/*** Display defined message rules*/function show_defined_rules($user_id, $check_lang, $rule_lang, $action_lang, $folder){	global $db, $template;	$sql = 'SELECT *		FROM ' . PRIVMSGS_RULES_TABLE . '		WHERE user_id = ' . $user_id . '		ORDER BY rule_id ASC';	$result = $db->sql_query($sql);		$count = 0;	while ($row = $db->sql_fetchrow($result))	{		$template->assign_block_vars('rule', array(			'COUNT'		=> ++$count,			'RULE_ID'	=> $row['rule_id'],			'CHECK'		=> $check_lang[$row['rule_check']],			'RULE'		=> $rule_lang[$row['rule_connection']],			'STRING'	=> $row['rule_string'],			'ACTION'	=> $action_lang[$row['rule_action']],			'FOLDER'	=> ($row['rule_action'] == ACTION_PLACE_INTO_FOLDER) ? $folder[$row['rule_folder_id']]['folder_name'] : '')		);	}	$db->sql_freeresult($result);}?>

⌨️ 快捷键说明

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