public static final function init($reset = false) { $GLOBALS['ApplicationUrl'] = SENDSTUDIO_APPLICATION_URL; if (defined('SENDSTUDIO_IS_SETUP') && SENDSTUDIO_IS_SETUP && !InterspireEvent::eventExists('IEM_MARKER_20090701')) { IEM_Installer::RegisterEventListeners(); require_once IEM_ADDONS_PATH . '/interspire_addons.php'; $addons = new Interspire_Addons(); $addons->FixEnabledEventListeners(); InterspireEvent::eventCreate('IEM_MARKER_20090701'); } if (!self::configInit($reset)) { return false; } if (!self::sessionInit($reset)) { return false; } if (!self::userInit($reset)) { return false; } $tempUser = IEM::getCurrentUser(); $tempUserLanguage = 'default'; if (!empty($tempUser->user_language) && is_dir(IEM_PATH . "/language/{$tempUser->user_language}")) { $tempUserLanguage = $tempUser->user_language; } require_once IEM_PATH . "/language/{$tempUserLanguage}/whitelabel.php"; require_once IEM_PATH . "/language/{$tempUserLanguage}/language.php"; self::$_enableInfoTips = false; if (isset($tempUser->infotips) && $tempUser->infotips) { self::$_enableInfoTips = true; } unset($tempUserLanguage); unset($tempUser); }
/** * RunUpgrade * Runs the fix_3744_fix_absolute_path upgrade * * @return Boolean Returns TRUE if successful, FALSE otherwise */ function RunUpgrade() { try { $eventList = InterspireEvent::eventList(); foreach ($eventList as $event) { $listeners = InterspireEvent::eventListenerList($event); foreach ($listeners as $listener) { InterspireEvent::listenerUnregister($event, $listener['function'], $listener['file']); } } } catch (Exception $e) { return true; } return true; }
/** * Initialize the framework * @param Boolean $reset Whether or not to re-initialize the framework again * @return Boolean Returns TRUE the application initializes without encountering any errors, FALSE otherwise */ public static final function init($reset = false) { $GLOBALS['ApplicationUrl'] = SENDSTUDIO_APPLICATION_URL; // Defining IEM_MARKER in the event is part of the installation procedure // If it is not there, we can assume that the stash file has been overwritten // So we will need to restore it. // TODO change reference to SENSTUDIO_IS_SETUP if (defined('SENDSTUDIO_IS_SETUP') && SENDSTUDIO_IS_SETUP && !InterspireEvent::eventExists('IEM_MARKER_20090701')) { IEM_Installer::RegisterEventListeners(); // Restore Addons listeners require_once IEM_ADDONS_PATH . '/interspire_addons.php'; $addons = new Interspire_Addons(); $addons->FixEnabledEventListeners(); InterspireEvent::eventCreate('IEM_MARKER_20090701'); } if (!self::configInit($reset)) { return false; } if (!self::sessionInit($reset)) { return false; } if (!self::userInit($reset)) { return false; } // ----- Include common language variables $tempUser = IEM::getCurrentUser(); $tempUserLanguage = 'default'; if (!empty($tempUser->user_language) && is_dir(IEM_PATH . "/language/{$tempUser->user_language}")) { $tempUserLanguage = $tempUser->user_language; } require_once IEM_PATH . "/language/{$tempUserLanguage}/whitelabel.php"; require_once IEM_PATH . "/language/{$tempUserLanguage}/language.php"; self::$_enableInfoTips = false; if (isset($tempUser->infotips) && $tempUser->infotips) { self::$_enableInfoTips = true; } unset($tempUserLanguage); unset($tempUser); // ----- }
/** * Triggers the TemplateCaptured event. * * @return Boolean If the event was cancelled (assuming the event is cancellable). */ protected function EventTemplateCaptured() { if (!$this->EventsAvailable()) { return true; } return InterspireEvent::trigger('InterspireTemplate_TemplateCaptured', new InterspireTemplateEventTemplateCaptured($this)); }
/** * RegisterEventListeners * Loads all the event listeners used in the system as listed in com/install/events.php. * * @throws InterspireEventException * * @return Void Does not return anything. */ public static function RegisterEventListeners() { require IEM_PATH . '/install/listeners.php'; foreach ($listeners as $listener) { if (!isset($listener[2])) { $listener[2] = null; } list($event, $function, $file) = $listener; if (strpos($function, '::') !== false) { $function = explode('::', $function); } if (!InterspireEvent::listenerExists($event, $function, $file)) { InterspireEvent::listenerRegister($event, $function, $file); } } // Add IEM_MARKER which will mark the integrity of the listener InterspireEvent::eventCreate('IEM_MARKER'); }
/** * _registerListeners * This is called when you install or enable an addon. * It goes through all of the events an addon listens to and addons them to the triggers. * * @uses GetEventListeners * @uses InterspireEvent::listenerRegister * @uses InterspireEventException * * @return Void Doesn't return anything. * @throws Throws an InterspireEventException if an event can't be registered. The error and code come from InterspireEventException. */ private function _registerListeners() { $listeners = $this->GetEventListeners(); foreach ($listeners as $listener) { try { InterspireEvent::listenerRegister($listener['eventname'], $listener['trigger_details'], $listener['trigger_file']); } catch (Exception $e) { throw new Interspire_Addons_Exception($e->getMessage(), Interspire_Addons_Exception::DatabaseError); } } }
/** * listen * Register a listener to "listen" to this event * @param String|Array $listener Listener function * @param String|NULL $file File to be included before executing the function (OPTIONAL, dafault = NULL) * @param Integer $priority Priority of the listener (1 to 100) (OPTIONAL, default = 50) * @return Void Returns nothing */ public function listen($listener, $file = null, $priority = 50) { if (empty($this->_eventName)) { // This peice of code will never be reached if the class has been constructed properly die('Please specify the "_eventName" property first in order to use this function'); } return InterspireEvent::listenerRegister($this->_eventName, $listener, $file, $priority); }
<?php /** * This file contains procdeure and classes to enable "Event" * * @package interspire.iem * @subpackage eventdata */ /** * Include "Interspire Event" library */ require_once IEM_PATH . '/ext/interspire_event/interspireevent.php'; InterspireEvent::init(IEM_InterspireStash::getInstance(), false); /** * Event data class for "IEM_SYSTEM_STARTUP_BEFORE" event * * This event is called before framework initialization. * It does not contains any data. * * @package interspire.iem * @subpackage eventdata */ class EventData_IEM_SYSTEM_STARTUP_BEFORE extends InterspireEventData { /** * CONSTRUCTOR */ public function __construct() { parent::__construct(false); $this->_eventName = 'IEM_SYSTEM_STARTUP_BEFORE';