diff options
Diffstat (limited to 'mod/blog')
| -rw-r--r-- | mod/blog/start.php | 36 | 
1 files changed, 31 insertions, 5 deletions
diff --git a/mod/blog/start.php b/mod/blog/start.php index b9911aa74..d00196bfd 100644 --- a/mod/blog/start.php +++ b/mod/blog/start.php @@ -225,11 +225,37 @@ function blog_ecml_views_hook($hook, $entity_type, $return_value, $params) {  }  /** - * When upgrading, check if the ElggBlog class has been registered as this - * was added in Elgg 1.8 + * Upgrade from 1.7 to 1.8.   */ -function blog_run_upgrades() { -	if (!update_subtype('object', 'blog', 'ElggBlog')) { -		add_subtype('object', 'blog', 'ElggBlog'); +function blog_run_upgrades($event, $type, $details) { +	$blog_upgrade_version = get_plugin_setting('upgrade_version', 'blogs'); + +	if (!$blog_upgrade_version) { +		 // When upgrading, check if the ElggBlog class has been registered as this +		 // was added in Elgg 1.8 +		if (!update_subtype('object', 'blog', 'ElggBlog')) { +			add_subtype('object', 'blog', 'ElggBlog'); +		} + +		// only run this on the first migration to 1.8 +		if ($details->to >= 2011061200) { +			// add excerpt to all blogs that don't have it. +			$ia = elgg_set_ignore_access(true); +			$options = array( +				'type' => 'object', +				'subtype' => 'blog' +			); + +			$blogs = new ElggBatch($options); +			foreach ($blogs as $blog) { +				if (!$blog->excerpt) { +					$blog->excerpt = elgg_get_excerpt($blog->description); +				} +			} + +			elgg_set_ignore_access($ia); +		} + +		elgg_set_plugin_setting('upgrade_version', 1, 'blogs');  	}  }  | 
