From: Steve Sutton Date: Mon, 22 Apr 2019 20:38:47 +0000 (-0400) Subject: Work on setting up configRegistry X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/index.cgi?a=commitdiff_plain;h=f3b340607a451384ef44afc06d8920a8a2fab1f1;p=WP-Plugins%2Fglm-member-db.git Work on setting up configRegistry New class for config registry --- diff --git a/classes/configRegistry.php b/classes/configRegistry.php new file mode 100644 index 00000000..8055e282 --- /dev/null +++ b/classes/configRegistry.php @@ -0,0 +1,120 @@ + + * @copyright 2019 Gaslight Media + * @license Gaslight Media + * @version SVN: $Id$ + * @link <> + */ + +/** + * configRegistry.php class to hold objects for access anywhere. Think of the Registry + * as a key/value store. With the key being an identifier for an instance of an + * object, and the value being the instance itself. + * + * @category CommonApps + * @package Registry + * @author Steve Sutton + * @copyright 2019 Gaslight Media + * @license Gaslight Media + * @version Release: 1.0 + * @link <> + */ +class GlmConfig +{ + private $_store; + + public function __construct( $data ) + { + $this->_store = $data; + } + + public function getConfig() + { + return $this->_store; + } +} + +class Registry +{ + static private $_store = array(); + + /** + * Add a object to the Registry::_store + * + * @param object $object Object + * @param object $name Name of object key + * + * @return object + */ + static public function add( $object, $name = null ) + { + // Use the class name if no name given, simulates singleton + $name = ( !\is_null( $name ) ) ? $name: \get_class( $object ); + + \trigger_error( $name, E_USER_NOTICE ); + + $return = null; + if ( isset( self::$_store[$name] ) ) { + // Store the old object for returning + $return = self::$_store[$name]; + } + + self::$_store[$name] = $object; + return $return; + } + + /** + * get the object from the Registry::_store + * + * @param type $name Name of the object key + * + * @return type + * @throws Exception + */ + static public function get( $name ) + { + if ( !self::contains( $name ) ) { + throw new \Exception( 'Object does not exist in registry' ); + } + + return self::$_store[$name]; + } + + /** + * Check to see if the Registry::_store contains the object + * + * @param type $name name of object key + * + * @return boolean + */ + static public function contains( $name ) + { + if ( !isset( self::$_store[$name] ) ) { + return false; + } + + return true; + } + + /** + * Remove the object from the Registry::_store + * + * @param type $name name of object key + * + * @return void + */ + static public function remove( $name ) + { + if ( self::contains( $name ) ) { + unset( self::$_store[$name] ); + } + } +} diff --git a/index.php b/index.php index 3edb0a79..85efac51 100755 --- a/index.php +++ b/index.php @@ -9,6 +9,8 @@ * License: GPL2 */ +require_once 'classes/configRegistry.php'; +use \GlmAssociate\Config as GlmConfig; /** * GLM Associate - Members Plugin * Index @@ -936,3 +938,14 @@ if (GLM_MEMBERS_PLUGIN_DEBUG_VERBOSE) { trigger_error("GLM Associate Index End: ".glmAssociateMemoryUsage()." - Start glm-member-db setup",E_USER_NOTICE); } +// Add config to the Registry +GlmConfig\Registry::add( new GlmConfig\GlmConfig( $config['addOns'] ), 'addOns' ); +GlmConfig\Registry::add( new GlmConfig\GlmConfig( $config['validActions'] ), 'validActions' ); +GlmConfig\Registry::add( new GlmConfig\GlmConfig( $config['shortcodes'] ), 'shortcodes' ); +GlmConfig\Registry::add( new GlmConfig\GlmConfig( $config['imageSizes'] ), 'imageSizes' ); +GlmConfig\Registry::add( new GlmConfig\GlmConfig( $config['states'] ), 'states' ); +GlmConfig\Registry::add( new GlmConfig\GlmConfig( $config['countries'] ), 'countries' ); +GlmConfig\Registry::add( new GlmConfig\GlmConfig( $config['settings'] ), 'settings' ); +GlmConfig\Registry::add( new GlmConfig\GlmConfig( $config['terms'] ), 'terms' ); +GlmConfig\Registry::add( new GlmConfig\GlmConfig( $config['loggedInUser'] ), 'loggedInUser' ); + diff --git a/models/admin/management/index.php b/models/admin/management/index.php index 340fe80b..093349e2 100755 --- a/models/admin/management/index.php +++ b/models/admin/management/index.php @@ -1,4 +1,5 @@ getConfig(); + trigger_error( print_r( $config, true ), E_USER_NOTICE ); + wp_register_script( 'glm-api', GLM_MEMBERS_PLUGIN_BASE_URL . '/js/glmApiSettings.js' ); wp_localize_script(