chatpara.php
来自「sabreipb 2.1.6 utf-8中文版本!」· PHP 代码 · 共 351 行
PHP
351 行
<?php/*+--------------------------------------------------------------------------| Invision Power Board v2.1.5| =============================================| by Matthew Mecham| (c) 2001 - 2005 Invision Power Services, Inc.| | =============================================| Web: | Time: Wed, 01 Mar 2006 19:11:28 GMT| Release: | Licence Info: +---------------------------------------------------------------------------| > $Date: 2006-03-01 16:47:10 +0000 (Wed, 01 Mar 2006) $| > $Revision: 152 $| > $Author: matt $+---------------------------------------------------------------------------|| > MODULE PUBLIC FILE: EXAMPLE| > Module written by Matt Mecham| > Date started: Fri 12th August 2005 (17:16)|+--------------------------------------------------------------------------*//*** MODULE: Public Example File (IPB 3.0 Methods)* "modules" is depreciated in IPB 3.0** @package InvisionPowerBoard* @subpackage Components* @author Matt Mecham* @version 2.1*/if ( ! defined( 'IN_IPB' ) ){ print "<h1>Incorrect access</h1>You cannot access this file directly. If you have recently upgraded, make sure you upgraded 'admin.php'."; exit();}/*** MODULE: Public Example File (IPB 3.0 Methods)** This class must ALWAYS be called "component_public"** @package InvisionPowerBoard* @subpackage Components* @author Matt Mecham* @version 2.1*/class component_public{ /** * IPSclass object * * @var object */ var $ipsclass; /** * Main function that's run from index.php * */ function run_component() { switch( $this->ipsclass->input['code'] ) { case 'show': $this->display_chat(); break; case 'update': $this->update_session(); break; default: $this->display_chat(); break; } } /*-------------------------------------------------------------------------*/ // Update user's session /*-------------------------------------------------------------------------*/ function update_session() { //----------------------------------------- // Got sess ID and mem ID? //----------------------------------------- if ( ! $this->ipsclass->member['id'] ) { print "no"; exit(); } //----------------------------------------- // Two hours of not doing anything... //----------------------------------------- if ( $this->ipsclass->lastclick < ( time() - 7200 ) ) { print "no"; exit(); } $tmp_cache = $this->ipsclass->cache['chatting']; $this->ipsclass->cache['chatting'] = array(); //----------------------------------------- // Goforit //----------------------------------------- if ( is_array( $tmp_cache ) and count( $tmp_cache ) ) { foreach( $tmp_cache as $id => $data ) { //----------------------------------------- // Not hit in 2 mins? //----------------------------------------- if ( $data['updated'] < ( time() - 120 ) ) { continue; } if ( $id == $this->ipsclass->member['id'] ) { continue; } $this->ipsclass->cache['chatting'][ $id ] = $data; } } //----------------------------------------- // Add in us //----------------------------------------- $this->ipsclass->cache['chatting'][ $this->ipsclass->member['id'] ] = array( 'updated' => time(), 'name' => $this->ipsclass->member['members_display_name'] ); //----------------------------------------- // Update cache //----------------------------------------- $this->ipsclass->update_cache( array( 'name' => 'chatting', 'deletefirst' => 1, 'donow' => 1, 'array' => 1 ) ); //----------------------------------------- // Something to return //----------------------------------------- print "ok"; exit(); } /*-------------------------------------------------------------------------*/ // Display chat /*-------------------------------------------------------------------------*/ function display_chat() { //----------------------------------------- // Load HTML and LANG //----------------------------------------- $this->ipsclass->load_language('lang_chatpara'); $this->ipsclass->load_template('skin_chatpara'); if ( ! $this->ipsclass->vars['chat04_account_no'] ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files') ); } //----------------------------------------- // Get extra settings //----------------------------------------- $this->ipsclass->DB->simple_construct( array( 'select' => 'conf_key,conf_value,conf_default', 'from' => 'conf_settings', 'where' => "conf_key LIKE 'chat04%'" ) ); $this->ipsclass->DB->simple_exec(); while( $r = $this->ipsclass->DB->fetch_row() ) { $value = $r['conf_value'] != "" ? $r['conf_value'] : $r['conf_default']; $this->ipsclass->vars[ $r['conf_key'] ] = $value; } //----------------------------------------- // Width and Height //----------------------------------------- $width = $this->ipsclass->vars['chat04_width'] ? $this->ipsclass->vars['chat04_width'] : 600; $height = $this->ipsclass->vars['chat04_height'] ? $this->ipsclass->vars['chat04_height'] : 350; //----------------------------------------- // v6 < specifics //----------------------------------------- if ( intval($this->ipsclass->vars['parachat_version']) < 7 ) { //----------------------------------------- // Got room? //----------------------------------------- if ( ! $this->ipsclass->vars['chat04_default_room'] ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files') ); } //----------------------------------------- // Got service type? //----------------------------------------- if ( ! $this->ipsclass->vars['chat04_servicetype'] ) { $this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'missing_files') ); } //----------------------------------------- // Make sure it has # //----------------------------------------- $this->ipsclass->vars['chat04_default_room'] = '#'.str_replace( '#', '', $this->ipsclass->vars['chat04_default_room'] ); //----------------------------------------- // Get service library //----------------------------------------- require_once( ROOT_PATH.'retail/chatservice.php' ); $server = 'http://'. $CHAT_SERVER[ $this->ipsclass->vars['chat04_servicetype'] ].'/'. $CHAT_FOLDER[ $this->ipsclass->vars['chat04_servicetype'] ]; //----------------------------------------- // Lang? //----------------------------------------- $this->ipsclass->vars['chat04_default_lang'] = ( $this->ipsclass->vars['chat04_default_lang'] == "" ) ? 'english.conf' : $this->ipsclass->vars['chat04_default_lang']; //----------------------------------------- // Text mode //----------------------------------------- $this->ipsclass->vars['chat04_plainmode'] = ( $this->ipsclass->vars['chat04_plainmode'] ) ? 'PlainText' : 'MegaText'; //----------------------------------------- // Style options.. //----------------------------------------- $style = array( 'applet_bg' => $this->ipsclass->vars['chat04_style_applet_bg'] ? str_replace( '#', '', $this->ipsclass->vars['chat04_style_applet_bg'] ) : 'BCD0ED', 'applet_fg' => $this->ipsclass->vars['chat04_style_applet_fg'] ? str_replace( '#', '', $this->ipsclass->vars['chat04_style_applet_fg'] ) : '345487', 'window_bg' => $this->ipsclass->vars['chat04_style_window_bg'] ? str_replace( '#', '', $this->ipsclass->vars['chat04_style_window_bg'] ) : 'F5F9FD', 'window_fg' => $this->ipsclass->vars['chat04_style_window_fg'] ? str_replace( '#', '', $this->ipsclass->vars['chat04_style_window_fg'] ) : '345487', 'font_size' => $this->ipsclass->vars['chat04_style_font_size'] ? str_replace( '#', '', $this->ipsclass->vars['chat04_style_font_size'] ) : '11', ); //----------------------------------------- // Show chat.. //----------------------------------------- $this->output .= $this->ipsclass->compiled_templates['skin_chatpara']->chat_inline( $server, $this->ipsclass->vars['chat04_account_no'], $this->ipsclass->vars['chat04_default_room'], $width, $height, $this->ipsclass->vars['chat04_default_lang'], $this->ipsclass->vars['chat04_plainmode'], $style ); } else { //----------------------------------------- // Show chat.. //----------------------------------------- $server = $this->ipsclass->vars['parachat_codebase_url'] ? $this->ipsclass->vars['parachat_codebase_url'] : "http://host9.parachat.com/pchat/applet"; $room = $this->ipsclass->vars['chat04_default_room'] ? $this->ipsclass->vars['chat04_default_room'] : "Lobby"; if ( strstr( strtolower( $this->ipsclass->vars['chat04_default_room'] ), 'lobby_' ) ) { $room = 'Lobby'; } $this->output .= $this->ipsclass->compiled_templates['skin_chatpara']->chat_inline_v7( $server, $this->ipsclass->vars['chat04_account_no'], $width, $height, $room ); } //----------------------------------------- // Show chat.. //----------------------------------------- $this->output = str_replace( '<!--AUTOLOGIN-->' , $this->ipchat_auto_login() , $this->output ); $this->output = str_replace( '<!--CUSTOMPARAM-->', $this->ipsclass->vars['chat04_customparams'], $this->output ); if ( ! $this->ipsclass->input['pop'] ) { $this->nav[] = $this->ipsclass->lang['live_chat']; $this->page_title = $this->ipsclass->lang['live_chat']; $this->ipsclass->print->add_output( $this->output ); $this->ipsclass->print->do_output( array( 'TITLE' => $this->page_title, 'JS' => 0, NAV => $this->nav ) ); } else { $this->ipsclass->print->pop_up_window( 'Chat', $this->output ); } } /*-------------------------------------------------------------------------*/ // IPCHAT (NEW) Auto_login /*-------------------------------------------------------------------------*/ function ipchat_auto_login() { if ( $this->ipsclass->member['id'] ) { $converge_member = $this->ipsclass->converge->converge_load_member_by_id($this->ipsclass->member['id']); $pass = $this->ipsclass->converge->member['converge_pass_hash']; $tmpname = $this->ipsclass->member['members_display_name']; $namearray = array(); $name = ""; //----------------------------------------- // Okay, we need to safe format this name //----------------------------------------- $tmpname = preg_replace( "#\s#", "_", $tmpname ); $tmpname = preg_replace( "#(?:[^\w\d\_])#is", "-", $tmpname ); if ( intval( $this->ipsclass->vars['parachat_version'] ) ) { $return ="<param name=\"Ctrl.AutoLogin\" value=\"true\"> <param name=\"Net.User\" value=\"".$tmpname."\"> <param name=\"Net.UserPass\" value=\"".urlencode("md5pass({$pass}){$this->ipsclass->member['id']}")."\">\n"; } else { $return = "<param name='ctrl.LoginOnLoad' value='true'>\n". "<param name='ctrl.Nickname' value='".$tmpname."'>\n". "<param name='ctrl.RealName' value='".$this->ipsclass->member['members_display_name']."'>\n". "<param name='ctrl.Password' value='".urlencode("md5pass({$pass}){$this->ipsclass->member['id']}")."'>\n"; } return $return; } else { return; } }}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?