//--- // 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(); } } }