Files
IPB/upload/sources/api/api_core.php
T
2025-12-19 00:24:35 -08:00

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;
}
}
?>