phpmp-commits Mailing List for phpMyPublications (Page 18)
Status: Pre-Alpha
Brought to you by:
heimidal
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(69) |
May
(1) |
Jun
|
Jul
(53) |
Aug
(27) |
Sep
|
Oct
|
Nov
(35) |
Dec
(71) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(5) |
Feb
(65) |
Mar
|
Apr
(15) |
May
(40) |
Jun
(72) |
Jul
|
Aug
(2) |
Sep
(95) |
Oct
(37) |
Nov
|
Dec
|
2005 |
Jan
|
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
Update of /cvsroot/phpmp/phpMP/templates/TealMP/images In directory usw-pr-cvs1:/tmp/cvs-serv19025/templates/TealMP/images Removed Files: footer_bottom.gif footer_left.gif footer_right.gif footer_top.gif grad_ld_lr.gif logo.jpg navbg.gif pixel.gif topbg.jpg Log Message: Complete rewrite has begun! --- footer_bottom.gif DELETED --- --- footer_left.gif DELETED --- --- footer_right.gif DELETED --- --- footer_top.gif DELETED --- --- grad_ld_lr.gif DELETED --- --- logo.jpg DELETED --- --- navbg.gif DELETED --- --- pixel.gif DELETED --- --- topbg.jpg DELETED --- |
From: Brian R. <hei...@us...> - 2002-11-05 22:11:11
|
Update of /cvsroot/phpmp/phpMP/templates/TealMP/js In directory usw-pr-cvs1:/tmp/cvs-serv19025/templates/TealMP/js Removed Files: fade.js Log Message: Complete rewrite has begun! --- fade.js DELETED --- |
From: Brian R. <hei...@us...> - 2002-11-05 22:11:11
|
Update of /cvsroot/phpmp/phpMP/templates/TealMP/css In directory usw-pr-cvs1:/tmp/cvs-serv19025/templates/TealMP/css Removed Files: tpl_style.css Log Message: Complete rewrite has begun! --- tpl_style.css DELETED --- |
From: Brian R. <hei...@us...> - 2002-11-05 22:11:10
|
Update of /cvsroot/phpmp/phpMP/modules In directory usw-pr-cvs1:/tmp/cvs-serv19025/modules Removed Files: menu_side.php online_users_side.php simple_news.php user_side.php usercp.php Log Message: Complete rewrite has begun! --- menu_side.php DELETED --- --- online_users_side.php DELETED --- --- simple_news.php DELETED --- --- user_side.php DELETED --- --- usercp.php DELETED --- |
From: Brian R. <hei...@us...> - 2002-11-05 22:11:10
|
Update of /cvsroot/phpmp/phpMP/templates/TealMP In directory usw-pr-cvs1:/tmp/cvs-serv19025/templates/TealMP Removed Files: block_left.tpl block_right.tpl general.tpl index.tpl modules.tpl overall_footer.tpl overall_header.tpl register.tpl register_fin.tpl Log Message: Complete rewrite has begun! --- block_left.tpl DELETED --- --- block_right.tpl DELETED --- --- general.tpl DELETED --- --- index.tpl DELETED --- --- modules.tpl DELETED --- --- overall_footer.tpl DELETED --- --- overall_header.tpl DELETED --- --- register.tpl DELETED --- --- register_fin.tpl DELETED --- |
From: Brian R. <hei...@us...> - 2002-11-05 22:11:09
|
Update of /cvsroot/phpmp/phpMP/includes In directory usw-pr-cvs1:/tmp/cvs-serv19025/includes Modified Files: auth.php constants.php core.php dba.php functions.php parser.php sessions.php Added Files: template.php Log Message: Complete rewrite has begun! Index: auth.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/auth.php,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -r1.21 -r1.22 *** auth.php 14 Aug 2002 22:38:03 -0000 1.21 --- auth.php 5 Nov 2002 22:11:06 -0000 1.22 *************** *** 1,184 **** <? - /****************************************************************************** - ******************************************************************************* ! phpMP - The World's Greatest Modular Portal ! *********************************************** ! Are you MPowered? ! ! Copyright (C) 2002 phpMP Development Group ! All rights reserved. ! ! Lead Programmer: Brian Rose ! Lead Designer: Trevor Joynson ! ! Filename: /includes/auth.php ! Usage & Function: Contains Auth Class ! Create Date: March 29, 2002 ! ! $Id$ ! ! ******************************************************************************* ! ******************************************************************************* ! ! This software is provided under the GPL software license. A copy of the ! license should have been included with this software, located in the Docs ! folder. Feel free to redistribute and/or modify it according to the ! regulations stated in the license. ! ! ******************************************************************************* ! ******************************************************************************* ! ! Notes on this document: ! Database abstraction classes have been partially taken from jimmacr's phpusion ! project. Some source code has been modified, but most functions do exactly ! the same thing he intended them for. Most likely, this code will be mostly ! rewritten by project release. ! ! ******************************************************************************* ! ******************************************************************************/ ! ! class Auth { ! ! var $mpcookie; ! var $first_login; ! var $first_anon; ! ! function session_cleanup() { ! ! global $MPCONF, $DBA; ! ! $rand_val = rand(0, 10); ! if($rand_val >= 1) { ! ! $result = $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE expiretime < " . time()); ! ! return $DBA->affected_rows(); ! ! } ! ! } ! ! function AuthUser() { ! ! global $MPCONF, $Functions, $DBA; ! ! $this->session_cleanup(); ! ! if(empty($_POST['username'])) { ! session_start(); ! } ! ! if (empty($_REQUEST['PHPSESSID'])) { ! SetCookie("PHPSESSID", session_id(), (time() + $MPCONF['SES']['session_length']), "", "", 0); ! } ! ! if(($_POST['username'] != "") && ($_POST['password'] != "")) { ! ! $new_key = $Functions->createHash(); ! session_id($new_key); ! session_start(); ! ! $enc_password = md5($_POST['password']); ! ! $result = $DBA->query('SELECT * FROM ' . $MPCONF['DB']['table_prefix'] . "users WHERE username='{$_POST['username']}' AND password='$enc_password'"); ! $num_rows = $DBA->num_rows($result); ! if($num_rows > 0) { ! $user_array = $DBA->fetch_array($result); ! $MPCONF['USR'] = $user_array; ! ! if($MPCONF['USR']['active'] == 1) { ! ! $this->first_login = 1; ! $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE user_id = " . $user_array['user_id']); ! $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE user_ip = " . $MPCONF['SES']['user_ip']); ! ! unset($_SESSION['user_array']); ! $_SESSION['user_array'] = $user_array; ! ! $this->AuthAdmin(); ! ! } else { ! ! header("Location: " . $MPCONF['GEN']['uri'] . "/error.php?ecode=auth"); ! ! } ! ! } else { ! header("Location: " . $MPCONF['GEN']['uri'] . "/error.php?ecode=auth"); ! } ! } elseif(!empty($_SESSION['user_array'])) { ! ! $MPCONF['USR'] = $_SESSION['user_array']; ! ! $this->AuthAdmin(); ! ! //} elseif($_COOKIE[$MPCONF['SES']['extcookie']]) { ! ! //$this->mpcookie = $_COOKIE[$MPCONF['SES']['extcookie']]; ! //$authstring = $this->mpcookie; ! ! //$result = $DBA->query('SELECT username FROM ' . $MPCONF['DB']['table_prefix'] . 'users WHERE authstring="' . $authstring . '"'); ! ! //$num_rows = $DBA->num_rows($result); ! //if($num_rows > 0) { ! //$sess_user = $username; ! //$sesskey = $this->getSessKey(); ! //$userdata = $this->FetchUserVars($sess_user); ! ! //$DBA->query("INSERT INTO " . $MPCONF['DB']['table_prefix'] . "sessions (sesskey, expiretime, user_id) VALUES('$sesskey', '" . $this->cookietime . "', " . $userdata['user_id'] . ", )"); ! ! //setcookie($cookiename, $sess_user, $this->cookietime, $MPCONF['GEN']['uri']); ! //return $userdata; ! ! //} else { ! //header("Location: " . $MPCONF['GEN']['abs_path'] . "/error.php?ecode=auth"); ! //} ! } else { ! $sess_user = "Anonymous"; ! $result = $DBA->query('SELECT * FROM ' . $MPCONF['DB']['table_prefix'] . "users WHERE username='Anonymous'"); ! ! $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE user_ip = " . $MPCONF['SES']['user_ip']); ! ! $this->first_anon = 1; ! ! $user_array = $DBA->fetch_array($result); ! $MPCONF['USR'] = $user_array; ! ! $_SESSION['user_array'] = $user_array; ! } ! ! } ! ! function AuthAdmin() { ! if ($MPCONF['USR']['isadmin'] == 1) { ! ! $MPCONF['USR']['isadmin'] = 1; ! ! if ($MPCONF['USR']['isgod'] == 1) { ! ! $MPCONF['USR']['isadmin'] = 1; ! ! } ! ! return true; ! ! } ! ! } ! ! function Logout() { ! ! global $MPCONF, $DBA; ! ! unset($_SESSION['user_array']); ! $DBA->query('DELETE FROM ' . $MPCONF['DB']['table_prefix'] . 'sessions WHERE sesskey = "' . $_GET['sess_id'] . '"'); ! ! unset($MPCONF['USR']); ! $this->AuthUser(); ! ! } ! ! } ?> --- 1,6 ---- <? ! // Auth and User class/functions. ! // To be developed by Eric. ?> Index: constants.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/constants.php,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** constants.php 25 Jul 2002 20:50:07 -0000 1.6 --- constants.php 5 Nov 2002 22:11:06 -0000 1.7 *************** *** 1,3 **** --- 1,9 ---- <? + define("CONFIG_TABLE", TABLE_PREFIX . 'config'); + define("USERS_TABLE", TABLE_PREFIX . 'users'); + define("SESSION_TABLE", TABLE_PREFIX . 'sessions'); + define("MODULES_TABLE", TABLE_PREFIX . 'modules'); + define("BLOCK_TABLE", TABLE_PREFIX . 'blocks'); + ?> Index: core.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/core.php,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -r1.20 -r1.21 *** core.php 12 Aug 2002 01:08:29 -0000 1.20 --- core.php 5 Nov 2002 22:11:06 -0000 1.21 *************** *** 1,136 **** <? ! /****************************************************************************** ! ******************************************************************************* ! phpMP - The World's Greatest Modular Portal ! *********************************************** ! Are you MPowered? ! ! Copyright (C) 2002 phpMP Development Group ! All rights reserved. ! ! Lead Programmer: Brian Rose ! Lead Designer: Trevor Joynson ! ! Filename: /includes/core.php ! Usage & Function: Contains PHPMP Class ! Create Date: March 29, 2002 ! ! $Id$ ! ! ******************************************************************************* ! ******************************************************************************* ! ! This software is provided under the GPL software license. A copy of the ! license should have been included with this software, located in the Docs ! folder. Feel free to redistribute and/or modify it according to the ! regulations stated in the license. ! ! ******************************************************************************* ! ******************************************************************************* ! ! Notes on this document: ! Database abstraction classes have been partially taken from jimmacr's phpusion ! project. Some source code has been modified, but most functions do exactly ! the same thing he intended them for. Most likely, this code will be mostly ! rewritten by project release. ! ! ******************************************************************************* ! ******************************************************************************/ ! ! if( !defined('IN_PHPMP') ) { ! ! die("Hacking attempt."); ! ! } ! ! class Debug { //Taken from InvisionBoard and modified lightly. Will replace eventually. ! ! var $starttime; ! var $totaltime; ! ! function startTimer() { ! $mtime = microtime (); ! $mtime = explode (' ', $mtime); ! $mtime = $mtime[1] + $mtime[0]; ! $this->starttime = $mtime; ! } ! function endTimer() { ! $mtime = microtime (); ! $mtime = explode (' ', $mtime); ! $mtime = $mtime[1] + $mtime[0]; ! $endtime = $mtime; ! $totaltime = round (($endtime - $this->starttime), 5); ! $this->totaltime = $totaltime; ! } ! } ! ! $Debug = new Debug(); ! $Debug->startTimer(); ! ! // Main phpMP Class which loads all other files, config options, and modules. ! class PHPMP{ ! ! // Loads all core classes, config files, and variables. ! // Returns: none. ! function Init($core_files="",$var_files="") { ! ! global $MPCONF, $HTTP_GET_VARS; ! ! if($core_files != "") { ! $core_array = explode(',', "$core_files"); // Splits core_files. } ! $core_array[] = 'dba'; ! $core_array[] = 'functions'; ! $core_array[] = 'auth'; ! $core_array[] = 'Smarty.class'; ! $core_array[] = 'template_ext'; ! ! for($i=0; $i < count($core_array); $i++) { ! include($MPCONF['GEN']['abs_path'] . '/includes/' . $core_array[$i] . '.php'); ! } ! ! global $DBA, $Auth, $Functions, $Template, $Language; ! ! $DBA = new DBA(); ! ! $Functions = new Functions(); ! $Functions->GetConfig(); ! ! include_once($MPCONF['GEN']['abs_path'] . '/includes/sessions.php'); ! ! $Auth = new Auth(); ! $Auth->AuthUser(); ! if($HTTP_GET_VARS['logout'] == 'true') { ! $Auth->Logout(); ! } - if($MPCONF['USR']['language'] != '') { - $use_lang = $MPCONF['USR']['language']; - } else { - $use_lang = $MPCONF['TPL']['default_lang']; } ! require($MPCONF['GEN']['abs_path'] . '/languages/' . $use_lang . '/lang_main.php'); ! $Language = new Language(); ! ! $Template = new Template(); ! ! if($var_files != "") { ! $var_array = explode(',', "$var_files"); // Splits var_files. ! } ! $var_array[] = 'constants'; ! ! for($i=0; $i < count($var_array); $i++) { ! include($MPCONF['GEN']['abs_path'] . '/includes/' . $var_array[$i] . '.php'); ! } } } ?> --- 1,77 ---- <? ! class Core ! { ! // Initiates configuration from database. ! // Author: Brian 'Heimidal' Rose ! // Accepts: none. ! // Returns: Boolean - true ! function _initConfig () ! { ! ! global $DB; ! $sql = "SELECT * FROM " . CONFIG_TABLE; ! $result = $DBA->query( $sql ); ! ! while( $row = $DB->fetch_array( $result ) ) ! { ! define( $row['key'], $row['value'] ); } ! return true; ! ! } ! ! // Initiates all core components. ! // Author: Brian 'Heimidal' Rose ! // Accepts: $required_files (string of needed files separated by commas). ! // Returns: Boolean - true ! function init ( $required_files ) ! { ! ! $required_array = explode( $required_files, '' ); ! ! $required_array[] = 'debug'; ! $required_array[] = 'constants'; ! $required_array[] = 'dba'; ! $required_array[] = 'functions'; ! $required_array[] = 'auth'; ! $required_array[] = 'parser'; ! $required_array[] = 'Smarty.class'; ! $required_array[] = 'template'; ! ! $i = 0; ! while( $my_file = $required_array[$i] ) ! { ! include_once('./includes/' . $my_file . '.php'); ! $i++; } ! global $Debug, $DB, $Auth, $Parser, $Template, $Language; ! $Debug = new Debug(); ! $DB = new DBA(); ! $DBA->connect; + $this->_initConfig(); + } + } + // Main Class + // -- Init Function + // -- -- Debug + // -- -- Globals + // -- -- Require Files + // -- -- Load Constants + // -- -- Initiate DBA + // -- -- Load DB-based Config + // -- -- Load Language Files + // -- -- Authenticate User + // -- -- Initiate Template Engine ?> Index: dba.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/dba.php,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** dba.php 23 Apr 2002 08:14:55 -0000 1.6 --- dba.php 5 Nov 2002 22:11:06 -0000 1.7 *************** *** 1,43 **** <? ! /****************************************************************************** ! ******************************************************************************* ! ! phpMP - The World's Greatest Modular Portal ! *********************************************** ! Are you MPowered? ! ! Copyright (C) 2002 phpMP Development Group ! All rights reserved. ! ! Lead Programmer: Brian Rose ! Lead Designer: Trevor Joynson ! ! Filename: /includes/dba.php ! Usage & Function: DBA Initialisation Module ! Create Date: March 29, 2002 ! ! $Id$ ! ! ******************************************************************************* ! ******************************************************************************* ! ! This software is provided under the GPL software license. A copy of the ! license should have been included with this software, located in the Docs ! folder. Feel free to redistribute and/or modify it according to the ! regulations stated in the license. ! ! ******************************************************************************* ! ******************************************************************************/ ! ! switch( $MPCONF['DB']['host_type'] ) { ! case 'mysql': ! include($MPCONF['GEN']['abs_path'] . '/dba/' . $MPCONF['DB']['host_type'] . '.dba'); ! break; ! case '': ! die('Please open the config.php file and edit the values to reflect your server setup in order to use phpMP.'); ! default: ! die('We apologize, but the DB you are attempting to use is not supported by phpMP. Please review your config.php settings to ensure they are correct.'); ! } ?> --- 1,6 ---- <? ! // Handles Database Abstraction. ! // Essentially, this file decides what layer to load. ?> Index: functions.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/functions.php,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** functions.php 14 Aug 2002 19:45:46 -0000 1.12 --- functions.php 5 Nov 2002 22:11:06 -0000 1.13 *************** *** 1,115 **** <? ! /****************************************************************************** ! ******************************************************************************* ! ! phpMP - The World's Greatest Modular Portal ! *********************************************** ! Are you MPowered? ! ! Copyright (C) 2002 phpMP Development Group ! All rights reserved. ! ! Lead Programmer: Brian Rose ! Lead Designer: Trevor Joynson ! ! Filename: /includes/functions.php ! Usage & Function: Contains Functions Class ! Create Date: March 29, 2002 ! ! $Id$ ! ! ******************************************************************************* ! ******************************************************************************* ! ! This software is provided under the GPL software license. A copy of the ! license should have been included with this software, located in the Docs ! folder. Feel free to redistribute and/or modify it according to the ! regulations stated in the license. ! ! ******************************************************************************* ! ******************************************************************************/ ! ! // A Class that contains all functions that belong no where else. ! class Functions { ! ! ! function encode_ip($dotquad_ip) { ! $ip_sep = explode('.', $dotquad_ip); ! return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]); ! } ! ! function decode_ip($int_ip) { ! $hexipbang = explode('.', chunk_split($int_ip, 2, '.')); ! return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]); ! } ! ! // Gathers configuration info stored in database. ! // Returns: none. ! function GetConfig() { ! global $MPCONF, $DBA; ! $sql = "SELECT * FROM " . $MPCONF['DB']['table_prefix'] . "config"; ! $db = $DBA->query($sql); ! while($row = $DBA->fetch_array($db)) { ! $MPCONF[$row['type']][$row['name']] = $row["value"]; ! } ! ! global $REMOTE_ADDR; ! if( getenv('HTTP_X_FORWARDED_FOR') != '' ) { ! $client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR ); ! ! if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", getenv('HTTP_X_FORWARDED_FOR'), $ip_list) ) { ! $private_ip = array('/^127\.0\.0\.1/', '/^192\.168\..*/', '/^172\.16\..*/', '/^10..*/', '/^224..*/', '/^240..*/'); ! $client_ip = preg_replace($private_ip, $client_ip, $ip_list[1]); ! } ! } else { ! $client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR ); ! } ! ! $MPCONF['SES']['user_ip'] = $this->encode_ip($client_ip); ! ! } ! ! function createHash($length=32, $pool="") { ! if($pool == ""){ ! $pool = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; ! $pool .= "abcdefghijklmnopqrstuvwxyz"; ! $pool .= "0123456789"; ! } ! mt_srand ((double) microtime() * 1000000); ! $unique_id = ""; ! for ($index = 0; $index < $length; $index++) { ! $unique_id .= substr($pool, (mt_rand()%(strlen($pool))), 1); ! } ! return $unique_id; ! } ! ! } ! ! class ModFunctions { ! ! // Changes the data string in the database for the module specified. ! // Returns: 1 on success, 0 on failure. ! function ChangeDataString($mod, $string) { ! global $DBA; ! $sql = "UPDATE " . $MPCONF['DB']['table_prefix'] . "modules SET data='" . $string . "'WHERE unixname='" . $mod . "'"; ! if($DBA->query($sql)) { ! return 1; ! } else { ! return 0; ! } ! } ! ! // Fetches the data stored by a module. ! // Returns: data string. ! function FetchDataString($mod, $string) { ! global $DBA; ! $sql = "SELECT data FROM " . $MPCONF['DB']['table_prefix'] . "modules WHERE unixname='" . $mod; ! $db = $DBA->query($sql); ! $result = $DBA->fetch_array($db); ! return $result[0]; ! } ! ! } ?> --- 1,5 ---- <? ! // File for functions that go nowhere in particular. ?> Index: parser.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/parser.php,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** parser.php 23 Apr 2002 08:14:55 -0000 1.5 --- parser.php 5 Nov 2002 22:11:06 -0000 1.6 *************** *** 1,1372 **** <? ! /****************************************************************************** ! ******************************************************************************* - phpMP - The World's Greatest Modular Portal - *********************************************** - Are you MPowered? - - Copyright (C) 2002 phpMP Development Group [...1349 lines suppressed...] - if (!function_exists("array_values")) - { - $t = array(); - while (list($k, $v) = each ($arr)) - $t[] = $v; - return $t; - } - else - return array_values($arr); - } - - } ?> --- 1,6 ---- <? ! // Content parsing functions to be developed here. ! // These work similarly to BBCode and the like. ?> Index: sessions.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/sessions.php,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** sessions.php 14 Aug 2002 19:45:46 -0000 1.5 --- sessions.php 5 Nov 2002 22:11:06 -0000 1.6 *************** *** 1,101 **** <? - /****************************************************************************** - ******************************************************************************* ! phpMP - The World's Greatest Modular Portal ! *********************************************** ! Are you MPowered? ! ! Copyright (C) 2002 phpMP Development Group ! All rights reserved. ! ! Lead Programmer: Brian Rose ! Lead Designer: Trevor Joynson ! ! Filename: /includes/sessions.php ! Usage & Function: Contains Session Handlers ! Create Date: July 26, 2002 ! ! $Id$ ! ! ******************************************************************************* ! ******************************************************************************* ! ! This software is provided under the GPL software license. A copy of the ! license should have been included with this software, located in the Docs ! folder. Feel free to redistribute and/or modify it according to the ! regulations stated in the license. ! ! ******************************************************************************* ! ******************************************************************************* ! ! Notes on this document: ! Database abstraction classes have been partially taken from jimmacr's phpusion ! project. Some source code has been modified, but most functions do exactly ! the same thing he intended them for. Most likely, this code will be mostly ! rewritten by project release. ! ! ******************************************************************************* ! ******************************************************************************/ ! ! ini_set ( "session.save_handler", "user"); ! ! function sess_open ($save_path, $session_name) { ! return true; ! } ! ! function sess_close() { ! return true; ! } ! ! function sess_read ($sesskey) { ! global $MPCONF, $DBA; ! ! $session_data = $DBA->query("SELECT data FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE sesskey = '$sesskey' AND expiretime > " . time()) or die(db_error_message()); ! if (list($value) = $DBA->fetch_row($session_data)) { ! return $value; ! } else { ! return ''; ! } ! } ! ! function sess_write ($sesskey, $val) { ! global $MPCONF, $DBA; ! ! $expiry = time() + $MPCONF['SES']['session_length']; ! $value = addslashes($val); ! ! $retval = $DBA->query("UPDATE " . $MPCONF['DB']['table_prefix'] . "sessions SET data = '$value', user_id = '" . $MPCONF['USR']['user_id'] . "', time_started = '" . time() . "' expiretime = '" . $expiry . "' WHERE sesskey = '$sesskey'"); ! ! if(!($retval)) { ! $retval = $DBA->query("INSERT INTO " . $MPCONF['DB']['table_prefix'] . "sessions (sesskey, user_id, user_ip, time_started, expiretime, data) VALUES ('$sesskey', '" . $MPCONF['USR']['user_id'] . "', '" . $MPCONF['SES']['user_ip'] . "', '" . time() . "', '" . $expiry . "', '$value')"); ! } ! ! return $retval; ! } ! ! function sess_destroy ($sesskey) { ! global $MPCONF, $DBA; ! ! $retval = $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE sesskey = '$sesskey'"); ! return $retval; ! } ! ! function sess_gc ($maxlifetime) { ! global $MPCONF, $DBA; ! ! $retval = $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE expiretime < " . time()); ! ! return $DBA->affected_rows(); ! } ! ! session_set_save_handler ( ! 'sess_open', ! 'sess_close', ! 'sess_read', ! 'sess_write', ! 'sess_destroy', ! 'sess_gc' ! ); ?> --- 1,6 ---- <? ! // Session Management. ! // To be developed by Eric. ?> |
From: Brian R. <hei...@us...> - 2002-11-05 22:11:09
|
Update of /cvsroot/phpmp/phpMP/languages/spanish In directory usw-pr-cvs1:/tmp/cvs-serv19025/languages/spanish Removed Files: lang_main.php Log Message: Complete rewrite has begun! --- lang_main.php DELETED --- |
From: Brian R. <hei...@us...> - 2002-11-05 22:11:08
|
Update of /cvsroot/phpmp/phpMP/docs In directory usw-pr-cvs1:/tmp/cvs-serv19025/docs Modified Files: MODULES TODO Added Files: Class Outline.doc System-Flowchart.gif flowchart.psd phpMP Worksheet 1.doc Log Message: Complete rewrite has begun! ***** Bogus filespec: Class --- NEW FILE: Outline.doc --- --- NEW FILE: System-Flowchart.gif --- GIF89a Xæ H° Á*\Ȱ¡Ã#JH±¢Å3jÜȱ£Ç CÀDÉ(SªlDÆ/C¬I³¦¾'^êÔÐĦÏ@Ù²§+t*¥ÐT A£JúÎYzf¢AA©×/?>Y¡Ê.TÓªUà+ /ÿ,5òõkXMvh¡«³ÀÚ¿}2©ûÒÃ"¬þzÄÒ(X<&¸²eë¬ñäÍ_xäËÐ,.«^13è±xý5G² ýE+ëßÀjáÝ¢]ëÌÁÈFÊeN½ºAÊu0JèBÒì:;#ªrü)ÖÓ«ÿö Âãé¢Ã ó_ö0PÈùͰÞ^óNL 5T±óÑ%AÄÆB7Ýô]pôÔuÐB ó @B@N}ÃRm¶EEDàBrÑ6uÝqpöÝ= ! +H ðÈpp`ä«à°IqÕ[%¿pEA ÈÌ$æD¨J¯0Op² Ld/~àn,àzÒå?À-û Z) ȮȢ=ÁÐL÷ð+ô¶ ØF.ô¥4&ȵ @°DB@v$õå¨|ÍjËT 21")`Tøºq »hõ°(Aj ÑÌ5-úKݱҺ´±-v/Çf.?Ù<PU¥L iV*ϺV'KÙQØÅ(4µâ¼ÀÌ÷ÚÞîd ¢e'[^a õru"â´´9mqw¨[Þ.÷ºJ9sÁQÛ×´`ºÔÝòjGªà¨,o.^Æñ 0JYy&| ëà pPn|ühaØù½¯oÀQ`>Ê.è³:À}g ݱ}Ó}÷ÇI`' gæj ~-³~º5[°g 8àiÁv.2ÐuøMP Àjr w8Y7@±G¸e(7qñ ÙøõJ ¹qe SÀ ¢Y©t¢°?]ã6ì# BzÿÍ© y¸Jð±)¦@(0v²fk¶¥À¸I@ êð[ TY0Âv<½Mð]ð6àÀLÂà¹GHà¼,¼Z ɺÀ" Þ;ÉÞ`Ñ[Û|°ÇÉäàÉì¡|4M GÓèÑÒAU^qU°ÇÓíàÓyÔv/±Ò¨pHÝÐ&ÍÔ¤Ha7 Qà¸RÕî ÔfÕmCÍ@ÑC 9l ýbýf|rM·Û q)ÓøØìÙZ6Ùá× Ø±«`¼ Ù{½fý º©ÇÚéàÙBÚQt´qÙÐ1à´¶Ýb¸M¢½^í>?×ÁmØo½Mm' 39ØÏMÃÝ`Å-º¼ÝHÝò°Ý÷ÕÝ . °©4#Å^>/ÞÃîZÓ¾8Ç>ÿµyí<Z¹s¬¦IêÒ¢ÿÈ0HÙîYÛ7ÝÞ®1{§Uù¥îÚ¢¿¾0ÁÞâ\¾hóWNdïÀ <@VqgC ÈùÍùç_óOí:ñARîÀùD@¡ %àó§ `4Ú;0|53D2ýæøË° ÔwJ§.uúµ)b?¥P¶¶°iwuKw_Üeÿpqø1!Cè{÷ã\Á`ìQØ«#Ó"ÜøáaÉGM~r *¼?ò]\^p奨i×Ô10)»"!.9 `é3b¢Ð¢è7ÿöª.ó?¿¿üüËÔ×>vq" LØy¨$c7hP@ÅØ¢®ÀHR(PÙ ÄÈÛZb¥ÆHÇ $PÉ7¡æ]rÂ%Þ!©@ \wÜàN Ô0B@èÿ°"aö'5ÊIdFƨ¤Yé0râ@ üÉj!¤ ìhI lö%ªÒZ_d£ËÜ GAÐÅ(TR9x6PË÷&0Ôê½î:*{ò²ÕE¢Ùu%üYdm*Þp«ÀpæVÃ61&:?¥9PC%4 {m=Ãõh ôìù®¥ìOíÃT`«ãIüìö#pÓW¨§AMïåÄ}(ä# þǪïâ£R T$©DVâ xD¤#íÉSa ¡` òª$1D RILã°`¬ QÒ+óãJRH`o¬DëT9LörE~f%¹¢ôl9.ù%(³ÿ#æ*©©ÍG\ò@¥ð ds#³XBà ×Kà{(»À *<ɼÃà ÐË1 +XE5/Ì69Í2uHê{Õ!,±ÜæNºôýÉî{ÞL`¶ md¿SÃ÷õÕVJuê/îW`L²·=òW4Ü'ÙÞ¶ µ"ÿÂ[ËmÖF!Ixübb¸_ÜÒ6[ü¬#!ÑY!õÀfNóßüQôjKë³r{ã5Á&Å$¡B[ l`øj¬>õ¾°Á¶aþÅ ÔüXøÑ´¤.¡ °Â °°EFÍY]Ð! X)×!tC VB%NôNYxB. Aøgÿ{}¹èë¶Z\P`¶î/ÖîùægÃ+ÈÀ ¨À|ç·Ý÷x¯!lèÐT{õÎr#yLçõVÈBí!ñÜï>½wVÏaýúgã·±íIЬ@tkáñ}px¶|'¥| QWZÀx%°0>Vøyõ2](" WÀA5ýfámÙõî¦2 cQvTÃ8U£qpX 2ª8y^à3* pÊQàº` ]mAä2Ð2à0ÃYÓvÀ= O@ðxÅPðÄ0(ðviñ``UùÆïwäóÿz[¥9®Vùr300G&)Ð!ÚÀö¢SX æXÁQ¶Ó¹m£ íèÅc'@XåÓÕÍfp È =ÀµIO`ý5VÐï Y:àö¦V¢É¤Y Ên89uà >Ð « Ï ¾,,@õ^ÿ×pPñ_ñ 1 + @ìÈ¥lFö£Â¯ÐPf{Hn¦du`¥$8ÕßSZÂ?n&!^fbþK krbÀYR@¢ÃµÜ`07 4P$$èEvæIÉég£^ò 6jJªbr «£h@O¬I¥Ì @ôuÀ¦xZl"ÿt) ß#)b¹æ©ÂZ´J+¸RRHø |,"9P¼HË´:Lɬ1ï&Áô BeRC,¤Xò ,IͪL'©¦°ï`ÂIwM>ÂÀ 9aÂÌïLåµ_-^häÅcf,É3X|í«3Cò4@Í~q l²ÉHÙ$.K Ú= I×¢xXõU0'%év0·w·½Ó1Í%áL!ÔSºæD !»È -TÈG\ Ü0Ì)!OÀúãLÁ`ñ$)ºÍ18â(¤¹Mn¢ìåØ~úó2 AnÓT)BWq) P Z ½ª±ë)¤ð:UŦ ± ú^)ËÍó8¢·eRÌo¬:\Ò²&9íéFD³)ÿ1«*j §¾rem,glÀÀ;ÅÉ4ÃÆÍ,éF63¯4áDKʧýqã¹Å¾òS-¸¦Ú8©õa]ëZ#Õ©f®}uX@ÕcFp±òÉyb.k§GýÈ °²wÛ§V$âÜçx {`Zo±6L7qõÀ:ræz0ðwÒàò$âqµ7?_O½§LR0ËtçVåæ,ö\Äw®×5pJ>}T"%HfÌqbÓT¾"{&0y)ò{àu?$÷]6[h0öAà[H](p_hdqT) lyNR">$üSphN ^s¸][è¾Á1 c{È tg@pDh4Gÿ')òÜñrWf ôX×Õ\ å0´8WPSP2°¯Wj^ÈÈibÜQ_@e¶Syo¨ný ¹ÙùÙf¶Ø eñH¸bBàP # Q m@À 00è¥ü=7xe Á~jjFÊ3@O\w÷%Å¢<|&ÿØÐ. ]Ïj!JÀ 9u ÃeÔÕ¡lÚg ¤ßùqkz,=3¢-*E °*ÄP©Ê!«ÚªQu*=ê¨Óy ZP¹Z¤QB¢Ð, P1 IdYE ¬ª0Ь5² ¨Ô9 ¦´zÐ öÎgVqj©á ä O`°wiÉpQ0@¨h«ô*M/ »üôDnËd¸Ë±òè¼ðPé<Pà£Ê«Dp ;cÑË åõh¤»»U4¡áRMÀÿ¹kYç» åõÖ[ºWQE°³ñ;7²«XPáu¿6ò`uKM + Jð;ÀËKÐÌO Ü#Q¼{½+± @q<ra±4&Âܤ{¬XK\ ÈOì9àu<ÅaX ÷e.ðÿë¢3îbA÷ô§¬[[¬+ ºøÈ§WüʸlNFeµ` a,Ó0<¯À©ìZm> zϺõ \ÜÿTw ] ¦Gz¦ÇZÉmY¯ }Ý $aÛ ¹}|ÐÍ©EXxú jÌÝp%Ô ¾ì ÿ ¢¡ à Ý>² °Áñ;¦}à`9À' ~p F&}:däÂl¸tDE3jÜȱã(74ñXë¾ ÈfVèR£-Â( |}@ÄqH2¤Bh=ViåuC/üu Närdã)yÊÈ´×YHQ`)çt:õB9àØ×¶¢di .ðõ "Ru6êè£îÀSö@¸hc¦Oq TÎb«¯+åÊɧVí´Wì¶Ü{gVY!EØ'í&»B h¹L1[·ðÆK§ dP©Sôp-ϲûØ-Ô>e ¿$ðÿ®¼'¼£¼êTèÀ/ÁúV¨À¬ðÆç(Á =ÐÊZL1®¶ yªS+¬Ç,óMpbK-0D>²ôër+çVnSUü¬Ï3'´jôj $q u±ølt#AO¢²Suõ!0¸ôØdÇJ-ÀÚÑ7ÜÕ_+µ$C/uÁq#Ôe÷íwGìQ2,Tw@sC²uSSHXG.ùC5ßÜèY Ü8uCç1ùé¨Ãã OsdÛpNº /¾ÔmÎN|§îûï¼X°B-<°V¦È>{â äàÔººbÿðÔW °/FÊò¤Ïm;I<\½!+[¯þú¥Ì0é#äC·Á. øÏݼS'ì ``'GÑ¥ô±)KåPÊbrTGtÄr r]v¢À=ò BwÂ`%¢3K0NåU1¯vf#*ÆS³ h@[úVÁ~PÉ4îêPh2UD q ẠpukHd· Æ´®Eÿ/{\ùüB©;rÜͺU VóM¬ôIÀ ö°9R×2S ·D÷)Ax»ûÈðnŤéÍð:iØùÜ÷FzôXè±J3ÎZcÜ Ð(ÛQ÷·~FWÎòyÕ«RHVòÀ-qX42m¹Î±Ôí `3×÷uðO ïüèV Ü GÏzb§ÈÞØ÷ÖÛ~@¯'XìÒ¿ðöÀ'Pîýµ{t Ø[ðᳫø§Çüê»Æùå¾>.0nÝñÎúàg ö±¥}}οúý2~h_©óÖO¾´ßWï§ÇÓ¹½ÕÿÿPq·ô ¹Ùù9Yy¹Ù) --- NEW FILE: flowchart.psd --- 8BPS <?adobe-xap-filters esc="CR"?> <x:xapmeta xmlns:x='adobe:ns:meta/' x:xaptk='XMP toolkit 2.8.2-33, framework 1.5'> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> <rdf:Description about='uuid:6d2550f3-efa8-11d6-8583-8eeafe870d2e' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> <xapMM:DocumentID>adobe:docid:photoshop:af16fa70-efa4-11d6-8583-8eeafe870d2e</xapMM:DocumentID> </rdf:Description> </rdf:RDF> </x:xapmeta> <?xpacket end='w'?> ESliceType leftOutsetlong ÿÀ ddo7é1öæYC,~ßå#ªZ¬<ÌKq¨dV- ñôú=ßñ®Ø7©¼Zqznósky.ªÊZ÷¾éßuv¶¶ú¶3#é}EÏñÖ>×kÒßö/D}¡ß¤7×<[oómÇ÷þeO·ü'ø_N»ÿ FahõëÛ4w¦ïÜwÒb²«aõ.pr©ÊÀy¦ÆÙ¶~ÿ D}Îü{ïíZõµÁæ_`ü÷>ßÍgým%<_×Êúc±ºWMéWæt«ÜËúÛkõZØô1ª¹Çùµþßô×Wéõ4Õéþ«õ'½¡ì¯%÷7é¹}7{¿ö~¯ðoÈ¿Ù/$í¤Xè=Ïÿ >ýÞÏC¿k«ÿ ,o¦<vzôßg»þ5%8âÐ>°u¦ôTô_N¢·ÕÞ ô7ú~Ïûÿ fileFormatenum FileFormat autoReducebool ColorTable interlacedbool zonedLossyObjc NativeQuad 8BIMclbl G G G = = = = = =   Â8BIMluni ÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿ ÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿ áÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿ ÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿÿÿÿÿÿÿáÿ £ p ï@ Ï p ï@ Ï p ï@ Ï P P P ¿ ü ( ÿöÿ¢ ÿöÿ¢ ÿöÿ¢ f½äóÿ ï@ Ï ü Ì~-f´ùÿÿ P ºÿÿÿáÿÿÿÌÿÀ¸ ï@ Ï ü Ì~-f´ùÿÿ P ºÿÿÿáÿÿÿÌÿÀ¸ ï@ Ï ü Ì~-f´ùÿÿ P ***** Bogus filespec: phpMP ***** Bogus filespec: Worksheet --- NEW FILE: 1.doc --- Index: MODULES =================================================================== RCS file: /cvsroot/phpmp/phpMP/docs/MODULES,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** MODULES 21 Jul 2002 22:40:44 -0000 1.5 --- MODULES 5 Nov 2002 22:11:06 -0000 1.6 *************** *** 1,157 **** - This file is used for reference in order to help you create phpMP modules for yourself. - Please do not use this file maliciously. - - phpMP Modules come in two flavors. The first is a standard, paged module. - These are accessed through the modules.php script and follow the following - scripting guidelines. - - The second type of module is a 'blocked' module. These are contained within - the right- and left- side block areas and are used for polls, menus, and - general information that only takes up a small amount of space. - - - /******************************************************************************** - CREATING PAGED MODULES - ********************************************************************************/ - Let's begin! To start, here is a basic module broken down into a few simple pieces: - - <? - - $mod_id = 'MP_SAMPLE'; // Mod ID. - // When creating unofficial mods, please prepend this with a - // (hopefully) unique developer id (just like tables and - // other such things). In this case 'MP' is the - // developer id. Also, this var should be identical to - // $MPCONF['MOD']['mod_id']. - - class Module { // Standard. ALWAYS included. - - var $pagetitle; //Area for initialization of Module variables. - - function Init() { // $Module->Init() is auto-called by the module script...use it to initialize stuff. - $this->pagetitle = "Sample phpMP Module"; // Sets pagetitle var (duh!). - } - - function MakeContent() { // This creates the actual content displayed on the page. - // If you need to call other functions after this one, call them at the end. - global $Template; // Makes the $Template class global. - - // Begins a 'big' middle block. - $Template->Blocking('BeginBig', array(PAGETITLE => $this->pagetitle)); - - print "This is a test...<br>This is only a test...<br>\n"; // Prints a line. - - $Template->Blocking('EndBig'); // Ends a 'big' middle block. - } - } - - $Module = new Module(); // ALWAYS the last line of actual code in a module - // unless you are calling module functions. Without - // it, the class is not instantiated. - - ?> - - Note that all modules must reside in the modules/ directory within - the phpMP root. In addition, a module must register with the phpMP - Module Database, also known as the phpmp_modules table in the user's - database. This contains the module's name, filename, Unix-qualified - identifier, module ID, information on whether or not the module is actuve, and - any data the module wishes to store in a single-string variable (which - can be split, exploded, that sort of thing). - - Access the data string through $MPCONF['MOD']['data']. - - Alrighty...so. I guess the template object should be explained a bit. - A page is currently assembled in the following order: - - 1. $Template->PrintHeader() - Prints everything up to the left-side menu. - 2. $Template->CreateSide('left') - Creates the left-side menu and table. - 3. $Template->Blocking('BeginMain') - Begins the main/mid section of the table. - Used for main content. - If this is not called, most designs will be thrown COMPLETELY out of whack. - 4. $Module->MakeContent() - Creates module content. Should contain BeginBig and - EndBig statements. - 5. $Template->Blocking('EndMain') - Ends the main/mid section of the table. - 6. $Template->CreateSide('right') - Creates the left-side menu and table. - 7. $Template->PrintFooter() - Prints copyright and any additional info needed. - - Note that in future versions this order might (almost definitely) change. In that case, - your module will cease to function correctly. In the near future, version limitations - will be added so you won't have to worry about such things occuring. - - Next I'll explain the DBA class. It is used to access databases. - - $DBA->connect() - NEVER, EVER CALL THIS FUNCTION!!!!!! - $DBA->close() - NEVER, EVER CALL THIS FUNCTION!!!!!! - $DBA->query() - Used to execute basic queries from a database. - $DBA->num_rows($qid) - Finds the number of rows in specified query ($qid). - $DBA->fetch_array($qid) - Fetches an array of values for query ($qid). - $DBA->fetch_row($qid) - Fetches a row for query ($qid) in an array. - $DBA->affected_rows($qid) - Equiv of mysql_affected_rows($qid). - - To add a module to the menu and/or modules list, use the following DB row layout: - - name - Text for link in menu, as of now. - unixname - Unix-qualified name of module..only a-z, 0-9, -, and _ chars. - active - Set to 1 in order to display in link list or function at all. - filename - Filename within modules/ directory. - - - /******************************************************************************** - CREATING BLOCKED MODULES - ********************************************************************************/ - Now we'll move on to blocked modules. - - These are relatively simple. While not object-oriented, you may create an object - which may then be used to gather the required data. - - A blocked module returns two values (or, at least, only two that are used). - These values are: - - $blockname - Title that is displayed in headerbar of block. - $content - The HTML used to produce the main content of the block. - - The following is an extremely simple example version of a phpMP blocked module: - - <? - - $blockname = "Whazzup, " . $MPCONF['USR']['username'] . "!"; - $content = "I can't believe you came back!!!!"; - - ?> - - As you may have noticed, we introduced a new element into the fray. The $MPCONF - array is a multi-dimensional array used to store all configuration variables used - within phpMP. This array will be documented soon. - - Anyhow, once included and called for assembly, this would produce a block - resembing this: - - +----------------------+ - | Whazzup, <username>! | - +----------------------+ - | I can't believe you | - | came back!!!! | - | | - +----------------------+ - - - Pretty simple, huh? - - To make the block actually appear, you must add a row to the phpmp_blocking table. - Eventually this will be handled by the administration area, but for now we get to - do it manually! This is the following format for a typical blocked module row: - - blockname - $blockname is initially set to this. If creating a file-based block, - you may override it (for dynamic change of the blockname) by setting - $blockname to something else. - side - Right or left. Self Explanatory. - weight - lowest number comes first i.e. a module with a weight of 1 is displayed - above one with a weight of 2. If two or more modules have the same weight, - they will be sorted in the order in which they were added to the database. - content - If block is COMPLETELY static with no PHP, you may put the $content here. - is_php - Set to one if using external file. Set to 0 if content column is set. - php_file - Filename of file in modules/ directory i.e. sample_side.php. - - NOTE: As a general rule of thumb, blocked modules should always have _side appended to - the filename in order to not conflict with a paged module of the same name. \ No newline at end of file --- 0 ---- Index: TODO =================================================================== RCS file: /cvsroot/phpmp/phpMP/docs/TODO,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** TODO 3 Nov 2002 08:06:22 -0000 1.2 --- TODO 5 Nov 2002 22:11:06 -0000 1.3 *************** *** 1,28 **** - This file lists all of the tasks that must be completed. - These items are listed in no particular order. - Please note that, just because features are listed in this document, - they may not neccesarily be in the final release. - - - Finalize file organization. - - - Create a usable User CP. - - - Develop a well-rounded, standard administration area. - - - Fix EVERYTHING involved in the session management schematic, including auto-auth and such. - - - Work on the DBA for most major databases (MySQL, MSSQL, PostgreSQL). - - - Finish and finalize module schematic. Ensure all needed functionality is available. - - - Finalize a definitive language class. - - - Ensure languages of most major charsets work. - - - Fix and finish registration. - - - Begin creation of most major modules including news, top x lists, forums, downloads, etc. - - - Separate language-specific site attributes from actual code. - - - Come up with a (relatively) awesome way of handling template config files. \ No newline at end of file --- 0 ---- ... [truncated message content] |
From: Brian R. <hei...@us...> - 2002-11-05 22:11:08
|
Update of /cvsroot/phpmp/phpMP/dba/sql In directory usw-pr-cvs1:/tmp/cvs-serv19025/dba/sql Removed Files: mysql.sql mysql_default_values.sql Log Message: Complete rewrite has begun! --- mysql.sql DELETED --- --- mysql_default_values.sql DELETED --- |
From: Brian R. <hei...@us...> - 2002-11-05 22:11:08
|
Update of /cvsroot/phpmp/phpMP/dba In directory usw-pr-cvs1:/tmp/cvs-serv19025/dba Modified Files: mysql.dba Log Message: Complete rewrite has begun! Index: mysql.dba =================================================================== RCS file: /cvsroot/phpmp/phpMP/dba/mysql.dba,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -r1.16 -r1.17 *** mysql.dba 27 Jul 2002 12:16:00 -0000 1.16 --- mysql.dba 5 Nov 2002 22:11:05 -0000 1.17 *************** *** 1,191 **** <?php ! /****************************************************************************** ! ******************************************************************************* ! ! phpMP - The World's Greatest Modular Portal ! *********************************************** ! Are you MPowered? ! ! Copyright (C) 2002 phpMP Development Group ! All rights reserved. ! ! Lead Programmer: Brian Rose ! Lead Designer: Trevor Joynson ! ! Filename: /dba/mysql.dba ! Usage & Function: DB Wrapper for MySQL ! Create Date: March 28, 2002 ! ! $Id$ ! ! ******************************************************************************* ! ******************************************************************************* ! ! This software is provided under the GPL software license. A copy of the ! license should have been included with this software, located in the Docs ! folder. Feel free to redistribute and/or modify it according to the ! regulations stated in the license. ! ! ******************************************************************************* ! ******************************************************************************* ! ! Notes on this document: ! Database abstraction classes have been partially taken from jimmacr's phpusion ! project. Some source code has been modified, but most functions do exactly ! the same thing he intended them for. Most likely, this code will be mostly ! rewritten by project release. ! ! ******************************************************************************* ! ******************************************************************************/ ! ! // Database Abstraction class - MySQL version ! //PERFORMS QUERIES ON A MYSQL DATABASE. ! class DBA{ ! ! var $identLink; ! var $stats; ! var $connected; ! ! function connect() { ! global $MPCONF, $db; ! if (empty($this->identLink)) { ! $db = @mysql_connect($MPCONF['DB']['host'], $MPCONF['DB']['username'], $MPCONF['DB']['password']); ! if (!$db) { ! $this->connected = 0; ! return 0; ! } else { ! $this->identLink = $db; ! $this->select_db($MPCONF['DB']['database']); ! return $db; ! } ! } else { ! return $this->identLink; ! } ! } ! ! function p_connect() { ! global $MPCONF, $db; ! if (empty($this->identLink)) { ! $db = @mysql_connect($MPCONF['DB']['host'], $MPCONF['DB']['username'], $MPCONF['DB']['password']); ! if (!$db) { ! $this->connected = 0; ! return 0; ! } else { ! $this->identLink = $db; ! $this->select_db($MPCONF['DB']['database']); ! return $db; ! } ! } else { ! return $this->identLink; ! } ! } ! ! function p_close() { ! @mysql_close($this->identLink); ! $this->identLink = 0; ! } ! ! function close() { ! @mysql_close($this->identLink); ! $this->identLink = 0; ! } ! ! function query($query,$null='') { ! global $MPCONF; ! $this->stats['query_count']++; ! if($this->identLink == 0) { ! $db = $this->connect(); ! } else { ! $db = $this->identLink; ! } ! if (!$db) { ! $result = 0; ! die("db connect error"); ! } ! else { ! // Execute query ! $result = @mysql_query($query, $db); ! // $result = mysql_query($query, $db); ! } ! return $result; ! } ! ! function select_db($db_name,$null='') { ! global $MPCONF; ! if($this->identLink == 0) { ! $db = $this->connect(); ! } else { ! $db = $this->identLink; ! } ! if (!$db) { ! $result = 0; ! die("db connect error"); ! } ! else { ! // Execute query ! $result = @mysql_select_db($db_name, $db); ! } ! return $result; ! } ! ! function num_rows($query) { ! if($this->identLink == 0) { ! $db = $this->connect(); ! } else { ! $db = $this->identLink; ! } ! $num = @mysql_num_rows($query); ! return $num; ! } ! ! function insert_id() { ! if($this->identLink == 0) { ! $db = $this->connect(); ! } else { ! $db = $this->identLink; ! } ! $num = @mysql_insert_id($this->identLink); ! return $num; ! } ! ! function result($result, $row=0, $field='') { ! if($this->identLink == 0) { ! $db = $this->connect(); ! } else { ! $db = $this->identLink; ! } ! $result = @mysql_result($result, $row, $field); ! return $result; ! } ! ! function fetch_array($query) { ! if($this->identLink == 0) { ! $db = $this->connect(); ! } else { ! $db = $this->identLink; ! } ! return @mysql_fetch_array($query); ! } ! ! function fetch_row($query) { ! if($this->identLink == 0) { ! $db = $this->connect(); ! } else { ! $db = $this->identLink; ! } ! $result = @mysql_fetch_row($query); ! return $result; ! } ! ! function affected_rows() { ! if($this->identLink == 0) { ! $db = $this->connect(); ! } else { ! $db = $this->identLink; ! } ! return @mysql_affected_rows($db); ! } ! } ?> --- 1,5 ---- <?php ! // MySQL DB Layer. ?> |
From: Brian R. <hei...@us...> - 2002-11-03 08:06:27
|
Update of /cvsroot/phpmp/phpMP/docs In directory usw-pr-cvs1:/tmp/cvs-serv3215/docs Modified Files: TODO Log Message: Updated TODO. Index: TODO =================================================================== RCS file: /cvsroot/phpmp/phpMP/docs/TODO,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** TODO 3 Nov 2002 00:18:33 -0000 1.1 --- TODO 3 Nov 2002 08:06:22 -0000 1.2 *************** *** 4,6 **** they may not neccesarily be in the final release. ! (We'll be updating this a little later.) \ No newline at end of file --- 4,28 ---- they may not neccesarily be in the final release. ! - Finalize file organization. ! ! - Create a usable User CP. ! ! - Develop a well-rounded, standard administration area. ! ! - Fix EVERYTHING involved in the session management schematic, including auto-auth and such. ! ! - Work on the DBA for most major databases (MySQL, MSSQL, PostgreSQL). ! ! - Finish and finalize module schematic. Ensure all needed functionality is available. ! ! - Finalize a definitive language class. ! ! - Ensure languages of most major charsets work. ! ! - Fix and finish registration. ! ! - Begin creation of most major modules including news, top x lists, forums, downloads, etc. ! ! - Separate language-specific site attributes from actual code. ! ! - Come up with a (relatively) awesome way of handling template config files. \ No newline at end of file |
From: Brian R. <hei...@us...> - 2002-11-03 00:18:35
|
Update of /cvsroot/phpmp/phpMP/docs In directory usw-pr-cvs1:/tmp/cvs-serv26176 Added Files: TODO Log Message: no message --- NEW FILE: TODO --- This file lists all of the tasks that must be completed. These items are listed in no particular order. Please note that, just because features are listed in this document, they may not neccesarily be in the final release. (We'll be updating this a little later.) |
From: Brian R. <hei...@us...> - 2002-11-02 18:24:02
|
Update of /cvsroot/phpmp/phpMP/templates/TealMP/images In directory usw-pr-cvs1:/tmp/cvs-serv13882 Added Files: pixel.gif Log Message: Fixed some bad image files. |
From: Brian R. <hei...@us...> - 2002-11-02 18:23:29
|
Update of /cvsroot/phpmp/phpMP/templates/TealMP/images In directory usw-pr-cvs1:/tmp/cvs-serv12841 Removed Files: pixel.gif Log Message: Fixed some bad image files. --- pixel.gif DELETED --- |
From: Brian R. <hei...@us...> - 2002-11-02 18:23:08
|
Update of /cvsroot/phpmp/phpMP/templates/TealMP/images In directory usw-pr-cvs1:/tmp/cvs-serv12142 Added Files: footer_left.gif footer_right.gif footer_top.gif grad_ld_lr.gif logo.jpg navbg.gif topbg.jpg Log Message: Fixed some bad image files. |
From: Brian R. <hei...@us...> - 2002-11-02 18:22:07
|
Update of /cvsroot/phpmp/phpMP/templates/TealMP/images In directory usw-pr-cvs1:/tmp/cvs-serv10220/images Added Files: footer_bottom.gif Removed Files: footer_left.gif footer_right.gif footer_top.gif grad_ld_lr.gif grad_ld_rl.gif logo.jpg navbg.gif topbg.jpg Log Message: Fixed some bad image files. --- footer_left.gif DELETED --- --- footer_right.gif DELETED --- --- footer_top.gif DELETED --- --- grad_ld_lr.gif DELETED --- --- grad_ld_rl.gif DELETED --- --- logo.jpg DELETED --- --- navbg.gif DELETED --- --- topbg.jpg DELETED --- |
From: Brian R. <hei...@us...> - 2002-08-14 22:38:06
|
Update of /cvsroot/phpmp/phpMP/includes In directory usw-pr-cvs1:/tmp/cvs-serv2125/includes Modified Files: auth.php Log Message: Fixed logout (now actually logs the user out completely, including deletion of session data. Also fixed online users side again! Index: auth.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/auth.php,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -r1.20 -r1.21 *** auth.php 14 Aug 2002 19:45:45 -0000 1.20 --- auth.php 14 Aug 2002 22:38:03 -0000 1.21 *************** *** 43,46 **** --- 43,47 ---- var $mpcookie; var $first_login; + var $first_anon; function session_cleanup() { *************** *** 138,141 **** --- 139,146 ---- $result = $DBA->query('SELECT * FROM ' . $MPCONF['DB']['table_prefix'] . "users WHERE username='Anonymous'"); + $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE user_ip = " . $MPCONF['SES']['user_ip']); + + $this->first_anon = 1; + $user_array = $DBA->fetch_array($result); $MPCONF['USR'] = $user_array; *************** *** 162,173 **** } - - function Register() { - - } - - function UpdateUser() { - - } function Logout() { --- 167,170 ---- *************** *** 176,180 **** unset($_SESSION['user_array']); ! $DBA->query('DELETE FROM ' . $MPCONF['DB']['table_prefix'] . 'sessions WHERE sesskey = "' . session_id() . '"'); unset($MPCONF['USR']); --- 173,177 ---- unset($_SESSION['user_array']); ! $DBA->query('DELETE FROM ' . $MPCONF['DB']['table_prefix'] . 'sessions WHERE sesskey = "' . $_GET['sess_id'] . '"'); unset($MPCONF['USR']); |
From: Brian R. <hei...@us...> - 2002-08-14 22:38:06
|
Update of /cvsroot/phpmp/phpMP/modules In directory usw-pr-cvs1:/tmp/cvs-serv2125/modules Modified Files: online_users_side.php user_side.php Log Message: Fixed logout (now actually logs the user out completely, including deletion of session data. Also fixed online users side again! Index: online_users_side.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/modules/online_users_side.php,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** online_users_side.php 14 Aug 2002 19:45:46 -0000 1.5 --- online_users_side.php 14 Aug 2002 22:38:03 -0000 1.6 *************** *** 14,17 **** --- 14,21 ---- $mem_num = $DBA->num_rows($mem_qry); + if($Auth->first_anon == 1) { + $anon_num++; + } + if($Auth->first_login == 1) { $mem_num++; Index: user_side.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/modules/user_side.php,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** user_side.php 12 Aug 2002 01:08:29 -0000 1.12 --- user_side.php 14 Aug 2002 22:38:03 -0000 1.13 *************** *** 15,19 **** } ! $content .= "<font size='1'><a href='" . $MPCONF['GEN']['uri'] . "index.php?logout=true'>" . $Language->lang['l_logout'] . "</a></font>\n"; } else { --- 15,19 ---- } ! $content .= "<font size='1'><a href='" . $MPCONF['GEN']['uri'] . "index.php?logout=true&session_id='" . session_id() . "'>" . $Language->lang['l_logout'] . "</a></font>\n"; } else { |
From: Brian R. <hei...@us...> - 2002-08-14 19:45:51
|
Update of /cvsroot/phpmp/phpMP/includes In directory usw-pr-cvs1:/tmp/cvs-serv18135/includes Modified Files: auth.php functions.php sessions.php Log Message: Fixed a few bugs. Added IP encoding and tracking support. Sessions are now based on both IPs and Session IDs. Hopefully this will all work! Index: auth.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/auth.php,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -r1.19 -r1.20 *** auth.php 14 Aug 2002 17:44:06 -0000 1.19 --- auth.php 14 Aug 2002 19:45:45 -0000 1.20 *************** *** 49,53 **** $rand_val = rand(0, 10); ! if($rand_val >= 9) { $result = $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE expiretime < " . time()); --- 49,53 ---- $rand_val = rand(0, 10); ! if($rand_val >= 1) { $result = $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE expiretime < " . time()); *************** *** 60,64 **** function AuthUser() { ! global $MPCONF, $Functions, $DBA; --- 60,64 ---- function AuthUser() { ! global $MPCONF, $Functions, $DBA; *************** *** 75,79 **** if(($_POST['username'] != "") && ($_POST['password'] != "")) { - $result = $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE username = " . $_POST['username']); $new_key = $Functions->createHash(); session_id($new_key); --- 75,78 ---- *************** *** 91,95 **** $this->first_login = 1; ! unset($_SESSION['user_array']); $_SESSION['user_array'] = $user_array; --- 90,96 ---- $this->first_login = 1; ! $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE user_id = " . $user_array['user_id']); ! $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE user_ip = " . $MPCONF['SES']['user_ip']); ! unset($_SESSION['user_array']); $_SESSION['user_array'] = $user_array; Index: functions.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/functions.php,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** functions.php 27 Jul 2002 12:16:00 -0000 1.11 --- functions.php 14 Aug 2002 19:45:46 -0000 1.12 *************** *** 34,37 **** --- 34,48 ---- class Functions { + + function encode_ip($dotquad_ip) { + $ip_sep = explode('.', $dotquad_ip); + return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]); + } + + function decode_ip($int_ip) { + $hexipbang = explode('.', chunk_split($int_ip, 2, '.')); + return hexdec($hexipbang[0]). '.' . hexdec($hexipbang[1]) . '.' . hexdec($hexipbang[2]) . '.' . hexdec($hexipbang[3]); + } + // Gathers configuration info stored in database. // Returns: none. *************** *** 43,46 **** --- 54,72 ---- $MPCONF[$row['type']][$row['name']] = $row["value"]; } + + global $REMOTE_ADDR; + if( getenv('HTTP_X_FORWARDED_FOR') != '' ) { + $client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR ); + + if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", getenv('HTTP_X_FORWARDED_FOR'), $ip_list) ) { + $private_ip = array('/^127\.0\.0\.1/', '/^192\.168\..*/', '/^172\.16\..*/', '/^10..*/', '/^224..*/', '/^240..*/'); + $client_ip = preg_replace($private_ip, $client_ip, $ip_list[1]); + } + } else { + $client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : $REMOTE_ADDR ); + } + + $MPCONF['SES']['user_ip'] = $this->encode_ip($client_ip); + } *************** *** 67,71 **** function ChangeDataString($mod, $string) { global $DBA; ! $sql = "UPDATE " . $MPCONF['DB']['table_prefix'] . "modules SET data='" . $string . "'WHERE unixname='" . $mod; if($DBA->query($sql)) { return 1; --- 93,97 ---- function ChangeDataString($mod, $string) { global $DBA; ! $sql = "UPDATE " . $MPCONF['DB']['table_prefix'] . "modules SET data='" . $string . "'WHERE unixname='" . $mod . "'"; if($DBA->query($sql)) { return 1; Index: sessions.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/sessions.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** sessions.php 31 Jul 2002 17:48:38 -0000 1.4 --- sessions.php 14 Aug 2002 19:45:46 -0000 1.5 *************** *** 52,56 **** global $MPCONF, $DBA; ! $session_data = $DBA->query("SELECT data FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE sesskey = '$sesskey' and expiretime > " . time()) or die(db_error_message()); if (list($value) = $DBA->fetch_row($session_data)) { return $value; --- 52,56 ---- global $MPCONF, $DBA; ! $session_data = $DBA->query("SELECT data FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE sesskey = '$sesskey' AND expiretime > " . time()) or die(db_error_message()); if (list($value) = $DBA->fetch_row($session_data)) { return $value; *************** *** 69,73 **** if(!($retval)) { ! $retval = $DBA->query("INSERT INTO " . $MPCONF['DB']['table_prefix'] . "sessions (sesskey, user_id, time_started, expiretime, data) VALUES ('$sesskey', '" . $MPCONF['USR']['user_id'] . "', '" . time() . "', '" . $expiry . "', '$value')"); } --- 69,73 ---- if(!($retval)) { ! $retval = $DBA->query("INSERT INTO " . $MPCONF['DB']['table_prefix'] . "sessions (sesskey, user_id, user_ip, time_started, expiretime, data) VALUES ('$sesskey', '" . $MPCONF['USR']['user_id'] . "', '" . $MPCONF['SES']['user_ip'] . "', '" . time() . "', '" . $expiry . "', '$value')"); } |
From: Brian R. <hei...@us...> - 2002-08-14 19:45:51
|
Update of /cvsroot/phpmp/phpMP/modules In directory usw-pr-cvs1:/tmp/cvs-serv18135/modules Modified Files: online_users_side.php usercp.php Log Message: Fixed a few bugs. Added IP encoding and tracking support. Sessions are now based on both IPs and Session IDs. Hopefully this will all work! Index: online_users_side.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/modules/online_users_side.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** online_users_side.php 14 Aug 2002 17:44:07 -0000 1.4 --- online_users_side.php 14 Aug 2002 19:45:46 -0000 1.5 *************** *** 13,16 **** --- 13,21 ---- $anon_num = $DBA->num_rows($anon_qry); $mem_num = $DBA->num_rows($mem_qry); + + if($Auth->first_login == 1) { + $mem_num++; + } + $total_num = $anon_num + $mem_num; Index: usercp.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/modules/usercp.php,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** usercp.php 14 Aug 2002 06:24:24 -0000 1.10 --- usercp.php 14 Aug 2002 19:45:46 -0000 1.11 *************** *** 12,16 **** function MakeContent() { ! global $MPCONF, $Language; $this->module_title = $Language->lang['l_user_panel']; --- 12,16 ---- function MakeContent() { ! global $MPCONF, $Language, $Functions; $this->module_title = $Language->lang['l_user_panel']; *************** *** 33,37 **** $this->module_content .= ' <tr>' . "\n"; $this->module_content .= ' <td>' . "\n"; ! $this->module_content .= ' Right now, this is all complete filler. Eventually, the User Control Panel will be contained here. C-ya when it\'s done!<br />The time now is ' . time() . ".\n"; $this->module_content .= ' </td>' . "\n"; $this->module_content .= ' </tr>' . "\n"; --- 33,37 ---- $this->module_content .= ' <tr>' . "\n"; $this->module_content .= ' <td>' . "\n"; ! $this->module_content .= ' Right now, this is all complete filler. Eventually, the User Control Panel will be contained here. C-ya when it\'s done!<br />The time now is ' . time() . ".\n<br />Your IP is (hopefully) " . $Functions->decode_ip($MPCONF['SES']['user_ip']) . ".\n"; $this->module_content .= ' </td>' . "\n"; $this->module_content .= ' </tr>' . "\n"; |
From: Brian R. <hei...@us...> - 2002-08-14 17:44:10
|
Update of /cvsroot/phpmp/phpMP/includes In directory usw-pr-cvs1:/tmp/cvs-serv26026/includes Modified Files: Config_File.class.php Smarty.class.php Smarty_Compiler.class.php auth.php Log Message: Upgraded Smarty template engine to 2.3.0. Fixed small online users problem (again) and changed all HTTP______VARS calls in auth to _POST or the like. Index: Config_File.class.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/Config_File.class.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** Config_File.class.php 25 Jul 2002 11:06:25 -0000 1.1 --- Config_File.class.php 14 Aug 2002 17:44:06 -0000 1.2 *************** *** 4,8 **** * Config_File class. * ! * @version 2.2.0 * @author Andrei Zmievski <an...@ph...> * @access public --- 4,8 ---- * Config_File class. * ! * @version 2.3.0 * @author Andrei Zmievski <an...@ph...> * @access public *************** *** 125,139 **** if (!empty($var_name)) { ! if (empty($section_name)) ! { return $this->_config_data[$file_name]["vars"][$var_name]; } - else - return $this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name]; } else { ! if (empty($section_name)) return (array)$this->_config_data[$file_name]["vars"]; ! else ! return (array)$this->_config_data[$file_name]["sections"][$section_name]["vars"]; } } --- 125,145 ---- if (!empty($var_name)) { ! if (empty($section_name)) { return $this->_config_data[$file_name]["vars"][$var_name]; + } else { + if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name])) + return $this->_config_data[$file_name]["sections"][$section_name]["vars"][$var_name]; + else + return array(); } } else { ! if (empty($section_name)) { return (array)$this->_config_data[$file_name]["vars"]; ! } else { ! if(isset($this->_config_data[$file_name]["sections"][$section_name]["vars"])) ! return (array)$this->_config_data[$file_name]["sections"][$section_name]["vars"]; ! else ! return array(); ! } } } Index: Smarty.class.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/Smarty.class.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** Smarty.class.php 25 Jul 2002 11:06:25 -0000 1.1 --- Smarty.class.php 14 Aug 2002 17:44:06 -0000 1.2 *************** *** 6,10 **** * Andrei Zmievski <an...@ph...> * ! * Version: 2.2.0 * Copyright: 2001,2002 ispi of Lincoln, Inc. * --- 6,10 ---- * Andrei Zmievski <an...@ph...> * ! * Version: 2.3.0 * Copyright: 2001,2002 ispi of Lincoln, Inc. * *************** *** 153,156 **** --- 153,159 ---- // you can set this to false if your PHP environment // does not allow the creation of them. + var $default_modifiers = array(); + // modifiers to implicitly append to every var + // example: array('escape:"htmlall"'); /**************************************************************************/ *************** *** 169,173 **** var $_config = array(); // loaded configuration settings var $_smarty_md5 = 'f8d698aea36fcbead2b9d5359ffca76f'; // md5 checksum of the string 'Smarty' ! var $_version = '2.2.0'; // Smarty version number var $_extract = false; // flag for custom functions var $_inclusion_depth = 0; // current template inclusion depth --- 172,176 ---- var $_config = array(); // loaded configuration settings var $_smarty_md5 = 'f8d698aea36fcbead2b9d5359ffca76f'; // md5 checksum of the string 'Smarty' ! var $_version = '2.3.0'; // Smarty version number var $_extract = false; // flag for custom functions var $_inclusion_depth = 0; // current template inclusion depth *************** *** 214,218 **** if(empty($this->debug_tpl)) { // set path to debug template from SMARTY_DIR ! $this->debug_tpl = SMARTY_DIR.'debug.tpl'; } } --- 217,221 ---- if(empty($this->debug_tpl)) { // set path to debug template from SMARTY_DIR ! $this->debug_tpl = 'file:'.SMARTY_DIR.'debug.tpl'; } } *************** *** 238,245 **** } ! /*======================================================================*\ Function: append ! Purpose: appens values to template variables \*======================================================================*/ function append($tpl_var, $value = NULL) --- 241,258 ---- } ! /*======================================================================*\ ! Function: assign_by_ref() ! Purpose: assigns values to template variables by reference ! \*======================================================================*/ ! function assign_by_ref($tpl_var, &$value) ! { ! if ($tpl_var != '' && isset($value)) ! $this->_tpl_vars[$tpl_var] = &$value; ! $this->_extract = true; ! } ! /*======================================================================*\ Function: append ! Purpose: appends values to template variables \*======================================================================*/ function append($tpl_var, $value = NULL) *************** *** 247,257 **** if (is_array($tpl_var)) { foreach ($tpl_var as $key => $val) { ! if (!empty($key)) { ! (array)$this->_tpl_vars[$key][] = $val; } } } else { ! if (!empty($tpl_var) && isset($value)) { ! (array)$this->_tpl_vars[$tpl_var][] = $value; } } --- 260,276 ---- if (is_array($tpl_var)) { foreach ($tpl_var as $key => $val) { ! if ($key != '') { ! if(!@is_array($this->_tpl_vars[$key])) { ! settype($this->_tpl_vars[$key],'array'); ! } ! $this->_tpl_vars[$key][] = $val; } } } else { ! if ($tpl_var != '' && isset($value)) { ! if(!@is_array($this->_tpl_vars[$tpl_var])) { ! settype($this->_tpl_vars[$tpl_var],'array'); ! } ! $this->_tpl_vars[$tpl_var][] = $value; } } *************** *** 259,262 **** --- 278,296 ---- } + /*======================================================================*\ + Function: append_by_ref + Purpose: appends values to template variables by reference + \*======================================================================*/ + function append_by_ref($tpl_var, &$value) + { + if ($tpl_var != '' && isset($value)) { + if(!@is_array($this->_tpl_vars[$tpl_var])) { + settype($this->_tpl_vars[$tpl_var],'array'); + } + $this->_tpl_vars[$tpl_var][] = &$value; + } + $this->_extract = true; + } + /*======================================================================*\ *************** *** 452,457 **** Purpose: clear cached content for the given template and cache id \*======================================================================*/ ! function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null) { if (!isset($compile_id)) $compile_id = $this->compile_id; --- 486,492 ---- Purpose: clear cached content for the given template and cache id \*======================================================================*/ ! function clear_cache($tpl_file = null, $cache_id = null, $compile_id = null, $exp_time = null) { + if (!isset($compile_id)) $compile_id = $this->compile_id; *************** *** 468,473 **** return $funcname('clear', $this, $dummy, $tpl_file, $cache_id, $compile_id); } else { ! return $this->_rm_auto($this->cache_dir, $tpl_file, $auto_id); } } --- 503,509 ---- return $funcname('clear', $this, $dummy, $tpl_file, $cache_id, $compile_id); } else { ! return $this->_rm_auto($this->cache_dir, $tpl_file, $auto_id, $exp_time); } + } *************** *** 477,481 **** Purpose: clear the entire contents of cache (all templates) \*======================================================================*/ ! function clear_all_cache() { if (!empty($this->cache_handler_func)) { --- 513,517 ---- Purpose: clear the entire contents of cache (all templates) \*======================================================================*/ ! function clear_all_cache($exp_time = null) { if (!empty($this->cache_handler_func)) { *************** *** 483,487 **** return $funcname('clear', $this, $dummy); } else { ! return $this->_rm_auto($this->cache_dir); } } --- 519,523 ---- return $funcname('clear', $this, $dummy); } else { ! return $this->_rm_auto($this->cache_dir,null,null,$exp_time); } } *************** *** 519,527 **** This function is for advanced use only, not normally needed. \*======================================================================*/ ! function clear_compiled_tpl($tpl_file = null, $compile_id = null) { if (!isset($compile_id)) $compile_id = $this->compile_id; ! return $this->_rm_auto($this->compile_dir, $tpl_file, $compile_id); } --- 555,563 ---- This function is for advanced use only, not normally needed. \*======================================================================*/ ! function clear_compiled_tpl($tpl_file = null, $compile_id = null, $exp_time = null) { if (!isset($compile_id)) $compile_id = $this->compile_id; ! return $this->_rm_auto($this->compile_dir, $tpl_file, $compile_id, $exp_time); } *************** *** 722,745 **** // we must force compile the debug template in case the environment // changed between separate applications. ! $_orig_ldelim = $this->left_delimiter; ! $_orig_rdelim = $this->right_delimiter; $this->left_delimiter = '{'; $this->right_delimiter = '}'; ! ob_start(); ! $force_compile_orig = $this->force_compile; $this->force_compile = true; $compile_path = $this->_get_compile_path($this->debug_tpl); if ($this->_process_template($this->debug_tpl, $compile_path)) { include($compile_path); } ! $results = ob_get_contents(); ! $this->force_compile = $force_compile_orig; ! ob_end_clean(); ! $this->left_delimiter = $_orig_ldelim; ! $this->right_delimiter = $_orig_rdelim; return $results; --- 758,785 ---- // we must force compile the debug template in case the environment // changed between separate applications. ! $_ldelim_orig = $this->left_delimiter; ! $_rdelim_orig = $this->right_delimiter; $this->left_delimiter = '{'; $this->right_delimiter = '}'; ! $_force_compile_orig = $this->force_compile; $this->force_compile = true; + $_compile_id_orig = $this->_compile_id; + $this->_compile_id = null; + $compile_path = $this->_get_compile_path($this->debug_tpl); if ($this->_process_template($this->debug_tpl, $compile_path)) { + ob_start(); include($compile_path); + $results = ob_get_contents(); + ob_end_clean(); } ! $this->force_compile = $_force_compile_orig; ! $this->_compile_id = $_compile_id_orig; ! $this->left_delimiter = $_ldelim_orig; ! $this->right_delimiter = $_rdelim_orig; return $results; *************** *** 936,948 **** { // split tpl_path by the first colon ! $file_path_parts = explode(':', $file_path, 2); ! if (count($file_path_parts) == 1) { // no resource type, treat as type "file" $resource_type = 'file'; ! $resource_name = $file_path_parts[0]; } else { ! $resource_type = $file_path_parts[0]; ! $resource_name = $file_path_parts[1]; if ($resource_type != 'file') { $this->_load_resource_plugin($resource_type); --- 976,988 ---- { // split tpl_path by the first colon ! $_file_path_parts = explode(':', $file_path, 2); ! if (count($_file_path_parts) == 1) { // no resource type, treat as type "file" $resource_type = 'file'; ! $resource_name = $_file_path_parts[0]; } else { ! $resource_type = $_file_path_parts[0]; ! $resource_name = $_file_path_parts[1]; if ($resource_type != 'file') { $this->_load_resource_plugin($resource_type); *************** *** 954,964 **** // relative pathname to $file_base_path // use the first directory where the file is found ! foreach ((array)$file_base_path as $curr_path) { ! if (@is_file($curr_path . DIR_SEP . $resource_name)) { ! $resource_name = $curr_path . DIR_SEP . $resource_name; return true; } // didn't find the file, try include_path ! if($this->_get_include_path($curr_path . DIR_SEP . $resource_name, $_include_path)) { $resource_name = $_include_path; return true; --- 994,1005 ---- // relative pathname to $file_base_path // use the first directory where the file is found ! foreach ((array)$file_base_path as $_curr_path) { ! $_fullpath = $_curr_path . DIR_SEP . $resource_name; ! if (@is_file($_fullpath)) { ! $resource_name = $_fullpath; return true; } // didn't find the file, try include_path ! if($this->_get_include_path($_fullpath, $_include_path)) { $resource_name = $_include_path; return true; *************** *** 1061,1064 **** --- 1102,1106 ---- $smarty_compiler->_plugins = &$this->_plugins; $smarty_compiler->_tpl_vars = &$this->_tpl_vars; + $smarty_compiler->default_modifiers = $this->default_modifiers; if ($smarty_compiler->_compile_file($tpl_file, $template_source, $template_compiled)) *************** *** 1277,1281 **** $this->_plugins['insert'][$name][1], $this->_plugins['insert'][$name][2], ! false); } return $this->_smarty_md5."{insert_cache $arg_string}".$this->_smarty_md5; --- 1319,1323 ---- $this->_plugins['insert'][$name][1], $this->_plugins['insert'][$name][2], ! !empty($args['script']) ? true : false); } return $this->_smarty_md5."{insert_cache $arg_string}".$this->_smarty_md5; *************** *** 1453,1461 **** // make source name safe for filename if($this->use_sub_dirs) { ! $_filename = basename($auto_source); $_crc32 = crc32($auto_source) . $_dir_sep; ! // prepend N in case crc32 was negative to avoid possible ! // OS issues with directory names starting with a "-" ! $_crc32 = 'N' . substr($_crc32,0,3) . $_dir_sep . 'N' . $_crc32; $res .= $_crc32 . $_filename . '.php'; } else { --- 1495,1503 ---- // make source name safe for filename if($this->use_sub_dirs) { ! $_filename = urlencode(basename($auto_source)); $_crc32 = crc32($auto_source) . $_dir_sep; ! // prepend %% to avoid name conflicts with ! // with $auto_id names ! $_crc32 = '%%' . substr($_crc32,0,3) . $_dir_sep . '%%' . $_crc32; $res .= $_crc32 . $_filename . '.php'; } else { *************** *** 1471,1475 **** Purpose: delete an automagically created file by name and id \*======================================================================*/ ! function _rm_auto($auto_base, $auto_source = null, $auto_id = null) { if (!is_dir($auto_base)) --- 1513,1517 ---- Purpose: delete an automagically created file by name and id \*======================================================================*/ ! function _rm_auto($auto_base, $auto_source = null, $auto_id = null, $exp_time = null) { if (!is_dir($auto_base)) *************** *** 1477,1481 **** if(!isset($auto_id) && !isset($auto_source)) { ! $res = $this->_rmdir($auto_base, 0); } else { $tname = $this->_get_auto_filename($auto_base, $auto_source, $auto_id); --- 1519,1523 ---- if(!isset($auto_id) && !isset($auto_source)) { ! $res = $this->_rmdir($auto_base, 0, $exp_time); } else { $tname = $this->_get_auto_filename($auto_base, $auto_source, $auto_id); *************** *** 1484,1488 **** $res = @unlink($tname); } elseif ($this->use_sub_dirs) { ! $res = $this->_rmdir($tname, 1); } else { // remove matching file names --- 1526,1530 ---- $res = @unlink($tname); } elseif ($this->use_sub_dirs) { ! $res = $this->_rmdir($tname, 1, $exp_time); } else { // remove matching file names *************** *** 1492,1496 **** continue; } elseif (substr($auto_base . DIR_SEP . $filename,0,strlen($tname)) == $tname) { ! unlink($auto_base . DIR_SEP . $filename); } } --- 1534,1538 ---- continue; } elseif (substr($auto_base . DIR_SEP . $filename,0,strlen($tname)) == $tname) { ! $this->_unlink($auto_base . DIR_SEP . $filename, $exp_time); } } *************** *** 1506,1510 **** WARNING: no security whatsoever!! \*======================================================================*/ ! function _rmdir($dirname, $level = 1) { --- 1548,1552 ---- WARNING: no security whatsoever!! \*======================================================================*/ ! function _rmdir($dirname, $level = 1, $exp_time = null) { *************** *** 1514,1521 **** if ($entry != '.' && $entry != '..') { if (is_dir($dirname . DIR_SEP . $entry)) { ! $this->_rmdir($dirname . DIR_SEP . $entry, $level + 1); } else { ! unlink($dirname . DIR_SEP . $entry); } } --- 1556,1563 ---- if ($entry != '.' && $entry != '..') { if (is_dir($dirname . DIR_SEP . $entry)) { ! $this->_rmdir($dirname . DIR_SEP . $entry, $level + 1, $exp_time); } else { ! $this->_unlink($dirname . DIR_SEP . $entry, $exp_time); } } *************** *** 1535,1538 **** --- 1577,1595 ---- /*======================================================================*\ + Function: _unlink + Purpose: unlink a file, possibly using expiration time + \*======================================================================*/ + function _unlink($resource, $exp_time = null) + { + if(isset($exp_time)) { + if(time() - filemtime($resource) >= $exp_time) { + unlink($resource); + } + } else { + unlink($resource); + } + } + + /*======================================================================*\ Function: _create_dir_structure Purpose: create full directory structure *************** *** 1917,1921 **** Purpose: trigger Smarty plugin error \*======================================================================*/ ! function _trigger_plugin_error($error_msg, $tpl_file = null, $tpl_line = null, $error_type = E_USER_WARNING) { if (isset($tpl_line) && isset($tpl_file)) { --- 1974,1978 ---- Purpose: trigger Smarty plugin error \*======================================================================*/ ! function _trigger_plugin_error($error_msg, $tpl_file = null, $tpl_line = null, $error_type = E_USER_ERROR) { if (isset($tpl_line) && isset($tpl_file)) { Index: Smarty_Compiler.class.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/Smarty_Compiler.class.php,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** Smarty_Compiler.class.php 25 Jul 2002 11:06:25 -0000 1.1 --- Smarty_Compiler.class.php 14 Aug 2002 17:44:06 -0000 1.2 *************** *** 7,11 **** * Andrei Zmievski <an...@ph...> * ! * Version: 2.2.0 * Copyright: 2001,2002 ispi of Lincoln, Inc. * --- 7,11 ---- * Andrei Zmievski <an...@ph...> * ! * Version: 2.3.0 * Copyright: 2001,2002 ispi of Lincoln, Inc. * *************** *** 1109,1113 **** $var_ref = $parts[0]; $modifiers = isset($parts[1]) ? $parts[1] : ''; ! preg_match_all('!\[(?:\$\w+|\w+(\.\w+)?)\]|(->|\.)\$?\w+|^\w+!', $var_ref, $match); $indexes = $match[0]; --- 1109,1118 ---- $var_ref = $parts[0]; $modifiers = isset($parts[1]) ? $parts[1] : ''; ! ! if(!empty($this->default_modifiers) && !preg_match('!(^|\|)smarty:nodefaults($|\|)!',$modifiers)) { ! $_default_mod_string = implode('|',(array)$this->default_modifiers); ! $modifiers = empty($modifiers) ? $_default_mod_string : $_default_mod_string . '|' . $modifiers; ! } ! preg_match_all('!\[(?:\$\w+|\w+(\.\w+)?)\]|(->|\.)\$?\w+|^\w+!', $var_ref, $match); $indexes = $match[0]; *************** *** 1214,1217 **** --- 1219,1228 ---- for ($i = 0, $for_max = count($modifiers); $i < $for_max; $i++) { $modifier_name = $modifiers[$i]; + + if($modifier_name == 'smarty') { + // skip smarty modifier + continue; + } + preg_match_all('!:(' . $qstr_regexp . '|[^:]+)!', $modifier_arg_strings[$i], $match); $modifier_args = $match[1]; *************** *** 1223,1227 **** $map_array = 'true'; } ! $this->_add_plugin('modifier', $modifier_name); --- 1234,1238 ---- $map_array = 'true'; } ! $this->_add_plugin('modifier', $modifier_name); Index: auth.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/includes/auth.php,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -r1.18 -r1.19 *** auth.php 10 Aug 2002 20:41:33 -0000 1.18 --- auth.php 14 Aug 2002 17:44:06 -0000 1.19 *************** *** 42,45 **** --- 42,46 ---- var $mpcookie; + var $first_login; function session_cleanup() { *************** *** 60,68 **** function AuthUser() { ! global $MPCONF, $Functions, $DBA, $HTTP_POST_VARS; $this->session_cleanup(); ! if(empty($HTTP_POST_VARS['username'])) { session_start(); } --- 61,69 ---- function AuthUser() { ! global $MPCONF, $Functions, $DBA; $this->session_cleanup(); ! if(empty($_POST['username'])) { session_start(); } *************** *** 72,84 **** } ! if(($HTTP_POST_VARS['username'] != "") && ($HTTP_POST_VARS['password'] != "")) { $new_key = $Functions->createHash(); session_id($new_key); session_start(); ! $enc_password = md5($HTTP_POST_VARS['password']); ! $result = $DBA->query('SELECT * FROM ' . $MPCONF['DB']['table_prefix'] . "users WHERE username='{$HTTP_POST_VARS['username']}' AND password='$enc_password'"); $num_rows = $DBA->num_rows($result); if($num_rows > 0) { --- 73,86 ---- } ! if(($_POST['username'] != "") && ($_POST['password'] != "")) { + $result = $DBA->query("DELETE FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE username = " . $_POST['username']); $new_key = $Functions->createHash(); session_id($new_key); session_start(); ! $enc_password = md5($_POST['password']); ! $result = $DBA->query('SELECT * FROM ' . $MPCONF['DB']['table_prefix'] . "users WHERE username='{$_POST['username']}' AND password='$enc_password'"); $num_rows = $DBA->num_rows($result); if($num_rows > 0) { *************** *** 88,91 **** --- 90,95 ---- if($MPCONF['USR']['active'] == 1) { + $this->first_login = 1; + unset($_SESSION['user_array']); $_SESSION['user_array'] = $user_array; *************** *** 108,114 **** $this->AuthAdmin(); ! //} elseif($HTTP_COOKIE_VARS[$MPCONF['SES']['extcookie']]) { ! //$this->mpcookie = $HTTP_COOKIE_VARS[$MPCONF['SES']['extcookie']]; //$authstring = $this->mpcookie; --- 112,118 ---- $this->AuthAdmin(); ! //} elseif($_COOKIE[$MPCONF['SES']['extcookie']]) { ! //$this->mpcookie = $_COOKIE[$MPCONF['SES']['extcookie']]; //$authstring = $this->mpcookie; *************** *** 121,125 **** //$userdata = $this->FetchUserVars($sess_user); ! //$DBA->query("INSERT INTO " . $MPCONF['DB']['table_prefix'] . "sessions (sesskey, expiretime, userid, username) VALUES('$sesskey', '" . $this->cookietime . "', " . $userdata['user_id'] . ", '$sess_user')"); //setcookie($cookiename, $sess_user, $this->cookietime, $MPCONF['GEN']['uri']); --- 125,129 ---- //$userdata = $this->FetchUserVars($sess_user); ! //$DBA->query("INSERT INTO " . $MPCONF['DB']['table_prefix'] . "sessions (sesskey, expiretime, user_id) VALUES('$sesskey', '" . $this->cookietime . "', " . $userdata['user_id'] . ", )"); //setcookie($cookiename, $sess_user, $this->cookietime, $MPCONF['GEN']['uri']); |
From: Brian R. <hei...@us...> - 2002-08-14 17:44:10
|
Update of /cvsroot/phpmp/phpMP/modules In directory usw-pr-cvs1:/tmp/cvs-serv26026/modules Modified Files: online_users_side.php Log Message: Upgraded Smarty template engine to 2.3.0. Fixed small online users problem (again) and changed all HTTP______VARS calls in auth to _POST or the like. Index: online_users_side.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/modules/online_users_side.php,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** online_users_side.php 14 Aug 2002 06:24:24 -0000 1.3 --- online_users_side.php 14 Aug 2002 17:44:07 -0000 1.4 *************** *** 9,13 **** $anon_qry = $DBA->query("SELECT user_id FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE user_id = '1' AND expiretime > " . $five_min_mark); ! $mem_qry = $DBA->query("SELECT user_id FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE user_id != '1' AND expiretime > " . $five_min_mark); $anon_num = $DBA->num_rows($anon_qry); --- 9,13 ---- $anon_qry = $DBA->query("SELECT user_id FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE user_id = '1' AND expiretime > " . $five_min_mark); ! $mem_qry = $DBA->query("SELECT user_id FROM " . $MPCONF['DB']['table_prefix'] . "sessions WHERE user_id > '1' AND expiretime > " . $five_min_mark); $anon_num = $DBA->num_rows($anon_qry); |
From: Brian R. <hei...@us...> - 2002-08-14 06:28:17
|
Update of /cvsroot/phpmp/phpMP/templates/TealMP In directory usw-pr-cvs1:/tmp/cvs-serv8959/templates/TealMP Modified Files: general.tpl index.tpl register.tpl register_fin.tpl Log Message: Continued the addition of the {$page_title} implementation. Index: general.tpl =================================================================== RCS file: /cvsroot/phpmp/phpMP/templates/TealMP/general.tpl,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** general.tpl 12 Aug 2002 01:08:29 -0000 1.1 --- general.tpl 14 Aug 2002 06:28:14 -0000 1.2 *************** *** 17,21 **** <tr> <td width="100%" class="tabletitle" bordercolor=black> ! <font color=white><small>.:: {$site_name} :: {$general_subject} ::.</small></font> </td> </tr> --- 17,21 ---- <tr> <td width="100%" class="tabletitle" bordercolor=black> ! <font color=white><small>.:: {$site_name} :: {$page_title} ::.</small></font> </td> </tr> Index: index.tpl =================================================================== RCS file: /cvsroot/phpmp/phpMP/templates/TealMP/index.tpl,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** index.tpl 12 Aug 2002 01:08:29 -0000 1.9 --- index.tpl 14 Aug 2002 06:28:14 -0000 1.10 *************** *** 17,21 **** <tr> <td width="100%" class="tabletitle" bordercolor=black> ! <font color=white><small>.:: {$site_name} :: {$l_home} ::.</small></font> </td> </tr> --- 17,21 ---- <tr> <td width="100%" class="tabletitle" bordercolor=black> ! <font color=white><small>.:: {$site_name} :: {$page_title} ::.</small></font> </td> </tr> Index: register.tpl =================================================================== RCS file: /cvsroot/phpmp/phpMP/templates/TealMP/register.tpl,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** register.tpl 12 Aug 2002 01:08:29 -0000 1.3 --- register.tpl 14 Aug 2002 06:28:14 -0000 1.4 *************** *** 17,21 **** <tr> <td width="100%" class="tabletitle" bordercolor=black> ! <font color=white><small>.:: {$site_name} :: {$l_register} ::.</small></font> </td> </tr> --- 17,21 ---- <tr> <td width="100%" class="tabletitle" bordercolor=black> ! <font color=white><small>.:: {$site_name} :: {$page_title} ::.</small></font> </td> </tr> Index: register_fin.tpl =================================================================== RCS file: /cvsroot/phpmp/phpMP/templates/TealMP/register_fin.tpl,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** register_fin.tpl 12 Aug 2002 01:08:29 -0000 1.2 --- register_fin.tpl 14 Aug 2002 06:28:14 -0000 1.3 *************** *** 17,21 **** <tr> <td width="100%" class="tabletitle" bordercolor=black> ! <font color=white><small>.:: {$site_name} :: {$l_register} ::.</small></font> </td> </tr> --- 17,21 ---- <tr> <td width="100%" class="tabletitle" bordercolor=black> ! <font color=white><small>.:: {$site_name} :: {$page_title} ::.</small></font> </td> </tr> |
From: Brian R. <hei...@us...> - 2002-08-14 06:28:17
|
Update of /cvsroot/phpmp/phpMP In directory usw-pr-cvs1:/tmp/cvs-serv8959 Modified Files: profile.php Log Message: Continued the addition of the {$page_title} implementation. Index: profile.php =================================================================== RCS file: /cvsroot/phpmp/phpMP/profile.php,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** profile.php 14 Aug 2002 06:24:23 -0000 1.4 --- profile.php 14 Aug 2002 06:28:14 -0000 1.5 *************** *** 70,74 **** $Template->assign( 'page_title', $Language->lang['l_register'] ); - $Template->assign( "general_subject", $Language->lang['l_register'] ); $Template->assign( "general_message", $Language->lang['l_register_fin'] ); --- 70,73 ---- *************** *** 103,107 **** $Template->assign( 'page_title', $Language->lang['l_register'] ); - $Template->assign( "general_subject", $Language->lang['l_register'] ); $Template->assign( "general_message", $Language->lang['l_activated'] ); --- 102,105 ---- |
From: Brian R. <hei...@us...> - 2002-08-14 06:24:27
|
Update of /cvsroot/phpmp/phpMP/templates/TealMP In directory usw-pr-cvs1:/tmp/cvs-serv6721/templates/TealMP Modified Files: overall_header.tpl Log Message: Re-added page title support. One extra line in all directly-accessible files...no biggie. Fixed my idiotic mistake in online_users_side.php regarding the fetching of non-expired sessions. Should now work correctly (but not quite perfectly). Index: overall_header.tpl =================================================================== RCS file: /cvsroot/phpmp/phpMP/templates/TealMP/overall_header.tpl,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** overall_header.tpl 12 Aug 2002 01:08:29 -0000 1.4 --- overall_header.tpl 14 Aug 2002 06:24:24 -0000 1.5 *************** *** 1 **** ! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>.:: {$site_name} ::.</title> <script src="{$mpuri}templates/{$tpl_name}/js/fade.js" language="Javascript"></script> <link rel="stylesheet" href="{$mpuri}templates/{$tpl_name}/css/tpl_style.css" type="text/css" /> </head> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table class="header" width="100%" bgcolor="#0f9fbc" cellpadding="0" cellspacing="0"> <tr> <td width="300" align="left"><img src="{$mpuri}templates/{$tpl_name}/images/logo.jpg" /></td> <td width="100%" align="center" background="{$mpuri}templates/{$tpl_name}/images/topbg.jpg"><img src="{$mpuri}templates/{$tpl_name}/images/pixel.gif" /> </td> <td width="25" align="right" background="{$mpuri}templates/{$tpl_name}/images/grad_ld_lr.gif"><img src="{$mpuri}templates/{$tpl_name}/images/grad_ld_lr.gif" /> </td> </tr> <tr> <td width="100%" bgcolor=black colspan="5"><img src="{$mpuri}templates/{$tpl_name}/images/pixel.gif" /></td> </tr> <tr> <td width="100%" colspan="5" align="center" bgcolor="#C0C0C0"><font size="2"> {$l_nav_bar} </font> </td> </tr> <tr> <td width="100%" bgcolor=black colspan="5"><img src="{$mpuri}templates/{$tpl_name}/images/pixel.gif" /></td> </tr> </table> \ No newline at end of file --- 1 ---- ! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>.:: {$site_name} :: {$page_title} ::.</title> <script src="{$mpuri}templates/{$tpl_name}/js/fade.js" language="Javascript"></script> <link rel="stylesheet" href="{$mpuri}templates/{$tpl_name}/css/tpl_style.css" type="text/css" /> </head> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table class="header" width="100%" bgcolor="#0f9fbc" cellpadding="0" cellspacing="0"> <tr> <td width="300" align="left"><img src="{$mpuri}templates/{$tpl_name}/images/logo.jpg" /></td> <td width="100%" align="center" background="{$mpuri}templates/{$tpl_name}/images/topbg.jpg"><img src="{$mpuri}templates/{$tpl_name}/images/pixel.gif" /> </td> <td width="25" align="right" background="{$mpuri}templates/{$tpl_name}/images/grad_ld_lr.gif"><img src="{$mpuri}templates/{$tpl_name}/images/grad_ld_lr.gif" /> </td> </tr> <tr> <td width="100%" bgcolor=black colspan="5"><img src="{$mpuri}templates/{$tpl_name}/images/pixel.gif" /></td> </tr> <tr> <td width="100%" colspan="5" align="center" bgcolor="#C0C0C0"><font size="2"> {$l_nav_bar} </font> </td> </tr> <tr> <td width="100%" bgcolor=black colspan="5"><img src="{$mpuri}templates/{$tpl_name}/images/pixel.gif" /></td> </tr> </table> \ No newline at end of file |