aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mod/blog/manifest.xml1
-rw-r--r--mod/blog/start.php29
2 files changed, 19 insertions, 11 deletions
diff --git a/mod/blog/manifest.xml b/mod/blog/manifest.xml
index 6bc570449..b241d2651 100644
--- a/mod/blog/manifest.xml
+++ b/mod/blog/manifest.xml
@@ -14,4 +14,5 @@
</requires>
<admin_interface>simple</admin_interface>
<activate_on_install>true</activate_on_install>
+ <on_activate>blog_on_activate</on_activate>
</plugin_manifest>
diff --git a/mod/blog/start.php b/mod/blog/start.php
index 04197aa4e..437970de4 100644
--- a/mod/blog/start.php
+++ b/mod/blog/start.php
@@ -25,8 +25,7 @@ function blog_init() {
$item = new ElggMenuItem('blog', elgg_echo('blog:blogs'), 'pg/blog/all');
elgg_register_menu_item('site', $item);
- // run the setup upon activations or to upgrade old installations.
- run_function_once('blog_runonce', '1269370108');
+ elgg_register_event_handler('upgrade', 'upgrade', 'blog_run_upgrades');
// add to the main css
elgg_extend_view('css/screen', 'blog/css');
@@ -69,15 +68,6 @@ function blog_init() {
}
/**
- * Register entity class for object:blog -> ElggBlog
- */
-function blog_runonce() {
- if (!update_subtype('object', 'blog', 'ElggBlog')) {
- add_subtype('object', 'blog', 'ElggBlog');
- }
-}
-
-/**
* Dispatches blog pages.
* URLs take the form of
* All blogs: pg/blog/all
@@ -198,3 +188,20 @@ function blog_ecml_views_hook($hook, $entity_type, $return_value, $params) {
return $return_value;
}
+
+/**
+ * Runs when blog plugin is activated. See manifest file.
+ */
+function blog_on_activate() {
+ add_subtype('object', 'blog', 'ElggBlog');
+}
+
+/**
+ * When upgrading, check if the ElggBlog class has been registered as this
+ * was added in Elgg 1.8
+ */
+function blog_run_upgrades() {
+ if (!update_subtype('object', 'blog', 'ElggBlog')) {
+ add_subtype('object', 'blog', 'ElggBlog');
+ }
+}