HEX
Server: Apache/2.4.59 (Debian)
System: Linux skycube.cz 4.19.0-25-amd64 #1 SMP Debian 4.19.289-2 (2023-08-08) x86_64
User: ilya (534)
PHP: 7.3.31-1~deb10u7
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/ilya/data/www/kamforum.ru/sources/api/api_core.php
<?php

/*
+--------------------------------------------------------------------------
|   Invision Power Board v2.1.5
|   =============================================
|   by Matthew Mecham
|   (c) 2001 - 2004 Invision Power Services, Inc.
|   http://www.invisionpower.com
|   =============================================
|   Web: http://www.invisionboard.com
|   Time: Sun, 09 Oct 2005 11:51:26 GMT
|   Release: 1a47e28f0443faa9f14d0c0a45151e54
|   Licence Info: http://www.invisionboard.com/?license
+---------------------------------------------------------------------------
|
|   > API: Core functions
|   > Module written by Matt Mecham
|   > Date started: Wednesday 19th July 2005 (14:57)
|
+--------------------------------------------------------------------------
*/

/**
* API: CORE
*
* This class deals with all core functions.
* This class deals with all available language functions.
* If $ipsclass is passed to it, then it will skip the init
* However, if $ipsclass is not an object, it'll initialize
* the $ipsclass object, and by default load all the required
* IPB classes and init them (DB, converge, forums, display, session)
* and it'll also get a new DB connection and load settings and caches.
* You can alter which classes are loaded via the $this->load_classes[-class-] = 1;
* array
*
* @package		InvisionPowerBoard
* @subpackage	APIs
* @author		Matt Mecham
* @copyright	Invision Power Services, Inc.
* @version		2.1
*/

/**
* API: CORE
*
* This class deals with all core functions.
*
* @package		InvisionPowerBoard
* @subpackage	APIs
* @author  	 	Matt Mecham
* @version		2.1
* @since		2.1.0
*/
class api_core
{
	/**
	* IPS Class Object
	*
	* @var object
	*/
	var $ipsclass;
	
	/**
	* API init run
	*
	* @var integer boolean
	*/
	var $init_run;
	
	/**
	* API Error string
	*
	* @var array Errors
	*/
	var $api_error = array();
	
	/**
	* API Load full?
	*
	* @var integer boolean
	*/
	var $full_load = 1;
	
	/**
	* API Path to IPB root (where init.php/index.php is)
	*
	* @var string Path to IPB root folder
	*/
	var $path_to_ipb = './';
	
	/**
	* API Load classes
	*
	* @var array Classes to load default: [display,forums,converge,session]
	*/
	var $load_classes = array( 'display'  => 1,
							   'forums'   => 1,
							   'converge' => 1,
							   'session'  => 1 );
							   
	/*-------------------------------------------------------------------------*/
	// API init
	/*-------------------------------------------------------------------------*/
	/**
	* Determines if we have required ipsclass vars
	* on hand
	*
	* @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', 'badwords', 'emoticons', 'settings', 'group_cache', 'systemvars', 'skin_id_cache', '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;
	}
	
	
	
	
	
}








?>