diff --git a/lib/actions/actionregistry.inc.php b/lib/actions/actionregistry.inc.php index eafcd61..3fcdfee 100644 --- a/lib/actions/actionregistry.inc.php +++ b/lib/actions/actionregistry.inc.php @@ -30,10 +30,10 @@ class KTActionRegistry { var $actions = array(); // {{{ getSingleton function &getSingleton () { - if (!KTUtil::arrayGet($GLOBALS, 'oKTActionRegistry')) { - $GLOBALS['oKTActionRegistry'] = new KTActionRegistry; + if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTActionRegistry')) { + $GLOBALS['_KT_PLUGIN']['oKTActionRegistry'] = new KTActionRegistry; } - return $GLOBALS['oKTActionRegistry']; + return $GLOBALS['_KT_PLUGIN']['oKTActionRegistry']; } // }}} diff --git a/lib/actions/portletregistry.inc.php b/lib/actions/portletregistry.inc.php index 1c99883..df343c7 100644 --- a/lib/actions/portletregistry.inc.php +++ b/lib/actions/portletregistry.inc.php @@ -30,10 +30,10 @@ class KTPortletRegistry { var $actions = array(); // {{{ getSingleton function &getSingleton () { - if (!KTUtil::arrayGet($GLOBALS, 'oKTPortletRegistry')) { - $GLOBALS['oKTPortletRegistry'] =& new KTPortletRegistry; + if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTPortletRegistry')) { + $GLOBALS['_KT_PLUGIN']['oKTPortletRegistry'] =& new KTPortletRegistry; } - return $GLOBALS['oKTPortletRegistry']; + return $GLOBALS['_KT_PLUGIN']['oKTPortletRegistry']; } // }}} @@ -81,7 +81,7 @@ class KTPortletRegistry { if (file_exists($sPortletFile)) { require_once($sPortletFile); } - $oPortlet =& new $sPortletClass; + $oPortlet =& new $sPortletClass; $oPortlet->setPlugin($oPlugin); array_push($aReturn, $oPortlet); } diff --git a/lib/authentication/authenticationproviderregistry.inc.php b/lib/authentication/authenticationproviderregistry.inc.php index 65ec008..6373417 100644 --- a/lib/authentication/authenticationproviderregistry.inc.php +++ b/lib/authentication/authenticationproviderregistry.inc.php @@ -53,10 +53,10 @@ class KTAuthenticationProviderRegistry { // {{{ getSingleton function &getSingleton () { - if (!KTUtil::arrayGet($GLOBALS, 'oKTAuthenticationProviderRegistry')) { - $GLOBALS['oKTAuthenticationProviderRegistry'] = new KTAuthenticationProviderRegistry; + if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTAuthenticationProviderRegistry')) { + $GLOBALS['_KT_PLUGIN']['oKTAuthenticationProviderRegistry'] = new KTAuthenticationProviderRegistry; } - return $GLOBALS['oKTAuthenticationProviderRegistry']; + return $GLOBALS['_KT_PLUGIN']['oKTAuthenticationProviderRegistry']; } // }}} diff --git a/lib/dashboard/dashletregistry.inc.php b/lib/dashboard/dashletregistry.inc.php index 9a42b92..8dd18d5 100644 --- a/lib/dashboard/dashletregistry.inc.php +++ b/lib/dashboard/dashletregistry.inc.php @@ -32,10 +32,10 @@ class KTDashletRegistry { var $nsnames = array(); // {{{ getSingleton function &getSingleton () { - if (!KTUtil::arrayGet($GLOBALS, 'oKTDashboardRegistry')) { - $GLOBALS['oKTDashboardRegistry'] = new KTDashletRegistry; + if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTDashboardRegistry')) { + $GLOBALS['_KT_PLUGIN']['oKTDashboardRegistry'] = new KTDashletRegistry; } - return $GLOBALS['oKTDashboardRegistry']; + return $GLOBALS['_KT_PLUGIN']['oKTDashboardRegistry']; } // }}} diff --git a/lib/help/help.inc.php b/lib/help/help.inc.php index 3609af8..152edad 100644 --- a/lib/help/help.inc.php +++ b/lib/help/help.inc.php @@ -201,11 +201,11 @@ class KTHelpRegistry { } function &getSingleton () { - if (!KTUtil::arrayGet($GLOBALS, 'oKTHelpRegistry')) { - $GLOBALS['oKTHelpRegistry'] = new KTHelpRegistry; + if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTHelpRegistry')) { + $GLOBALS['_KT_PLUGIN']['oKTHelpRegistry'] = new KTHelpRegistry; } - return $GLOBALS['oKTHelpRegistry']; + return $GLOBALS['_KT_PLUGIN']['oKTHelpRegistry']; } function registerHelp($sPluginName, $sLang, $sBaseDir) { diff --git a/lib/i18n/i18nregistry.inc.php b/lib/i18n/i18nregistry.inc.php index 35aebae..bfac32c 100644 --- a/lib/i18n/i18nregistry.inc.php +++ b/lib/i18n/i18nregistry.inc.php @@ -35,10 +35,10 @@ class KTi18nRegistry { var $_aLanguages = array(); function &getSingleton() { - if (!KTUtil::arrayGet($GLOBALS, 'oKTi18nRegistry')) { - $GLOBALS['oKTi18nRegistry'] =& new KTi18nRegistry; + if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTi18nRegistry')) { + $GLOBALS['_KT_PLUGIN']['oKTi18nRegistry'] =& new KTi18nRegistry; } - return $GLOBALS['oKTi18nRegistry']; + return $GLOBALS['_KT_PLUGIN']['oKTi18nRegistry']; } function registeri18n($sDomain, $sDirectory) { diff --git a/lib/plugins/KTAdminNavigation.php b/lib/plugins/KTAdminNavigation.php index 128bfb9..46f55ec 100644 --- a/lib/plugins/KTAdminNavigation.php +++ b/lib/plugins/KTAdminNavigation.php @@ -34,10 +34,10 @@ class KTAdminNavigationRegistry { var $aCategories = array(); function &getSingleton() { - if (!KTUtil::arrayGet($GLOBALS, 'oKTAdminNavigationRegistry')) { - $GLOBALS['oKTAdminNavigationRegistry'] = new KTAdminNavigationRegistry; + if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTAdminNavigationRegistry')) { + $GLOBALS['_KT_PLUGIN']['oKTAdminNavigationRegistry'] = new KTAdminNavigationRegistry; } - return $GLOBALS['oKTAdminNavigationRegistry']; + return $GLOBALS['_KT_PLUGIN']['oKTAdminNavigationRegistry']; } // name is the suburl below admin @@ -100,4 +100,4 @@ class RedirectingDispatcher { } } -?> \ No newline at end of file +?> diff --git a/lib/plugins/pageregistry.inc.php b/lib/plugins/pageregistry.inc.php index 20e1cf5..9ba08d5 100644 --- a/lib/plugins/pageregistry.inc.php +++ b/lib/plugins/pageregistry.inc.php @@ -30,10 +30,10 @@ class KTPageRegistry { var $aResources = array(); function &getSingleton() { - if (!KTUtil::arrayGet($GLOBALS, 'oKTPageRegistry')) { - $GLOBALS['oKTPageRegistry'] = new KTPageRegistry; + if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTPageRegistry')) { + $GLOBALS['_KT_PLUGIN']['oKTPageRegistry'] = new KTPageRegistry; } - return $GLOBALS['oKTPageRegistry']; + return $GLOBALS['_KT_PLUGIN']['oKTPageRegistry']; } function registerPage($sPath, $sClassName, $sFilename = null) { diff --git a/lib/plugins/pluginregistry.inc.php b/lib/plugins/pluginregistry.inc.php index 88d3727..90c6161 100644 --- a/lib/plugins/pluginregistry.inc.php +++ b/lib/plugins/pluginregistry.inc.php @@ -31,10 +31,10 @@ class KTPluginRegistry { var $_aPlugins = array(); function &getSingleton() { - if (!KTUtil::arrayGet($GLOBALS, 'oKTPluginRegistry')) { - $GLOBALS['oKTPluginRegistry'] = new KTPluginRegistry; + if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTPluginRegistry')) { + $GLOBALS['_KT_PLUGIN']['oKTPluginRegistry'] = new KTPluginRegistry; } - return $GLOBALS['oKTPluginRegistry']; + return $GLOBALS['_KT_PLUGIN']['oKTPluginRegistry']; } function registerPlugin($sClassName, $sNamespace, $sFilename = null) { diff --git a/lib/plugins/pluginutil.inc.php b/lib/plugins/pluginutil.inc.php index c832965..356f6b7 100644 --- a/lib/plugins/pluginutil.inc.php +++ b/lib/plugins/pluginutil.inc.php @@ -57,6 +57,22 @@ class KTPluginResourceRegistry { class KTPluginUtil { function loadPlugins () { + $sPluginCache = KT_DIR . '/var/plugin-cache'; + if (file_exists($sPluginCache)) { + require_once(KT_LIB_DIR . '/actions/actionregistry.inc.php'); + require_once(KT_LIB_DIR . '/actions/portletregistry.inc.php'); + require_once(KT_LIB_DIR . '/triggers/triggerregistry.inc.php'); + require_once(KT_LIB_DIR . '/plugins/pageregistry.inc.php'); + require_once(KT_LIB_DIR . '/authentication/authenticationproviderregistry.inc.php'); + require_once(KT_LIB_DIR . "/plugins/KTAdminNavigation.php"); + require_once(KT_LIB_DIR . "/dashboard/dashletregistry.inc.php"); + require_once(KT_LIB_DIR . "/i18n/i18nregistry.inc.php"); + require_once(KT_LIB_DIR . "/help/help.inc.php"); + $GLOBALS['_KT_PLUGIN'] = unserialize(file_get_contents($sPluginCache)); + $GLOBALS['_KT_PLUGIN']['oKTPluginRegistry']->_aPlugins = array(); + return; + } + $GLOBALS['_KT_PLUGIN'] = array(); $aPlugins = KTPluginEntity::getList(); if (count($aPlugins) === 0) { KTPluginUtil::registerPlugins(); @@ -83,7 +99,6 @@ class KTPluginUtil { require_once($sPath); } } - $oRegistry =& KTPluginRegistry::getSingleton(); $aPlugins =& $oRegistry->getPlugins(); foreach ($aPlugins as $oPlugin) { @@ -98,6 +113,7 @@ class KTPluginUtil { $oPlugin->load(); } } + // file_put_contents($sPluginCache, serialize($GLOBALS['_KT_PLUGIN'])); } function registerPlugins () { diff --git a/lib/triggers/triggerregistry.inc.php b/lib/triggers/triggerregistry.inc.php index 95d1323..ea3f800 100644 --- a/lib/triggers/triggerregistry.inc.php +++ b/lib/triggers/triggerregistry.inc.php @@ -30,10 +30,10 @@ class KTTriggerRegistry { var $triggers = array(); // {{{ getSingleton function &getSingleton () { - if (!KTUtil::arrayGet($GLOBALS, 'oKTTriggerRegistry')) { - $GLOBALS['oKTTriggerRegistry'] = new KTTriggerRegistry; + if (!KTUtil::arrayGet($GLOBALS['_KT_PLUGIN'], 'oKTTriggerRegistry')) { + $GLOBALS['_KT_PLUGIN']['oKTTriggerRegistry'] = new KTTriggerRegistry; } - return $GLOBALS['oKTTriggerRegistry']; + return $GLOBALS['_KT_PLUGIN']['oKTTriggerRegistry']; } // }}}