#2360 Autoload / auto-initialization of classes / objects
This commit is contained in:
parent
875f17ea85
commit
33a7b4d2a2
|
@ -106,6 +106,17 @@ function _getNumArr($start, $end, $step=1)
|
||||||
return $arr;
|
return $arr;
|
||||||
} // fn _getNumArr
|
} // fn _getNumArr
|
||||||
|
|
||||||
|
function __autoload($p_className)
|
||||||
|
{
|
||||||
|
foreach (uiBase::$m_classMapping as $item) {
|
||||||
|
if (strtolower($p_className) == $item['class']) {
|
||||||
|
$class_filename = $item['file'];
|
||||||
|
require_once(dirname(__FILE__).'/'.$class_filename);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HTML User Interface module
|
* HTML User Interface module
|
||||||
|
@ -125,17 +136,17 @@ class uiBase
|
||||||
/**
|
/**
|
||||||
* @var uiScratchPad
|
* @var uiScratchPad
|
||||||
*/
|
*/
|
||||||
public $SCRATCHPAD;
|
private $SCRATCHPAD;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var uiSearch
|
* @var uiSearch
|
||||||
*/
|
*/
|
||||||
public $SEARCH;
|
private $SEARCH;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var uiBrowse
|
* @var uiBrowse
|
||||||
*/
|
*/
|
||||||
public $BROWSE;
|
private $BROWSE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @todo loading HUBBROWSE on every page load slows things down
|
* @todo loading HUBBROWSE on every page load slows things down
|
||||||
|
@ -143,37 +154,37 @@ class uiBase
|
||||||
*
|
*
|
||||||
* @var uiHubBrowse
|
* @var uiHubBrowse
|
||||||
*/
|
*/
|
||||||
public $HUBBROWSE;
|
private $HUBBROWSE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var uiHubSearch
|
* @var uiHubSearch
|
||||||
*/
|
*/
|
||||||
public $HUBSEARCH;
|
private $HUBSEARCH;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var uiPlaylist
|
* @var uiPlaylist
|
||||||
*/
|
*/
|
||||||
public $PLAYLIST;
|
private $PLAYLIST;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var uiScheduler
|
* @var uiScheduler
|
||||||
*/
|
*/
|
||||||
public $SCHEDULER;
|
private $SCHEDULER;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var uiSubjects
|
* @var uiSubjects
|
||||||
*/
|
*/
|
||||||
public $SUBJECTS;
|
private $SUBJECTS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var uiExchange
|
* @var uiExchange
|
||||||
*/
|
*/
|
||||||
public $EXCHANGE;
|
private $EXCHANGE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var uiTransfers
|
* @var uiTransfers
|
||||||
*/
|
*/
|
||||||
public $TRANSFERS;
|
private $TRANSFERS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
|
@ -207,6 +218,28 @@ class uiBase
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public $alertMsg;
|
public $alertMsg;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This mapping keeps relation between uiBase::properties,
|
||||||
|
* class names and filenames and is used in
|
||||||
|
* __autoload() and uiBase::__get() functions.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public static $m_classMapping = array(
|
||||||
|
'SCRATCHPAD' => array('class' => 'uiscratchpad', 'file' => 'ui_scratchpad.class.php'),
|
||||||
|
'SEARCH' => array('class' => 'uisearch', 'file' => 'ui_search.class.php'),
|
||||||
|
'BROWSE' => array('class' => 'uibrowse', 'file' => 'ui_browse.class.php'),
|
||||||
|
'HUBBROWSE' => array('class' => 'uihubbrowse', 'file' => 'ui_hubBrowse.class.php'),
|
||||||
|
'HUBSEARCH' => array('class' => 'uihubsearch', 'file' => 'ui_hubSearch.class.php'),
|
||||||
|
'PLAYLIST' => array('class' => 'uiplaylist', 'file' => 'ui_playlist.class.php'),
|
||||||
|
'SCHEDULER' => array('class' => 'uischeduler', 'file' => 'ui_scheduler.class.php'),
|
||||||
|
'SUBJECTS' => array('class' => 'uisubjects', 'file' => 'ui_subjects.class.php'),
|
||||||
|
'EXCHANGE' => array('class' => 'uiexchange', 'file' => 'ui_exchange.class.php'),
|
||||||
|
'TRANSFERS' => array('class' => 'uitransfers', 'file' => 'ui_transfers.class.php'),
|
||||||
|
'CALENDAR' => array('class' => 'uicalendar', 'file' => 'ui_calendar.class.php'),
|
||||||
|
'JSCOM' => array('class' => 'jscom', 'file' => 'ui_jscom.php')
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -248,16 +281,27 @@ class uiBase
|
||||||
public function init()
|
public function init()
|
||||||
{
|
{
|
||||||
$this->STATIONPREFS =& $_SESSION[UI_STATIONINFO_SESSNAME];
|
$this->STATIONPREFS =& $_SESSION[UI_STATIONINFO_SESSNAME];
|
||||||
$this->SCRATCHPAD = new uiScratchPad($this);
|
}
|
||||||
$this->SEARCH = new uiSearch($this);
|
|
||||||
$this->BROWSE = new uiBrowse($this);
|
/**
|
||||||
$this->HUBBROWSE = new uiHubBrowse($this);
|
* Dynamically initialize uiBase properties,
|
||||||
$this->HUBSEARCH = new uiHubSearch($this);
|
* which keep objects (uiBase->SEARCH, $uiBase->BROWSE etc)
|
||||||
$this->PLAYLIST = new uiPlaylist($this);
|
*
|
||||||
$this->SCHEDULER = new uiScheduler($this);
|
* @param unknown_type $p_class
|
||||||
$this->SUBJECTS = new uiSubjects($this);
|
* @return unknown
|
||||||
$this->EXCHANGE = new uiExchange($this);
|
*/
|
||||||
$this->TRANSFERS = new uiTransfers($this);
|
public function __get($p_class)
|
||||||
|
{
|
||||||
|
if (strtoupper($p_class !== $p_class)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!is_object($this->$p_class)) {
|
||||||
|
if ($class_name = uiBase::$m_classMapping[$p_class]['class']) {
|
||||||
|
$this->$p_class = new $class_name($this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->$p_class;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -149,21 +149,10 @@ $CC_CONFIG = array_merge($CC_CONFIG,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
require_once(dirname(__FILE__).'/ui_base.inc.php');
|
require_once(dirname(__FILE__).'/ui_base.inc.php');
|
||||||
require_once(dirname(__FILE__).'/ui_scratchpad.class.php');
|
|
||||||
require_once(dirname(__FILE__).'/ui_playlist.class.php');
|
|
||||||
require_once(dirname(__FILE__).'/ui_search.class.php');
|
|
||||||
require_once(dirname(__FILE__).'/ui_browse.class.php');
|
|
||||||
require_once(dirname(__FILE__).'/ui_hubBrowse.class.php');
|
|
||||||
require_once(dirname(__FILE__).'/ui_hubSearch.class.php');
|
|
||||||
require_once(dirname(__FILE__).'/ui_transfers.class.php');
|
|
||||||
require_once('../../../storageServer/var/GreenBox.php');
|
require_once('../../../storageServer/var/GreenBox.php');
|
||||||
require_once(dirname(__FILE__).'/formmask/generic.inc.php');
|
require_once(dirname(__FILE__).'/formmask/generic.inc.php');
|
||||||
require_once(dirname(__FILE__).'/ui_calendar.class.php');
|
|
||||||
require_once(dirname(__FILE__).'/ui_scheduler.class.php');
|
|
||||||
require_once(dirname(__FILE__).'/ui_subjects.class.php');
|
|
||||||
require_once(dirname(__FILE__).'/ui_jscom.php');
|
|
||||||
require_once(dirname(__FILE__).'/ui_exchange.class.php');
|
|
||||||
|
|
||||||
require_once('DB.php');
|
require_once('DB.php');
|
||||||
require_once('HTML/QuickForm.php');
|
require_once('HTML/QuickForm.php');
|
||||||
|
|
Loading…
Reference in New Issue