}
}
-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;
}
/**
*/
function elgg_init() {
global $CONFIG;
-
+
register_action('comments/add');
register_action('comments/delete');
register_action('likes/add');
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");
+ }
}
}
}
set_error_handler('__elgg_php_error_handler');
set_exception_handler('__elgg_php_exception_handler');
-
/**
* Load the system settings
*/
}
}
+// 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();
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