265 lines
6.8 KiB
PHP
265 lines
6.8 KiB
PHP
<?php
|
|
|
|
/*
|
|
+--------------------------------------------------------------------------
|
|
| Invision Power Board 2.2.2
|
|
| =============================================
|
|
| by Matthew Mecham
|
|
| (c) 2001 - 2006 Invision Power Services, Inc.
|
|
| http://www.invisionpower.com
|
|
| =============================================
|
|
| Web: http://www.invisionboard.com
|
|
| http://www.ibresource.ru/products/invisionpowerboard/
|
|
| Time: Monday 05th of March 2007 10:10:54 PM
|
|
| Release: e3790216629e5a2aaf37070b32237f06
|
|
| 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: 2006-09-22 05:28:54 -0500 (Fri, 22 Sep 2006) $
|
|
| > $Revision: 567 $
|
|
| > $Author: matt $
|
|
+---------------------------------------------------------------------------
|
|
|
|
|
| > API: Core functions
|
|
| > Module written by Matt Mecham
|
|
| > Date started: Wednesday 19th July 2005 (14:57)
|
|
|
|
|
+--------------------------------------------------------------------------
|
|
*/
|
|
|
|
/**
|
|
* API: ßÄÐÎ
|
|
*
|
|
* Äàííûé êëàññ ñîäåðæèò âñå áàçîâûå ôóíêöèè, à òàêæå âñå ôóíêöèè ïî ðàáîòå
|
|
* ñ ÿçûêàìè.
|
|
* Åñëè $ipsclass íå ïåðåäàåòñÿ â îáúåêò êëàññà, òî îáúåêò ipsclass
|
|
* èíèöèàëèçèðóåòñÿ àâòîìàòè÷åñêèþ, çàãðóæàþòñÿ âñå íåîáõîäèìûå áàçîâûå êëàññû
|
|
* è èíèöèàëèçèðóþòñÿ èõ îáúåêòû (DB, converge, forums, display, session).
|
|
* Ñîçäàåòñÿ íîâîå ïîäêëþ÷åíèå ê ÁÄ, çàãðóæàþòñÿ âñå íåîáõîäèìûå êåøè.
|
|
* Âû ìîæåòå óïðàâëÿòü ïîäêëþ÷åíèåì êëàññîâ ÷åðåç ìàññèâ
|
|
* $this->load_classes[-class-] = 1;
|
|
*
|
|
* @package InvisionPowerBoard
|
|
* @subpackage APIs
|
|
* @author Matt Mecham
|
|
* @copyright Invision Power Services, Inc.
|
|
* @version 2.1
|
|
*/
|
|
|
|
/**
|
|
* API: ßÄÐÎ
|
|
*
|
|
* Êëàññ ïðåäîñòàâëÿåò âñå áàçîâûå ìåòîäû API.
|
|
*
|
|
* @package InvisionPowerBoard
|
|
* @subpackage APIs
|
|
* @author Matt Mecham
|
|
* @version 2.1
|
|
* @since 2.1.0
|
|
*/
|
|
class api_core
|
|
{
|
|
/**
|
|
* Îáúåêò ñóïåð-êëàññà IPS
|
|
*
|
|
* @var object
|
|
*/
|
|
var $ipsclass;
|
|
|
|
/**
|
|
* API init run
|
|
*
|
|
* @var integer boolean
|
|
*/
|
|
var $init_run;
|
|
|
|
/**
|
|
* Ìàññèâ îøèáîê API
|
|
*
|
|
* @var array Errors
|
|
*/
|
|
var $api_error = array();
|
|
|
|
/**
|
|
* Ôëàã ïîëíîé çàãðóçêè API
|
|
*
|
|
* @var integer boolean
|
|
*/
|
|
var $full_load = 1;
|
|
|
|
/**
|
|
* Êîðíåâîé ïóòü äëÿ API (ãäå íàõîäÿòñÿ ôàéëû init.php/index.php)
|
|
*
|
|
* @var string Ïóòü ê êîðíåâîé äèðåêòîðèè IPB
|
|
*/
|
|
var $path_to_ipb = '../../';
|
|
|
|
/**
|
|
* Êëàññû äëÿ çàãðóçêè API
|
|
*
|
|
* @var array Êëàññû çàãðóæàåìûå ïî óìîë÷àíèþ: [print,forums,converge,session]
|
|
*/
|
|
var $load_classes = array( 'print' => 1,
|
|
'forums' => 1,
|
|
'converge' => 1,
|
|
'session' => 1 );
|
|
|
|
/*-------------------------------------------------------------------------*/
|
|
// Èíèöèàëèçàöèÿ API
|
|
/*-------------------------------------------------------------------------*/
|
|
/**
|
|
* Ïðîâåðêà íàëè÷èÿ íåîáõîäèìîãî îáúåêòà ipsclass è íåîáõîäèìîñòü ïîäêëþ÷åíèÿ
|
|
* íåîáõîäèìûõ êëàññîâ
|
|
*
|
|
* @return void;
|
|
*/
|
|
function api_init()
|
|
{
|
|
//-------------------------------
|
|
// Already loaded?
|
|
//-------------------------------
|
|
|
|
if ( $this->init_run OR ! $this->full_load )
|
|
{
|
|
return;
|
|
}
|
|
|
|
//-------------------------------
|
|
// INIT run?
|
|
//-------------------------------
|
|
|
|
if ( ! defined( 'IPB_INIT_DONE' ) )
|
|
{
|
|
define( 'IPB_THIS_SCRIPT', 'api' );
|
|
|
|
require_once( $this->path_to_ipb.'init.php' );
|
|
}
|
|
|
|
//-------------------------------
|
|
// IPS Class an object?
|
|
//-------------------------------
|
|
|
|
if ( ! is_object( $this->ipsclass ) )
|
|
{
|
|
$INFO = array();
|
|
|
|
//--------------------------------
|
|
// Load our classes
|
|
//--------------------------------
|
|
|
|
require_once ROOT_PATH . "sources/ipsclass.php";
|
|
require_once ROOT_PATH . "conf_global.php";
|
|
|
|
# Initiate super-class
|
|
$ipsclass = new ipsclass();
|
|
$ipsclass->vars = $INFO;
|
|
|
|
$this->ipsclass =& $ipsclass;
|
|
$this->ipsclass->base_url = $this->ipsclass->vars['board_url'].'/index.'.$this->ipsclass->vars['php_ext'].'?';
|
|
}
|
|
|
|
//-------------------------------
|
|
// DB connected?
|
|
//-------------------------------
|
|
|
|
if ( ! defined( 'IPSCLASS_DB_LOADED' ) )
|
|
{
|
|
$this->ipsclass->vars['sql_force_new_connection'] = 1;
|
|
$this->ipsclass->init_db_connection();
|
|
}
|
|
|
|
//-------------------------------
|
|
// DISPLAY Object?
|
|
//-------------------------------
|
|
|
|
if ( ! is_object( $this->ipsclass->print ) AND $this->load_classes['print'] )
|
|
{
|
|
require_once ROOT_PATH . "sources/classes/class_display.php";
|
|
|
|
$this->ipsclass->print = new display();
|
|
$this->ipsclass->print->ipsclass =& $this->ipsclass;
|
|
}
|
|
|
|
//-------------------------------
|
|
// SESSION Object?
|
|
//-------------------------------
|
|
|
|
if ( ! is_object( $this->ipsclass->sess ) AND $this->load_classes['session'] )
|
|
{
|
|
require_once ROOT_PATH . "sources/classes/class_session.php";
|
|
|
|
$this->ipsclass->sess = new session();
|
|
$this->ipsclass->sess->ipsclass =& $this->ipsclass;
|
|
}
|
|
|
|
//-------------------------------
|
|
// FORUMS Object?
|
|
//-------------------------------
|
|
|
|
if ( ! is_object( $this->ipsclass->forums ) AND $this->load_classes['forums'] )
|
|
{
|
|
require_once ROOT_PATH . "sources/classes/class_forums.php";
|
|
|
|
$this->ipsclass->forums = new forum_functions();
|
|
$this->ipsclass->forums->ipsclass =& $this->ipsclass;
|
|
}
|
|
|
|
//-------------------------------
|
|
// Converge Object?
|
|
//-------------------------------
|
|
|
|
if ( ! is_object( $this->ipsclass->converge ) AND $this->load_classes['converge'] )
|
|
{
|
|
require_once KERNEL_PATH . "class_converge.php";
|
|
|
|
$this->ipsclass->converge = new class_converge( $this->ipsclass->DB );
|
|
}
|
|
|
|
//-------------------------------
|
|
// Caches init?
|
|
//-------------------------------
|
|
|
|
if ( ! defined('IPSCLASS_CACHE_LOADED') )
|
|
{
|
|
$this->ipsclass->init_load_cache( array('rss_export', 'bbcode', 'attachtypes', 'badwords', 'emoticons', 'settings', 'group_cache', 'systemvars', 'skin_id_cache', 'languages', 'forum_cache', 'moderators', 'stats') );
|
|
}
|
|
|
|
if ( ! defined('IPSCLASS_INITIATED') )
|
|
{
|
|
$this->ipsclass->initiate_ipsclass();
|
|
$this->ipsclass->md5_check = $ipsclass->return_md5_check();
|
|
$this->ipsclass->parse_incoming();
|
|
|
|
if ( ! is_object( $this->ipsclass->forums ) )
|
|
{
|
|
$this->ipsclass->forums->ipsclass =& $this->ipsclass;
|
|
$this->ipsclass->forums->strip_invisible = 1;
|
|
$this->ipsclass->forums->forums_init();
|
|
}
|
|
|
|
$this->ipsclass->load_skin();
|
|
}
|
|
|
|
$this->init_run = 1;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
?>
|