All pastes #343958 Raw Edit

Someone

public php v1 · immutable
·published 2007-02-07 12:35 UTC
rendered paste body
<?php// ------------- ~ Tango ~ ------------- \\// File: core/class_core_framework.php// Author: Alex Cartwright// Created: 5th February 2007// ------------- ~ Tango ~ ------------- \\	class Core_framework {				private $modules; # Hold module objects		private $registry; # Keep track of all loaded core files				//---		// constructor function		//---		function Core_framework() {			$this->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;			}		}			}?>