287 lines
6.5 KiB
PHP
287 lines
6.5 KiB
PHP
<?php
|
|
|
|
/*
|
|
+--------------------------------------------------------------------------
|
|
| Invision Power Board 2.1.7
|
|
| =============================================
|
|
| by Matthew Mecham
|
|
| (c) 2001 - 2005 Invision Power Services, Inc.
|
|
| http://www.invisionpower.com
|
|
| =============================================
|
|
| Web: http://www.invisionboard.com
|
|
| http://www.ibresource.ru/products/invisionpowerboard/
|
|
| Time: Tuesday 18th of July 2006 05:56:00 PM
|
|
| Release: 52f408a29988b02f45b5e6f4ba5af0ae
|
|
| Licence Info: http://www.invisionboard.com/?license
|
|
| http://www.ibresource.ru/license
|
|
+---------------------------------------------------------------------------
|
|
| INVISION POWER BOARD IS NOT FREE / OPEN SOURCE!
|
|
+---------------------------------------------------------------------------
|
|
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
|
|
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
|
|
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
|
|
+---------------------------------------------------------------------------
|
|
| > $Date: 2005-10-10 14:08:54 +0100 (Mon, 10 Oct 2005) $
|
|
| > $Revision: 23 $
|
|
| > $Author: matt $
|
|
+---------------------------------------------------------------------------
|
|
|
|
|
| > INIT (Yes, it is)
|
|
| > Basic class to initialize defines and other stuff
|
|
| > Date started: Wednesday 19th July 2005 (14:57)
|
|
|
|
|
+--------------------------------------------------------------------------
|
|
*/
|
|
|
|
/**
|
|
* INIT File
|
|
*
|
|
* Sets up globals
|
|
*
|
|
* @package InvisionPowerBoard
|
|
* @author Matt Mecham
|
|
* @copyright Invision Power Services, Inc.
|
|
* @version 2.1
|
|
*/
|
|
|
|
//-----------------------------------------------
|
|
// USER CONFIGURABLE ELEMENTS
|
|
//-----------------------------------------------
|
|
/**
|
|
* ROOT PATH
|
|
*
|
|
* If __FILE__ is not supported, try ./ and
|
|
* turn off "USE_SHUTDOWN" or manually add in
|
|
* the full path
|
|
* @since 2.0.0.2005-01-01
|
|
*/
|
|
define( 'ROOT_PATH', dirname( __FILE__ ) ."/" );
|
|
|
|
/**
|
|
* USE SHUT DOWN
|
|
*
|
|
* Enable shut down features?
|
|
* Uses PHPs register_shutdown_function to save
|
|
* low priority tasks until end of exec
|
|
* @since 2.0.0.2005-01-01
|
|
*/
|
|
define ( 'USE_SHUTDOWN', IPB_THIS_SCRIPT == 'public' ? 1 : 0 );
|
|
|
|
/**
|
|
* IPS KERNEL PATH
|
|
*
|
|
* @since 2.0.0.2005-01-01
|
|
*/
|
|
define( 'KERNEL_PATH' , ROOT_PATH.'ips_kernel/' );
|
|
|
|
/**
|
|
* LEGACY MODE
|
|
*
|
|
* Legacy mode? Will enable hacks for 2.0 to work
|
|
* with a little modification
|
|
* @since 2.1.0.2005-07-12
|
|
*/
|
|
define( 'LEGACY_MODE', 0 );
|
|
|
|
/**
|
|
* USE MODULES
|
|
*
|
|
* Enable module usage?
|
|
* (Vital for some mods and IPB enhancements)
|
|
* @since 2.0.0.2005-01-01
|
|
*/
|
|
define ( 'USE_MODULES', 1 );
|
|
|
|
/**
|
|
* CUSTOM ERROR
|
|
*
|
|
* Enable custom error handling?
|
|
* Useful to trap skin errors, etc
|
|
* @since 2.0.0.2005-01-01
|
|
*/
|
|
define( 'CUSTOM_ERROR', 1 );
|
|
|
|
/**
|
|
* TRIAL VERSION
|
|
*
|
|
* Seriously, like, leave this alone
|
|
* @since 2.0.0.2005-01-01
|
|
*/
|
|
define( 'TRIAL_VERSION', 0 );
|
|
|
|
//-----------------------------------------------
|
|
// NO USER EDITABLE SECTIONS BELOW
|
|
//-----------------------------------------------
|
|
|
|
@set_magic_quotes_runtime(0);
|
|
error_reporting (E_ERROR | E_WARNING | E_PARSE);
|
|
|
|
/**
|
|
* IN IPB
|
|
*
|
|
* @since 2.0.0.2005-01-01
|
|
*/
|
|
define ( 'IN_IPB', 1 );
|
|
|
|
/**
|
|
* IN ACP
|
|
*
|
|
* @since 2.0.0.2005-01-01
|
|
*/
|
|
define ( 'IN_ACP', 1 );
|
|
|
|
/**
|
|
* DEV MODE
|
|
*
|
|
* Seriously, like, leave this alone too
|
|
* @since 2.0.0.2005-01-01
|
|
*/
|
|
define ( 'IN_DEV', 0 );
|
|
|
|
/**
|
|
* SAFE MODE
|
|
*
|
|
* Seriously, like, leave this alone too
|
|
* @since 2.0.0.2005-01-01
|
|
*/
|
|
if ( IPB_THIS_SCRIPT != 'public' )
|
|
{
|
|
if ( function_exists('ini_get') )
|
|
{
|
|
define ( 'SAFE_MODE_ON', @ini_get("safe_mode") ? 1 : 0 );
|
|
}
|
|
else
|
|
{
|
|
define ( 'SAFE_MODE_ON', 1 );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
define ( 'SAFE_MODE_ON', 0 );
|
|
}
|
|
|
|
/**
|
|
* INITIATED
|
|
*
|
|
* Seriously, like, leave this alone too
|
|
* @since 2.1.0.2005-07-19
|
|
*/
|
|
define ( 'IPB_INIT_DONE', 1 );
|
|
|
|
//-----------------------------------------------
|
|
// Use custom handler?
|
|
//-----------------------------------------------
|
|
|
|
if ( CUSTOM_ERROR )
|
|
{
|
|
set_error_handler("my_error_handler");
|
|
}
|
|
|
|
//===========================================================================
|
|
// DEBUG CLASS
|
|
//===========================================================================
|
|
|
|
/**
|
|
* Debug class
|
|
*
|
|
* @package InvisionPowerBoard
|
|
* @author Matt Mecham
|
|
* @version 2.1
|
|
*/
|
|
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;
|
|
}
|
|
}
|
|
|
|
/*-------------------------------------------------------------------------*/
|
|
// GLOBAL ROUTINES
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
/**
|
|
* Fatal error
|
|
*
|
|
* @param string Message
|
|
* @param string Help
|
|
* @return void
|
|
*/
|
|
function fatal_error($message="", $help="")
|
|
{
|
|
echo("$message<br><br>$help");
|
|
exit;
|
|
}
|
|
|
|
/*-------------------------------------------------------------------------*/
|
|
// Custom error handler
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
/**
|
|
* Custom error handler
|
|
*
|
|
* @param integer Error number
|
|
* @param string Error string
|
|
* @param string Error file
|
|
* @param string Error line number
|
|
* @return void
|
|
*/
|
|
function my_error_handler( $errno, $errstr, $errfile, $errline )
|
|
{
|
|
// Did we turn off errors with @?
|
|
|
|
if ( ! error_reporting() )
|
|
{
|
|
return;
|
|
}
|
|
|
|
$errfile = str_replace( @getcwd(), "", $errfile );
|
|
|
|
switch ($errno)
|
|
{
|
|
case E_ERROR:
|
|
echo "<b>IPB Îøèáêà</b> [$errno] $errstr (Ñòðîêà: $errline ôàéëà $errfile)<br />\n";
|
|
exit(1);
|
|
break;
|
|
case E_WARNING:
|
|
if ( strstr( $errstr, 'load_template(./skin_cache/cacheid_' ) )
|
|
{
|
|
if ( IPB_THIS_SCRIPT != 'admin' )
|
|
{
|
|
echo "<div style='font-family:sans-serif'><b>IPB Îøèáêà øàáëîíà:</b> Íåâîçìîæíî çàãðóçèòü òðåáóåìûé øàáëîí.
|
|
<br /><br />Âî-ïåðâûõ, ïðîâåðüòå è óäàëèòå ëþáûå äðóãèå ñòèëåâûå íàñòðîéêè, íàæàâ <a href='index.php?setskin&id=0'>ñþäà</a>
|
|
<br /><br />Ïîòîì, ïîæàëóéñòà, çàéäèòå â <a href='admin.php'>àäìèíöåíòð ôîðóìà</a> è èñïðàâüòå ýòîò øàáëîí.
|
|
<br /><br /><span style='font-size:90%;color:gray'>Îøèáêà: $errstr</span></div>";
|
|
}
|
|
else
|
|
{
|
|
skin_emergency();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
echo "<b>IPB Ïðåäóïðåæäåíèå</b> [$errno] $errstr (Ñòðîêà: $errline ôàéëà $errfile)<br />\n";
|
|
}
|
|
break;
|
|
default:
|
|
//Do nothing
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
?>
|