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

📄 ucp_pm_compose.php

📁 这些都是我以前学习是用到的源码
💻 PHP
📖 第 1 页 / 共 3 页
字号:
	// Generate smiley listing	generate_smilies('inline', 0);	// Generate PM Icons	$s_pm_icons = false;	if ($config['enable_pm_icons'])	{		$s_pm_icons = posting_gen_topic_icons($action, $icon_id);	}	// Generate inline attachment select box	posting_gen_inline_attachments($attachment_data);	// Build address list for display	// array('u' => array($author_id => 'to'));	if (sizeof($address_list))	{		// Get Usernames and Group Names		$result = array();		if (!empty($address_list['u']))		{			$sql = 'SELECT user_id as id, username as name, user_colour as colour				FROM ' . USERS_TABLE . '				WHERE ' . $db->sql_in_set('user_id', array_map('intval', array_keys($address_list['u'])));			$result['u'] = $db->sql_query($sql);		}		if (!empty($address_list['g']))		{			$sql = 'SELECT group_id as id, group_name as name, group_colour as colour, group_type				FROM ' . GROUPS_TABLE . '				WHERE group_receive_pm = 1					AND ' . $db->sql_in_set('group_id', array_map('intval', array_keys($address_list['g'])));			$result['g'] = $db->sql_query($sql);		}		$u = $g = array();		$_types = array('u', 'g');		foreach ($_types as $type)		{			if (isset($result[$type]) && $result[$type])			{				while ($row = $db->sql_fetchrow($result[$type]))				{					if ($type == 'g')					{						$row['name'] = ($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['name']] : $row['name'];					}										${$type}[$row['id']] = array('name' => $row['name'], 'colour' => $row['colour']);				}				$db->sql_freeresult($result[$type]);			}		}		// Now Build the address list		$plain_address_field = '';		foreach ($address_list as $type => $adr_ary)		{			foreach ($adr_ary as $id => $field)			{				if (!isset(${$type}[$id]))				{					unset($address_list[$type][$id]);					continue;				}				$field = ($field == 'to') ? 'to' : 'bcc';				$type = ($type == 'u') ? 'u' : 'g';				$id = (int) $id;				$tpl_ary = array(					'IS_GROUP'	=> ($type == 'g') ? true : false,					'IS_USER'	=> ($type == 'u') ? true : false,					'UG_ID'		=> $id,					'NAME'		=> ${$type}[$id]['name'],					'COLOUR'	=> (${$type}[$id]['colour']) ? '#' . ${$type}[$id]['colour'] : '',					'TYPE'		=> $type,				);				if ($type == 'u')				{					$tpl_ary = array_merge($tpl_ary, array(						'U_VIEW'		=> get_username_string('profile', $id, ${$type}[$id]['name'], ${$type}[$id]['colour']),						'NAME_FULL'		=> get_username_string('full', $id, ${$type}[$id]['name'], ${$type}[$id]['colour']),					));				}				else				{					$tpl_ary = array_merge($tpl_ary, array(						'U_VIEW'		=> append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=group&amp;g=' . $id),					));				}				$template->assign_block_vars($field . '_recipient', $tpl_ary);			}		}	}	// Build hidden address list	$s_hidden_address_field = '';	foreach ($address_list as $type => $adr_ary)	{		foreach ($adr_ary as $id => $field)		{			$s_hidden_address_field .= '<input type="hidden" name="address_list[' . (($type == 'u') ? 'u' : 'g') . '][' . (int) $id . ']" value="' . (($field == 'to') ? 'to' : 'bcc') . '" />';		}	}	$bbcode_checked		= (isset($enable_bbcode)) ? !$enable_bbcode : (($config['allow_bbcode'] && $auth->acl_get('u_pm_bbcode')) ? !$user->optionget('bbcode') : 1);	$smilies_checked	= (isset($enable_smilies)) ? !$enable_smilies : (($config['allow_smilies'] && $auth->acl_get('u_pm_smilies')) ? !$user->optionget('smilies') : 1);	$urls_checked		= (isset($enable_urls)) ? !$enable_urls : 0;	$sig_checked		= $enable_sig;	switch ($action)	{		case 'post':			$page_title = $user->lang['POST_NEW_PM'];		break;		case 'quote':			$page_title = $user->lang['POST_QUOTE_PM'];		break;		case 'quotepost':			$page_title = $user->lang['POST_PM_POST'];		break;		case 'reply':			$page_title = $user->lang['POST_REPLY_PM'];		break;		case 'edit':			$page_title = $user->lang['POST_EDIT_PM'];		break;		case 'forward':			$page_title = $user->lang['POST_FORWARD_PM'];		break;		default:			trigger_error('NO_ACTION_MODE', E_USER_ERROR);	}	$s_hidden_fields = '<input type="hidden" name="lastclick" value="' . $current_time . '" />';	$s_hidden_fields .= (isset($check_value)) ? '<input type="hidden" name="status_switch" value="' . $check_value . '" />' : '';	$s_hidden_fields .= ($draft_id || isset($_REQUEST['draft_loaded'])) ? '<input type="hidden" name="draft_loaded" value="' . ((isset($_REQUEST['draft_loaded'])) ? intval($_REQUEST['draft_loaded']) : $draft_id) . '" />' : '';	$form_enctype = (@ini_get('file_uploads') == '0' || strtolower(@ini_get('file_uploads')) == 'off' || @ini_get('file_uploads') == '0' || !$config['allow_pm_attach'] || !$auth->acl_get('u_pm_attach')) ? '' : ' enctype="multipart/form-data"';	// Start assigning vars for main posting page ...	$template->assign_vars(array(		'L_POST_A'					=> $page_title,		'L_ICON'					=> $user->lang['PM_ICON'],		'L_MESSAGE_BODY_EXPLAIN'	=> (intval($config['max_post_chars'])) ? sprintf($user->lang['MESSAGE_BODY_EXPLAIN'], intval($config['max_post_chars'])) : '',		'SUBJECT'				=> (isset($message_subject)) ? $message_subject : '',		'MESSAGE'				=> $message_text,		'BBCODE_STATUS'			=> ($bbcode_status) ? sprintf($user->lang['BBCODE_IS_ON'], '<a href="' . append_sid("{$phpbb_root_path}faq.$phpEx", 'mode=bbcode') . '">', '</a>') : sprintf($user->lang['BBCODE_IS_OFF'], '<a href="' . append_sid("{$phpbb_root_path}faq.$phpEx", 'mode=bbcode') . '">', '</a>'),		'IMG_STATUS'			=> ($img_status) ? $user->lang['IMAGES_ARE_ON'] : $user->lang['IMAGES_ARE_OFF'],		'FLASH_STATUS'			=> ($flash_status) ? $user->lang['FLASH_IS_ON'] : $user->lang['FLASH_IS_OFF'],		'SMILIES_STATUS'		=> ($smilies_status) ? $user->lang['SMILIES_ARE_ON'] : $user->lang['SMILIES_ARE_OFF'],		'URL_STATUS'			=> ($url_status) ? $user->lang['URL_IS_ON'] : $user->lang['URL_IS_OFF'],		'MINI_POST_IMG'			=> $user->img('icon_post_target', $user->lang['PM']),		'ERROR'					=> (sizeof($error)) ? implode('<br />', $error) : '',		'S_EDIT_POST'			=> ($action == 'edit'),		'S_SHOW_PM_ICONS'		=> $s_pm_icons,		'S_BBCODE_ALLOWED'		=> $bbcode_status,		'S_BBCODE_CHECKED'		=> ($bbcode_checked) ? ' checked="checked"' : '',		'S_SMILIES_ALLOWED'		=> $smilies_status,		'S_SMILIES_CHECKED'		=> ($smilies_checked) ? ' checked="checked"' : '',		'S_SIG_ALLOWED'			=> ($config['allow_sig'] && $auth->acl_get('u_sig')),		'S_SIGNATURE_CHECKED'	=> ($sig_checked) ? ' checked="checked"' : '',		'S_LINKS_ALLOWED'		=> $url_status,		'S_MAGIC_URL_CHECKED'	=> ($urls_checked) ? ' checked="checked"' : '',		'S_SAVE_ALLOWED'		=> $auth->acl_get('u_savedrafts'),		'S_HAS_DRAFTS'			=> ($auth->acl_get('u_savedrafts') && $drafts),		'S_FORM_ENCTYPE'		=> $form_enctype,		'S_BBCODE_IMG'			=> $img_status,		'S_BBCODE_FLASH'		=> $flash_status,		'S_BBCODE_QUOTE'		=> true,		'S_BBCODE_URL'			=> $url_status,		'S_POST_ACTION'				=> $s_action,		'S_HIDDEN_ADDRESS_FIELD'	=> $s_hidden_address_field,		'S_HIDDEN_FIELDS'			=> $s_hidden_fields,		'S_CLOSE_PROGRESS_WINDOW'	=> isset($_POST['add_file']),		'U_PROGRESS_BAR'			=> append_sid("{$phpbb_root_path}posting.$phpEx", 'f=0&amp;mode=popup'),		'UA_PROGRESS_BAR'			=> append_sid("{$phpbb_root_path}posting.$phpEx", 'f=0&mode=popup', false),		)	);	// Build custom bbcodes array	display_custom_bbcodes();	// Attachment entry	if ($auth->acl_get('u_pm_attach') && $config['allow_pm_attach'] && $form_enctype)	{		posting_gen_attachment_entry($attachment_data, $filename_data);	}}/*** For composing messages, handle list actions*/function handle_message_list_actions(&$address_list, $remove_u, $remove_g, $add_to, $add_bcc){	global $auth, $db;	// Delete User [TO/BCC]	if ($remove_u)	{		$remove_user_id = array_keys($_REQUEST['remove_u']);		unset($address_list['u'][(int) $remove_user_id[0]]);	}	// Delete Group [TO/BCC]	if ($remove_g)	{		$remove_group_id = array_keys($_REQUEST['remove_g']);		unset($address_list['g'][(int) $remove_group_id[0]]);	}	// Add User/Group [TO]	if ($add_to || $add_bcc)	{		$type = ($add_to) ? 'to' : 'bcc';		// Add Selected Groups		$group_list = request_var('group_list', array(0));		if (sizeof($group_list))		{			foreach ($group_list as $group_id)			{				$address_list['g'][$group_id] = $type;			}		}		// User ID's to add...		$user_id_ary = array();		// Build usernames to add		$usernames = (isset($_REQUEST['username'])) ? array(request_var('username', '', true)) : array();		$username_list = request_var('username_list', '', true);		if ($username_list)		{			$usernames = array_merge($usernames, explode("\n", $username_list));		}		// Reveal the correct user_ids		if (sizeof($usernames))		{			$user_id_ary = array();			user_get_id_name($user_id_ary, $usernames);		}		// Add Friends if specified		$friend_list = (is_array($_REQUEST['add_' . $type])) ? array_map('intval', array_keys($_REQUEST['add_' . $type])) : array();		$user_id_ary = array_merge($user_id_ary, $friend_list);		foreach ($user_id_ary as $user_id)		{			if ($user_id == ANONYMOUS)			{				continue;			}			$address_list['u'][$user_id] = $type;		}	}	// Check for disallowed recipients	if (!empty($address_list['u']))	{		// We need to check their PM status (do they want to receive PM's?)		// Only check if not a moderator or admin, since they are allowed to override this user setting		if (!$auth->acl_gets('a_', 'm_') && !$auth->acl_getf_global('m_'))		{			$sql = 'SELECT user_id				FROM ' . USERS_TABLE . '				WHERE ' . $db->sql_in_set('user_id', array_keys($address_list['u'])) . '					AND user_allow_pm = 0';			$result = $db->sql_query($sql);			while ($row = $db->sql_fetchrow($result))			{				unset($address_list['u'][$row['user_id']]);			}			$db->sql_freeresult($result);		}	}}/*** Return number of private message recipients*/function num_recipients($address_list){	$num_recipients = 0;	foreach ($address_list as $field => $adr_ary)	{		$num_recipients += sizeof($adr_ary);	}	return $num_recipients;}/*** Get recipient at position 'pos'*/function get_recipient_pos($address_list, $position = 1){	$recipient = array();	$count = 1;	foreach ($address_list as $field => $adr_ary)	{		foreach ($adr_ary as $id => $type)		{			if ($count == $position)			{				$recipient[$field][$id] = $type;				break 2;			}			$count++;		}	}	return $recipient;}?>

⌨️ 快捷键说明

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