diff options
| -rw-r--r-- | engine/lib/elgglib.php | 28 | ||||
| -rw-r--r-- | engine/lib/plugins.php | 4 | ||||
| -rw-r--r-- | engine/start.php | 5 | ||||
| -rw-r--r-- | mod/blog/blog_lib.php | 39 | 
4 files changed, 33 insertions, 43 deletions
diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 4376ca53f..5b224e0be 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -2200,8 +2200,30 @@ function js_page_handler($page) {  	}  } -function __autoload($class) { -	require_once dirname(dirname(__FILE__))."/classes/$class.php"; +function __elgg_autoload($class) { +	global $CONFIG; + +	if (!include($CONFIG->classes[$class])) { +		throw new Exception("Failed to autoload $class"); +	}	 +} + +function elgg_register_classes($dir) { +	$classes = elgg_get_file_list($dir, array(), array(), array('.php')); +	 +	foreach ($classes as $class) { +		elgg_register_class(basename($class, '.php'), $class); +	} +} + +function elgg_register_class($class, $location) { +	global $CONFIG; + +	if (!isset($CONFIG->classes)) { +		$CONFIG->classes = array(); +	} +	 +	$CONFIG->classes[$class] = $location;  }  /** @@ -2233,7 +2255,7 @@ function __elgg_shutdown_hook() {   */  function elgg_init() {  	global $CONFIG; - +	  	register_action('comments/add');  	register_action('comments/delete');  	register_action('likes/add'); diff --git a/engine/lib/plugins.php b/engine/lib/plugins.php index a36f2bf6d..52f498bf7 100644 --- a/engine/lib/plugins.php +++ b/engine/lib/plugins.php @@ -191,6 +191,10 @@ function load_plugins() {  						if (is_dir($CONFIG->pluginspath . $mod . "/languages")) {  							register_translations($CONFIG->pluginspath . $mod . "/languages/");  						} +						 +						if (is_dir($CONFIG->pluginspath . "$mod/classes")) { +							elgg_register_classes($CONFIG->pluginspath . "$mod/classes"); +						}  					}  				}  			} diff --git a/engine/start.php b/engine/start.php index a84a19e0d..0bf652cb6 100644 --- a/engine/start.php +++ b/engine/start.php @@ -77,7 +77,6 @@ foreach ($required_files as $file) {  set_error_handler('__elgg_php_error_handler');  set_exception_handler('__elgg_php_exception_handler'); -  /**   * Load the system settings   */ @@ -113,6 +112,10 @@ foreach($lib_files as $file) {  	}  } +// prep core classes to be autoloadable +spl_autoload_register('__elgg_autoload'); +elgg_register_classes(dirname(__FILE__).'/classes'); +  // confirm that the installation completed successfully  verify_installation(); diff --git a/mod/blog/blog_lib.php b/mod/blog/blog_lib.php index 3152cccad..1895930aa 100644 --- a/mod/blog/blog_lib.php +++ b/mod/blog/blog_lib.php @@ -278,42 +278,3 @@ function blog_get_blog_months($user_guid = NULL, $container_guid = NULL) {  	return get_data($q);  } - -/** - * Extended class to override the time_created - */ -class ElggBlog extends ElggObject { -	protected function initialise_attributes() { -		parent::initialise_attributes(); - -		// override the default file subtype. -		$this->attributes['subtype'] = 'blog'; -	} - -	/** -	 * @todo this won't work until we have date l10n working. -	 * Rewrite the time created to be publish time. -	 * This is a bit dirty, but required for proper sorting. -	 */ -//	public function save() { -//		if (parent::save()) { -//			global $CONFIG; -// -//			// try to grab the publish date, but default to now. -//			foreach (array('publish_date', 'time_created') as $field) { -//				if (isset($this->$field) && $this->field) { -//					$published = $this->field; -//					break; -//				} -//			} -//			if (!$published) { -//				$published = time(); -//			} -// -//			$sql = "UPDATE {$CONFIG->dbprefix}entities SET time_created = '$published', time_updated = '$published' WHERE guid = '{$this->getGUID()}'"; -//			return update_data($sql); -//		} -// -//		return FALSE; -//	} -}
\ No newline at end of file  | 
