|
From: FlorinCB <ory...@us...> - 2008-10-11 04:04:41
|
Update of /cvsroot/mxbb/mx_chatbox/includes In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv8783/includes Added Files: common.php Log Message: fixed version --- NEW FILE: common.php --- <?php /*************************************************************************** * common.php * ---------- * begin : July, 2003 * copyright : (c) 2003 Marc Ferran * email : markus_petrux at phpmix dot com * module : mx_chatbox * file contents : Common definitions for the module. * ***************************************************************************/ /*************************************************************************** * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * ***************************************************************************/ /*************************************************************************** * History: * * 2003/07/20 (markus_petrux) * - MX010: Fix various HTML errors. * - MX009: Use $lang array for various texts. * - MX008: Moved chatbox_function.php here. * - MX007: Get ChatBox Settings from config table. * - MX006: Setup $cfg_chatname. * - MX005: Strip out all unnecessary code. * - MX004: Moved chatbox_config.php here. * - MX003: Added lang_admin and Config table. * - MX002: Changed mx_chatbox version to 1.1.0. * * 2003/07/16 (markus_petrux) * - MX001: Script created. * ***************************************************************************/ // // Security check // if( !defined('IN_PORTAL') ) { die("Hacking attempt"); } // // mx_chaxbox version... // define('_CHATBOX_VERSION', "mx_chatbox v.1.2.2"); // // Define table names. // define('CHATBOX_TABLE', $mx_table_prefix.'chatbox'); define('CHATBOX_SESSION_TABLE', $mx_table_prefix.'chatbox_session'); define('CHATBOX_CONFIG_TABLE', $mx_table_prefix.'chatbox_config'); // // Load language files. // if( file_exists($module_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.' . $phpEx) ) { include($module_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.' . $phpEx); } else { include($module_root_path . 'language/lang_english/lang_admin.' . $phpEx); } if( file_exists($module_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx) ) { include($module_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx); } else { include($module_root_path . 'language/lang_english/lang_main.' . $phpEx); } if (is_object($mx_page)) { // ------------------------------------------------------------------------- // Extend User Style with module lang and images // Usage: $mx_user->extend(LANG, IMAGES) // Switches: // - LANG: MX_LANG_MAIN (default), MX_LANG_ADMIN, MX_LANG_ALL, MX_LANG_NONE // - IMAGES: MX_IMAGES (default), MX_IMAGES_NONE // ------------------------------------------------------------------------- $mx_user->extend(MX_LANG_MAIN, MX_IMAGES); } // // Common definitions... // define('_CHATBOX_SYSTEM_MSG', "<span style='color: red'>System Msg</span>"); $cfg_chatname = $board_config['sitename'] . ' -> ' . $lang['ChatBox']; // ================================================================================ // [ CHATBOX CONFIG ] // ================================================================================ // // Get ChatBox Settings from config table // if( defined('_CHATBOX_CONFIG') ) { $chatbox_config = array(); $sql = "SELECT * FROM ".CHATBOX_CONFIG_TABLE; if( !($result = $db->sql_query($sql)) ) { mx_message_die(GENERAL_ERROR, "Couldn't query ChatBox config table", "", __LINE__, __FILE__, $sql); } else { while( $row = $db->sql_fetchrow($result) ) { $chatbox_config[$row['config_name']] = $row['config_value']; } } } // ================================================================================ // [ CHATBOX CLASS ] // ================================================================================ class cls_chatbox { // // Private Properties // var $_send_body_tag, // Close body tag on footer? (see page_header). $_page_title, $_javascript_head, $_javascript_body; // // Constructor // function cls_chatbox() { $this->_send_body_tag = false; $this->_page_title = $lang['ChatBox']; $this->_javascript_head = ''; $this->_javascript_body = ''; } // // Public Properties // function set_page_title($page_title) { $this->_page_title = $page_title; } function set_javascript_head($javascript_head) { $this->_javascript_head = $javascript_head; } function set_javascript_body($javascript_body) { $this->_javascript_body = $javascript_body; } // // Public Methods // function page_header($send_body_tag /*boolean*/, $extra_body_args = '') { global $template, $lang, $chatbox_config; $this->_send_body_tag = $send_body_tag; $template->set_filenames(array( 'header' => 'chatbox_header.tpl') ); if( $this->_send_body_tag ) { $template->assign_block_vars('switch_body_open_on', array()); } if( !empty($this->_javascript_head) ) { $template->assign_block_vars('switch_javascript_head_on', array()); } if( !empty($this->_javascript_body) ) { $template->assign_block_vars('switch_javascript_body_on', array()); } $template->assign_vars(array( 'PAGE_TITLE' => $this->_page_title, 'S_CONTENT_ENCODING' => $lang['ENCODING'], 'U_STYLESHEET' => $chatbox_config['stylesheet'], 'S_EXTRA_BODY_ARGS' => $extra_body_args, 'S_JAVASCRIPT_HEAD' => $this->_javascript_head, 'S_JAVASCRIPT_BODY' => $this->_javascript_body) ); $template->pparse('header'); } function page_footer($html = '') { global $template; $template->set_filenames(array( 'footer' => 'chatbox_footer.tpl') ); if( $this->_send_body_tag ) { $template->assign_block_vars('switch_body_close_on', array()); } $template->assign_vars(array( 'S_FOOTER_HTML' => $html) ); $template->pparse('footer'); } function page_frameset() { global $template, $phpEx; $template->set_filenames(array( 'frameset' => 'chatbox_frameset.tpl') ); $template->assign_vars(array( 'U_WINDOW_UNLOAD' => mx_append_sid('chatbox_drop.'.$phpEx), 'U_FRAME_TITLE' => mx_append_sid('chatbox_title.'.$phpEx), 'U_FRAME_LIST' => mx_append_sid('messenger_list.'.$phpEx), 'U_FRAME_VIEW' => mx_append_sid('messenger_view.'.$phpEx), 'U_FRAME_SEND' => mx_append_sid('messenger_send.'.$phpEx), ) ); $template->pparse('frameset'); } } //class cls_chatbox // ================================================================================ // [ COMMON FUNCTIONS ] // ================================================================================ function write_msg($nick, $msg) { global $chatbox_config, $board_config, $db, $lang; if( ($nick != _CHATBOX_SYSTEM_MSG) && (isuser_active($nick) == 'offline') ) { write_msg(_CHATBOX_SYSTEM_MSG,"<b>$nick</b> " .$lang['Joined_chat_on'].' '. phpBB2::create_date($board_config['default_dateformat'], time(), $board_config['board_timezone'])); chatbox_user_join($nick, 'offline'); } if( ($nick != _CHATBOX_SYSTEM_MSG) && (isuser_active($nick) == 'away') ) { write_msg(_CHATBOX_SYSTEM_MSG, "<b>$nick</b> ".$lang['is_online_again']); user_active($nick); } if( $nick == _CHATBOX_SYSTEM_MSG ) { $msg = "<span style='color: #006666'>" . $msg . '</span>'; } $sql = array( 'name' => addslashes($nick), 'msg' => addslashes($msg), 'timestamp' => (int) time(), ); $sql = "INSERT INTO " . CHATBOX_TABLE . $db->sql_build_array('INSERT', $sql); if( !$result = $db->sql_query($sql) ) { mx_message_die(GENERAL_ERROR, 'SQL Error in function write_msg()', '', __LINE__, __FILE__, $sql); } } function get_msg($start,$number,$dir) { global $chatbox_config, $db; $count = 0; if( $start < 0 ) { $start = 0; } $sql = "SELECT * FROM ".CHATBOX_TABLE." ORDER BY timestamp LIMIT ". $start . ", " . $number; if( !$result = $db->sql_query($sql) ) { die("SQL Error in function get_msg()"); } while( $record = $db->sql_fetchrow($result, MYSQL_ASSOC) ) { $output[$count] = array( 'nick' => stripslashes($record['name']), 'msg' => stripslashes($record['msg']), 'time' => stripslashes($record['timestamp']) ); $count++; } if( $chatbox_config['direction'] != 1 && ($count > 0) ) { $output = array_reverse($output); } return $output; } function count_msg() { global $chatbox_config, $db; $sql = "SELECT * FROM ".CHATBOX_TABLE; if( !$result = $db->sql_query($sql) ) { die("SQL Error in function count_msg()"); } return $db->sql_numrows($result); } function user_active($usernick) { global $chatbox_config, $db; $sql = "UPDATE ".CHATBOX_SESSION_TABLE." SET lastactive = '".time()."' WHERE username = '".addslashes($usernick)."'"; if( !$result = $db->sql_query($sql) ) { die("SQL Error in function user_active()"); } } function chatbox_user_join($usernick, $status) { global $chatbox_config, $db; $sql = "DELETE FROM ".CHATBOX_SESSION_TABLE." WHERE username = '".addslashes($usernick)."'"; if( !$result = $db->sql_query($sql) ) { die("SQL Error in function chatbox_user_join(): DELETE<br />" . $sql); } $sql = "INSERT INTO ".CHATBOX_SESSION_TABLE." (username, lastactive, laststatus)" . " VALUES ('" .addslashes($usernick). "', '" .time(). "', '" .addslashes($status). "')"; if( !$result = $db->sql_query($sql) ) { die("SQL Error in function chatbox_user_join(): INSERT<br />" . $sql); } } function user_exists($usernick) { global $db; $sql = "SELECT * FROM ".CHATBOX_SESSION_TABLE." WHERE username = '".addslashes($usernick)."'"; if( !$sol = $db->sql_query($sql) ) { die("SQL Error in function user_exists()"); } $record = $db->sql_fetchrow($sol); return isset($record['username']) ? true : false; } function isuser_active($usernick) { global $chatbox_config, $db; $sql = "SELECT lastactive FROM ".CHATBOX_SESSION_TABLE." WHERE username = '".addslashes($usernick)."'"; if( !$sol = $db->sql_query($sql) ) { die("SQL Error in function isuser_active()"); } $record = $db->sql_fetchrow($sol); $lastactive = $record['lastactive']; if( ($lastactive == '') or ($lastactive == '0') ) { $result = 'offline'; } else { if( ( ($lastactive + $chatbox_config['away_time']) < time() ) and ( ($lastactive + $chatbox_config['offline_time']) > time() ) ) { $result = 'away'; } else if( ($lastactive + $chatbox_config['offline_time']) <= time() ) { drop_user($usernick); $result = 'offline'; } else { $result = 'online'; } } return $result; } function drop_user($nick) { global $chatbox_config, $board_config, $db, $lang; $sql = "SELECT lastactive FROM ".CHATBOX_SESSION_TABLE." WHERE username = '".addslashes($nick)."'"; if( !$sol = $db->sql_query($sql) ) { die("SQL Error in function drop_user()"); } $record = $db->sql_fetchrow($sol); $lastactive = $record['lastactive']; if( $lastactive != '' ) { $sql = "DELETE FROM ".CHATBOX_SESSION_TABLE." WHERE username = '".addslashes($nick)."'"; if( !$result = $db->sql_query($sql) ) { die("SQL Error in function drop_user()"); } write_msg(_CHATBOX_SYSTEM_MSG, "<b>$nick</b> " .$lang['logged_out_on'].' '. phpBB2::create_date($board_config['default_dateformat'], time(), $board_config['board_timezone'])); } } ?> |