modules = array(); $this->registry = ''; } //--- // load_registry() loads the registry into the framework // @param object $registry // @return bool //--- function load_registry( &$registry ) { if ( !is_object( $registry ) ) { return false; } else { $this->registry = &$registry; } } //--- // load_core_files() will include core files and then register them // @param array $core_files // @return bool //--- function load_core_files( $core_files ) { if ( !is_array( $core_files ) ) { return false; } else { foreach( $core_files as $file=>$identifier ) { $class_name = ucfirst( strtolower( $identifier ) ); if ( file_exists( _CORE_DIR.'/'.$file ) ) { include_once( _CORE_DIR.'/'.$file ); // Register the core file $this->registry->register( $identifier, &new $class_name ); } } } } //--- // load_module() will load a module into the framework // @param object $module_object //--- function load_module( &$module_object ) { if ( !is_object( $module_object ) ) { return false; } $module_name = $module_object->identitfier; $this->modules[ $module_name ] = &$module_object; } //--- // trigger_event() will trigger an event to all loaded modules or selected modules // @param string $event // @param mixed $module //--- function trigger_event( $event, $module='' ) { if ( empty( $module ) ) { // trigger event to all loaded modules foreach( $this->modules as $name=>$object ) { if ( method_exists( $object, $event ) ) { return $this->modules[ $name ]->$event(); } } } else if ( is_array( $module ) ) { // trigger event to a selected number of modules foreach( $this->modules as $name=>$object ) { if ( in_array( $name, $module ) && method_exists( $object, $event ) ) { return $this->modules[ $name ]->$event(): } } } else { // trigger to single module if ( method_exists( $this->modules[ $name ], $event ) ) { return $this->modules[ $name ]->$event(); } } } //--- // get_module() will return a modules object // @param string $module // @return object //--- function get_module( $module ) { if ( is_object( $this->modules[ $module ] ) ) { return &$this->modules[ $module ]; } else { return false; } } } ?>