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

📄 messenger.php

📁 极限网络智能办公系统—MYOA26—100%—源程序。
💻 PHP
📖 第 1 页 / 共 4 页
字号:
						$show_popup = $to_member['view_pop'];
						$db_string = $std->compile_db_string( array(
							"member_id" => $to_member['id'],
							"msg_date" => time( ),
							"read_state" => "0",
							"title" => $ibforums->input['msg_title'],
							"message" => $std->remove_tags( $ibforums->input['Post'] ),
							"from_id" => $this->member['id'],
							"vid" => "in",
							"recipient_id" => $to_member['id'],
							"tracking" => $ibforums->input['add_tracking']
						) );
						$DB->query( "INSERT INTO ibf_messages (".$db_string['FIELD_NAMES'].") VALUES (".$db_string['FIELD_VALUES'].")" );
						$new_id = $DB->get_insert_id( );
						unset( $db_string );
						$DB->query( "UPDATE ibf_members SET msg_total = msg_total + 1, new_msg = new_msg + 1, msg_from_id='".$this->member['id']."', "."msg_msg_id='".$new_id."', "."show_popup='".$show_popup."' "."WHERE id='".$to_member['id']."'" );
						if ( $to_member['email_pm'] == 1 )
						{
							$to_member['language'] = $to_member['language'] == "" ? "en" : $to_member['language'];
							$this->email->get_template( "pm_notify", $to_member['language'] );
							$this->email->build_message( array(
								"NAME" => $to_member['name'],
								"POSTER" => $ibforums->member['name'],
								"TITLE" => $ibforums->input['msg_title'],
								"LINK" => "?act=Msg&CODE=03&VID=in&MSID={$new_id}"
							) );
							$this->email->subject = $ibforums->lang['pm_email_subject'];
							$this->email->to = $to_member['email'];
							$this->email->send_mail( );
						}
					}
					if ( $ibforums->input['add_sent'] )
					{
						$DB->query( "UPDATE ibf_members SET msg_total = msg_total + 1 WHERE id='".$this->member['id']."'" );
						$db_string = $std->compile_db_string( array(
							"member_id" => $this->member['id'],
							"msg_date" => time( ),
							"read_state" => 0,
							"title" => $ibforums->lang['saved_sent_msg']." ".$ibforums->input['msg_title'],
							"message" => $ibforums->input['Post'],
							"from_id" => $this->member['id'],
							"vid" => "sent",
							"recipient_id" => $to_member['id']
						) );
						$DB->query( "INSERT INTO ibf_messages (".$db_string['FIELD_NAMES'].") VALUES (".$db_string['FIELD_VALUES'].")" );
						unset( $db_string );
					}
					if ( $ibforums->input['OID'] )
					{
						$DB->query( "DELETE from ibf_messages WHERE msg_id='".$ibforums->input['OID']."' AND member_id='".$ibforums->member['id']."' AND vid='unsent'" );
					}
					$text = preg_replace( "/<#FROM_MEMBER#>/", $this->member['name'], $ibforums->lang['sent_text'] );
					$text = preg_replace( "/<#TO_MEMBER#>/", $to_member['name'], $text );
					$text = preg_replace( "/<#MESSAGE_TITLE#>/", $ibforums->input['msg_title'], $text );
					$print->redirect_screen( $text, "&act=Msg&CODE=01" );
				}
			}
		}
	}

	function msg_list( )
	{
		global $ibforums;
		global $DB;
		global $std;
		global $print;
		$sort_key = "";
		switch ( $ibforums->input['sort'] )
		{
		case "rdate" :
			$sort_key = "m.msg_date ASC";
			break;
		case "title" :
			$sort_key = "m.title ASC";
			break;
		case "name" :
			$sort_key = "mp.name ASC";
			break;
		default :
			$sort_key = "m.msg_date DESC";
			break;
		}
		$DB->query( "SELECT COUNT(*) as msg_total FROM ibf_messages WHERE member_id='".$this->member['id']."' AND vid <> 'unsent'" );
		$total = $DB->fetch_row( );
		$total['msg_total'] = 0 < $total['msg_total'] ? $total['msg_total'] : 0;
		if ( $ibforums->member['msg_total'] == "" )
		{
			$DB->query( "UPDATE ibf_members SET msg_total='".$total['msg_total']."' WHERE id='".$this->member['id']."'" );
		}
		$DB->query( "SELECT COUNT(*) as msg_total FROM ibf_messages WHERE member_id='".$this->member['id']."' AND vid='{$this->vid}'" );
		$total_current = $DB->fetch_row( );
		$total_current['msg_total'] = 0 < $total_current['msg_total'] ? $total_current['msg_total'] : 0;
		$info['full_messenger'] = "";
		$info['full_text'] = "";
		$info['total_messages'] = $total['msg_total'];
		$info['img_width'] = 1;
		$info['vid'] = $this->vid;
		$info['date_order'] = $sort_key == "m.msg_date DESC" ? "rdate" : "msg_date";
		$amount_info = sprintf( $ibforums->lang['pmpc_info_string'], $total['msg_total'], $ibforums->lang['pmpc_unlimited'] );
		if ( 0 < $ibforums->member['g_max_messages'] )
		{
			$amount_info = sprintf( $ibforums->lang['pmpc_info_string'], $total['msg_total'], $ibforums->member['g_max_messages'] );
			$info['full_percent'] = $total['msg_total'] ? sprintf( "%.0f", $total['msg_total'] / $ibforums->member['g_max_messages'] * 100 ) : 0;
			$info['img_width'] = 0 < $info['full_percent'] ? intval( $info['full_percent'] ) * 3 : 1;
			if ( 300 < $info['img_width'] )
			{
				$info['img_width'] = 300;
			}
			if ( $ibforums->member['g_max_messages'] <= $total['msg_total'] )
			{
				$info['full_messenger'] = "<span class='highlight'>".$ibforums->lang['folders_full']."</span>";
			}
			else
			{
				$info['full_messenger'] = str_replace( "<#PERCENT#>", $info['full_percent'], $ibforums->lang['pmpc_full_string'] );
			}
		}
		$start = 0 < intval( $ibforums->input['st'] ) ? intval( $ibforums->input['st'] ) : 0;
		$p_end = 0 < $ibforums->vars['show_max_msg_list'] ? $ibforums->vars['show_max_msg_list'] : 50;
		$pages = $std->build_pagelinks( array(
			"TOTAL_POSS" => $total_current['msg_total'],
			"PER_PAGE" => $p_end,
			"CUR_ST_VAL" => $start,
			"L_SINGLE" => "",
			"L_MULTI" => $ibforums->lang['msg_pages'],
			"BASE_URL" => $this->base_url."&act=Msg&CODE=1&VID=".$this->vid."&sort=".$ibforums->input['sort']
		) );
		if ( $this->vid == "sent" )
		{
			$ibforums->lang['message_from'] = $ibforums->lang['message_to'];
			$DB->query( "SELECT m.*, mp.name as from_name FROM ibf_messages m, ibf_members mp WHERE member_id='".$this->member['id']."' AND vid='".$this->vid."' and mp.id=m.recipient_id ORDER BY {$sort_key} LIMIT {$start}, {$p_end}" );
		}
		else
		{
			$DB->query( "SELECT m.*, mp.name as from_name FROM ibf_messages m, ibf_members mp WHERE member_id='".$this->member['id']."' AND vid='".$this->vid."' and mp.id=m.from_id ORDER BY {$sort_key} LIMIT {$start}, {$p_end}" );
		}
		$this->output .= $this->html->inbox_table_header( $this->msg_stats['current_dir'], $info, $this->jump_html, $pages );
		if ( $DB->get_num_rows( ) )
		{
			while ( $row = $DB->fetch_row( ) )
			{
				if ( $this->vid == "sent" )
				{
					$row['icon'] = "<{M_READ}>";
				}
				else
				{
					$row['icon'] = $row['read_state'] == 1 ? "<{M_READ}>" : "<{M_UNREAD}>";
				}
				$row['date'] = $std->get_date( $row['msg_date'], "LONG" );
				if ( $this->vid != "sent" )
				{
					$row['add_to_contacts'] = "[<a href='{$ibforums->vars['board_url']}/index.{$ibforums->vars['php_ext']}?s={$ibforums->session_id}&act=Msg&CODE=02&MID={$row['from_id']}'>{$ibforums->lang[add_to_book]}</a>]";
				}
				else
				{
					$row['from_id'] = $row['recipient_id'];
				}
				$d_array = array(
					"msg" => $row,
					"member" => $this->member,
					"stat" => $this->msg_stats
				);
				$this->output .= $this->html->inbox_row( $d_array );
			}
		}
		else
		{
			$this->output .= $this->html->no_msg_inbox( );
		}
		$this->output .= $this->html->end_inbox( $this->jump_html, $amount_info, $pages );
		if ( $this->msg_stats['current_id'] == "in" )
		{
			$DB->query( "UPDATE ibf_members SET new_msg='0' WHERE id='".$this->member['id']."'" );
		}
		$this->page_title = $ibforums->lang['t_welcome'];
		$this->nav = array(
			"<a href='".$this->base_url."&act=UserCP&CODE=00'>".$ibforums->lang['t_title']."</a>"
		);
	}

	function view_saved( )
	{
		global $ibforums;
		global $DB;
		global $std;
		global $print;
		$this->output .= $this->html->unsent_table_header( );
		$DB->query( "SELECT m.*, mp.name as to_name FROM ibf_messages m, ibf_members mp WHERE member_id='".$this->member['id']."' AND vid='unsent' and mp.id=m.recipient_id ORDER BY msg_date DESC" );
		if ( $DB->get_num_rows( ) )
		{
			while ( $row = $DB->fetch_row( ) )
			{
				$row['icon'] = "<{M_READ}>";
				$row['date'] = $std->get_date( $row['msg_date'], "LONG" );
				$row['cc_users'] = $row['cc_users'] == "" ? $ibforums->lang['no'] : $ibforums->lang['yes'];
				$d_array = array(
					"msg" => $row,
					"member" => $this->member
				);
				$this->output .= $this->html->unsent_row( $d_array );
			}
		}
		else
		{
			$this->output .= $this->html->no_msg_inbox( );
		}
		$this->output .= $this->html->unsent_end( );
		$this->page_title = $ibforums->lang['t_welcome'];
		$this->nav = array(
			"<a href='".$this->base_url."&act=UserCP&CODE=00'>".$ibforums->lang['t_title']."</a>"
		);
	}

	function show_tracking( )
	{
		global $ibforums;
		global $DB;
		global $std;
		global $print;
		$this->output .= $this->html->trackread_table_header( );
		$DB->query( "SELECT m.*, mp.name as to_name, mp.id as memid FROM ibf_messages m, ibf_members mp WHERE m.tracking=1 AND m.read_state=1 AND m.from_id='".$this->member['id']."' AND m.member_id=mp.id ORDER BY msg_date DESC" );
		if ( $DB->get_num_rows( ) )
		{
			while ( $row = $DB->fetch_row( ) )
			{
				$row['icon'] = "<{M_READ}>";
				$row['date'] = $std->get_date( $row['read_date'], "LONG" );
				$this->output .= $this->html->trackread_row( $row );
			}
		}
		else
		{
			$this->output .= $this->html->no_msg_inbox( );
		}
		$this->output .= $this->html->trackread_end( );
		$this->output .= $this->html->trackunread_table_header( );
		$DB->query( "SELECT m.*, mp.name as to_name, mp.id as memid FROM ibf_messages m, ibf_members mp WHERE m.tracking=1 AND m.read_state=0 AND m.from_id='".$this->member['id']."' AND m.member_id=mp.id ORDER BY msg_date DESC" );
		if ( $DB->get_num_rows( ) )
		{
			while ( $row = $DB->fetch_row( ) )
			{
				$row['icon'] = "<{M_UNREAD}>";
				$row['date'] = $std->get_date( $row['msg_date'], "LONG" );
				$this->output .= $this->html->trackunread_row( $row );
			}
		}
		else
		{
			$this->output .= $this->html->no_msg_inbox( );
		}
		$this->output .= $this->html->trackunread_end( );
		$this->page_title = $ibforums->lang['t_welcome'];
		$this->nav = array(
			"<a href='".$this->base_url."&act=UserCP&CODE=00'>".$ibforums->lang['t_title']."</a>"
		);
	}

	function parse_member( $member = array( ), $row = array( ) )
	{
		global $ibforums;
		global $std;
		global $DB;
		$member['name'] = "<a href='{$this->base_url}&act=Profile&CODE=03&MID={$member['id']}'>{$member['name']}</a>";
		$member['avatar'] = $std->get_avatar( $member['avatar'], $ibforums->member['view_avs'], $member['avatar_size'] );
		$member['MEMBER_JOINED'] = $ibforums->lang['m_joined']." ".$std->get_date( $member['joined'], "JOINED" );
		$member['MEMBER_GROUP'] = $ibforums->lang['m_group']." ".$member['member_group'];
		$member['MEMBER_POSTS'] = $ibforums->lang['m_posts']." ".$member['posts'];
		$member['PROFILE_ICON'] = "<a href='{$this->base_url}&act=Profile&CODE=03&MID={$member['id']}'><{P_PROFILE}></a>&nbsp;";
		$member['MESSAGE_ICON'] = "<a href='{$this->base_url}&act=Msg&CODE=04&MID={$member['id']}'><{P_MSG}></a>&nbsp;";
		if ( !$member['hide_email'] )
		{
			$member['EMAIL_ICON'] = "<a href='{$this->base_url}&act=Mail&CODE=00&MID={$member['id']}'><{P_EMAIL}></a>&nbsp;";
		}
		if ( $member['website'] && ( $member['website'] = preg_match( "/^http:\\/\\/\\S+\$/", $member['WEBSITE'] ) ) )
		{
			$member['WEBSITE_ICON'] = "<a href='{$member['website']}' target='_blank'><{P_WEBSITE}></a>&nbsp;";
		}
		if ( $member['icq_number'] )
		{
			$member['ICQ_ICON'] = "<a href=\"javascript:PopUp('{$this->base_url}&act=ICQ&MID={$member['id']}','Pager','450','330','0','1','1','1')\"><{P_ICQ}></a>&nbsp;";
		}
		if ( $member['aim_name'] )
		{
			$member['AOL_ICON'] = "<a href='http://search.tencent.com/cgi-bin/friend/user_show_info?ln={$member['aim_name']}' target='_blank'><{P_AOL}></a>&nbsp;";
		}
		return $member;
	}

	function html_add_smilie_box( )
	{
		global $ibforums;
		global $std;
		global $DB;
		$show_table = 0;
		$count = 0;
		$smilies = "<tr align='center'>\n";
		$DB->query( "SELECT * FROM ibf_emoticons WHERE clickable='1'" );
		while ( $elmo = $DB->fetch_row( ) )
		{
			++$show_table;
			++$count;
			if ( strstr( $elmo['typed'], "&#39;" ) )
			{
				$in_delim = "\"";
				$out_delim = "'";
			}
			else
			{
				$in_delim = "'";
				$out_delim = "\"";
			}
			$smilies .= "<td><a href={$out_delim}javascript:emoticon({$in_delim}".$elmo['typed']."{$in_delim}){$out_delim}><img src=\"".$ibforums->vars['EMOTICONS_URL']."/".$elmo['image']."\" alt='smilie' border='0'></a>&nbsp;</td>\n";
			if ( $count == $ibforums->vars['emo_per_row'] )
			{
				$smilies .= "</tr>\n\n<tr align='center'>";
				$count = 0;
			}
		}
		if ( $count != $ibforums->vars['emo_per_row'] )
		{
			$i = $count;
			for ( ;	$i < $ibforums->vars['emo_per_row'];	++$i	)
			{
				$smilies .= "<td>&nbsp;</td>\n";
			}
			$smilies .= "</tr>";
		}
		$table = $this->post_html->smilie_table( );
		if ( $show_table != 0 )
		{
			$table = preg_replace( "/<!--THE SMILIES-->/", $smilies, $table );
			$this->output = preg_replace( "/<!--SMILIE TABLE-->/", $table, $this->output );
		}
	}

	function build_contact_list( )
	{
		global $DB;
		global $std;
		$contacts = "";
		$DB->query( "SELECT * FROM ibf_contacts WHERE member_id='".$this->member['id']."' ORDER BY contact_name" );
		if ( $DB->get_num_rows( ) )
		{
			$contacts = "<select name='from_contact' class='forminput'><option value='-'>".$ibforums->lang['other']."</option>\n<option value='-'>--------------------</option>\n";
			while ( $entry = $DB->fetch_row( ) )
			{
				$contacts .= "<option value='".$entry['contact_id']."'>".$entry['contact_name']."</option>\n";
			}
			$contacts .= "</select>\n";
		}
		else
		{
			$contacts = $ibforums->lang['address_list_empty'];
		}
		return $contacts;
	}

}

$idx = new messenger( );
?>

⌨️ 快捷键说明

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