Version 2.0.0

This commit is contained in:
Neo committed 2025-12-19 00:19:56 -08:00
1 parent 5699abfc0e
commit 0eecc172d9
696 files changed
+120723 -77160

No files matched your search

@@ -0,0 +1,420 @@
<?php
/*
+--------------------------------------------------------------------------
| Invision Power Board IPB Portal
| ========================================
| by Matthew Mecham
| (c) 2001 - 2004 Invision Power Services
| http://www.invisionpower.com
| ========================================
| Web: http://www.invisionboard.com
| Licence Info: http://www.invisionboard.com/?license
+---------------------------------------------------------------------------
|
| > IPB Portal Script
| > Written By Matthew Mecham
| > Date started: 1st July 2003
| > Updated: 1st July 2004 (What a coincidence!)
|
+--------------------------------------------------------------------------
*/
//-----------------------------------------------
// USER CONFIGURABLE ELEMENTS
//-----------------------------------------------
// Define the path to where the forums directory is
// located. This might be "./forums/" for example.
// Don't forget the trailing slash!
//define( 'ROOT_PATH', "./" );
define( 'ROOT_PATH', "./forums/" );
define( 'KERNEL_PATH', ROOT_PATH.'ips_kernel/' );
// Define the URL to this script. If you're happy to
// use relative URLs - you can leave this blank.
// You can also rename the script here.
$this_script = 'index.php';
// Enable module usage?
// (Vital for some mods and IPB enhancements)
define ( 'USE_MODULES', 1 );
// Enable shut down features?
// Uses PHPs register_shutdown_function to save
// low priority tasks until end of exec
define ( 'USE_SHUTDOWN', 0 );
//-----------------------------------------------
// NO USER EDITABLE SECTIONS BELOW
//-----------------------------------------------
define ( 'IN_IPB', 1 );
define ( 'IN_DEV', 0 );
error_reporting (E_ERROR | E_WARNING | E_PARSE);
set_magic_quotes_runtime(0);
//===========================================================================
// DEBUG CLASS
//===========================================================================
class Debug
{
function startTimer()
{
global $starttime;
$mtime = microtime ();
$mtime = explode (' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
}
function endTimer()
{
global $starttime;
$mtime = microtime ();
$mtime = explode (' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = round (($endtime - $starttime), 5);
return $totaltime;
}
}
//===========================================================================
// INFO CLASS
//===========================================================================
class info {
var $member = array();
var $input = array();
var $session_id = "";
var $base_url = "";
var $vars = "";
var $lang_id = "en";
var $skin = "";
var $lang = "";
var $server_load = 0;
var $version = "v2.0.0 ";
var $lastclick = "";
var $location = "";
var $debug_html = "";
var $perm_id = "";
var $forum_read = array();
var $topic_cache = "";
var $session_type = "";
var $skin_global = "";
var $loaded_templates = array();
var $converge = "";
function info()
{
global $sess, $std, $DB, $INFO;
$this->vars = &$INFO;
$this->vars['AVATARS_URL'] = 'style_avatars';
$this->vars['EMOTICONS_URL'] = 'style_emoticons/<#EMO_DIR#>';
$this->vars['mime_img'] = 'style_images/<#IMG_DIR#>';
}
}
//===========================================================================
// MAIN PROGRAM
//===========================================================================
//--------------------------------
// Import $INFO, now!
//--------------------------------
$INFO = array();
require ROOT_PATH."conf_global.php";
//--------------------------------
// The clocks a' tickin'
//--------------------------------
$Debug = new Debug;
$Debug->startTimer();
//--------------------------------
// Load the DB driver and such
//--------------------------------
$INFO['sql_driver'] = ! $INFO['sql_driver'] ? 'mysql' : strtolower($INFO['sql_driver']);
require ( KERNEL_PATH.'class_db_'.$INFO['sql_driver'].".php" );
$DB = new db_driver;
$DB->obj['sql_database'] = $INFO['sql_database'];
$DB->obj['sql_user'] = $INFO['sql_user'];
$DB->obj['sql_pass'] = $INFO['sql_pass'];
$DB->obj['sql_host'] = $INFO['sql_host'];
$DB->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix'];
$DB->obj['query_cache_file'] = ROOT_PATH.'sources/sql/'.$INFO['sql_driver'].'_queries.php';
$DB->obj['use_shutdown'] = USE_SHUTDOWN;
//-----------------------------------
// Required vars?
//-----------------------------------
if ( is_array( $DB->connect_vars ) and count( $DB->connect_vars ) )
{
foreach( $DB->connect_vars as $k => $v )
{
$DB->connect_vars[ $k ] = $INFO[ $k ];
}
}
//--------------------------------
// Get a DB connection
//--------------------------------
$DB->connect();
//--------------------------------
// Make CONSTANT
//--------------------------------
define( 'SQL_PREFIX', $DB->obj['sql_tbl_prefix'] );
define( 'SQL_DRIVER', $INFO['sql_driver'] );
//--------------------------------
// Wrap it all up in a nice easy to
// transport super class
//--------------------------------
$ibforums = new info();
//--------------------------------
// Require our global functions
//--------------------------------
require ROOT_PATH."sources/functions.php";
require ROOT_PATH."sources/classes/class_display.php";
require ROOT_PATH."sources/classes/class_session.php";
require ROOT_PATH."sources/classes/class_forums.php";
require KERNEL_PATH."class_converge.php";
$std = new FUNC;
$print = new display();
$sess = new session();
$forums = new forum_functions();
//--------------------------------
// Set up our vars
//--------------------------------
$ibforums->input = $std->parse_incoming();
//--------------------------------
// Set converge
//--------------------------------
$ibforums->converge = new class_converge( $DB );
//===========================================================================
// Get cache...
//===========================================================================
$DB->simple_construct( array( 'select' => '*', 'from' => 'cache_store', 'where' => "cs_key IN ( 'badwords', 'emoticons', 'attachtypes','bbcode', 'multimod','ranks','profilefields', 'banfilters', 'settings', 'group_cache', 'systemvars', 'skin_id_cache', 'forum_cache', 'moderators', 'stats', 'languages' )" ) );
$DB->simple_exec();
while ( $r = $DB->fetch_row() )
{
if ( $r['cs_key'] == 'settings' )
{
$tmp = unserialize(stripslashes($r['cs_value']));
if ( is_array( $tmp ) and count( $tmp ) )
{
foreach( $tmp as $k => $v )
{
$ibforums->vars[ $k ] = $v;
}
}
unset( $tmp );
}
else
{
if ( $r['cs_array'] )
{
$ibforums->cache[ $r['cs_key'] ] = unserialize(stripslashes($r['cs_value']));
}
else
{
$ibforums->cache[ $r['cs_key'] ] = $r['cs_value'];
}
}
}
if ( ! isset( $ibforums->cache['systemvars'] ) )
{
$DB->simple_exec_query( array( 'delete' => 'cache_store', 'where' => "cs_key='systemvars'" ) );
$DB->do_insert( 'cache_store', array( 'cs_key' => 'systemvars', 'cs_value' => addslashes(serialize(array())), 'cs_array' => 1 ) );
}
//--------------------------------
// Set debug mode
//--------------------------------
$DB->obj['debug'] = ($ibforums->vars['sql_debug'] == 1) ? intval($_GET['debug']) : 0;
//--------------------------------
// Initialize the FUNC
//--------------------------------
$std->FUNC_init();
//--------------------------------
// The rest :D
//--------------------------------
$ibforums->member = $sess->authorise();
$std->load_skin();
$ibforums->lastclick = $sess->last_click;
$ibforums->location = $sess->location;
$ibforums->session_id = $sess->session_id; // Used in URLs
$ibforums->my_session = $sess->session_id; // Used in code
//--------------------------------
// Initialize the forums
//--------------------------------
//--------------------------------
// Set up cache path
//--------------------------------
if ( $ibforums->vars['ipb_cache_path'] )
{
define( 'CACHE_PATH', $ibforums->vars['ipb_cache_path'] );
}
else
{
define( 'CACHE_PATH', ROOT_PATH );
}
$forums->strip_invisible = 1;
$forums->forums_init();
list($ppu,$tpu) = explode( "&", $ibforums->member['view_prefs'] );
$ibforums->vars['display_max_topics'] = ($tpu > 0) ? $tpu : $ibforums->vars['display_max_topics'];
$ibforums->vars['display_max_posts'] = ($ppu > 0) ? $ppu : $ibforums->vars['display_max_posts'];
//===========================================================================
// Set up the session ID stuff
//===========================================================================
if ( $ibforums->session_type == 'cookie' )
{
$ibforums->session_id = "";
$ibforums->base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?';
}
else
{
$ibforums->base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&amp;';
}
$ibforums->js_base_url = $ibforums->vars['board_url'].'/index.'.$ibforums->vars['php_ext'].'?s='.$ibforums->session_id.'&';
//--------------------------------
// Set up the forum_read cookie
//--------------------------------
$std->hdl_forum_read_cookie();
//===========================================================================
// Set up defaults
//===========================================================================
$ibforums->skin_id = $ibforums->skin['_setid'];
$ibforums->vars['img_url'] = 'style_images/' . $ibforums->skin['_imagedir'];
//--------------------------------
// Set up our language choice
//--------------------------------
if ($ibforums->vars['default_language'] == "")
{
$ibforums->vars['default_language'] = 'en';
}
//--------------------------------
// Did we choose a language?
//--------------------------------
If ( $ibforums->input['setlanguage'] and $ibforums->input['langid'] and $ibforums->member['id'] )
{
if ( is_array( $ibforums->cache['languages'] ) and count( $ibforums->cache['languages'] ) )
{
foreach( $ibforums->cache['languages'] as $idx => $data )
{
if ( $data['ldir'] == $ibforums->input['langid'] )
{
$DB->do_update( 'members', array( 'language' => $data['ldir'] ), 'id='.$ibforums->member['id'] );
$ibforums->member['language'] = $data['ldir'];
}
}
}
}
$ibforums->lang_id = $ibforums->member['language'] ? $ibforums->member['language'] : $ibforums->vars['default_language'];
if ( ($ibforums->lang_id != $ibforums->vars['default_language']) and (! is_dir( ROOT_PATH."lang/".$ibforums->lang_id ) ) )
{
$ibforums->lang_id = $ibforums->vars['default_language'];
}
$ibforums->lang = $std->load_words($ibforums->lang, 'lang_global', $ibforums->lang_id);
//--------------------------------
// Upload dir?
//--------------------------------
$ibforums->vars['upload_dir'] = $ibforums->vars['upload_dir'] ? $ibforums->vars['upload_dir'] : ROOT_PATH.'uploads';
//===========================================================================
// DECONSTRUCTOR
//===========================================================================
if ( USE_SHUTDOWN and $ibforums->input['act'] != 'task' )
{
chdir( ROOT_PATH );
$ROOT_PATH = getcwd();
register_shutdown_function( array( &$std, 'my_deconstructor') );
}
//--------------------------------
// Require and run
//--------------------------------
require ROOT_PATH."sources/ipbportal.php";
$run = new ipdl();
$run->auto_run();
//+-------------------------------------------------
// GLOBAL ROUTINES
//+-------------------------------------------------
function fatal_error($message="", $help="") {
echo("$message<br><br>$help");
exit;
}
?>
@@ -0,0 +1,41 @@
Invision Power Portal
---------------------------
Installation Snyopsis
.....................
Open up index_rename.php, edit the variables at the top save and upload to your root public_html / www folder.
If you're installing this in a different directory to your IPB, renamed 'index_rename.php' to 'index.php'. It's named as
such by default to ensure that you do not overwrite an existing file named the same.
INSTALLATION
------------
This guide assumes that you have installed IPB in /forums/ and wish for the portal to be the first page your visitors see.
Open up index.php and edit the path to where the forums directory is:
define( 'ROOT_PATH', "./forums/" );
This is set to "forums" by default. If you had your IPB installed at http://www.domain.com/chat/ you'd need to make sure you have:
define( 'ROOT_PATH', "./chat/" );
Save the file and upload it to your root web directory folder, often called "public_html" or "www".
SETTING UP
----------
Before you can use IPB Portal, you'll need to make sure you've switched it on from the ACP. If you don't do this, you may
receive PHP errors from index.php.
Simply log into your forums ACP and expand the "System Settings" sub-menu and click on "View all general settings" and then
find "IPB Portal".
That's it, you're all done!