diff options
| -rw-r--r-- | engine/classes/ElggSite.php | 9 | ||||
| -rw-r--r-- | engine/lib/upgrades/2011061200-1.8b1-sites_need_a_site_guid-6d9dcbf46c0826cc.php | 30 | ||||
| -rw-r--r-- | version.php | 2 | 
3 files changed, 40 insertions, 1 deletions
diff --git a/engine/classes/ElggSite.php b/engine/classes/ElggSite.php index 30b222c24..e3b8b8f1a 100644 --- a/engine/classes/ElggSite.php +++ b/engine/classes/ElggSite.php @@ -148,11 +148,20 @@ class ElggSite extends ElggEntity {  	 * @return bool  	 */  	public function save() { +		global $CONFIG; +  		// Save generic stuff  		if (!parent::save()) {  			return false;  		} +		// make sure the site guid is set (if not, set to self) +		if (!$this->get('site_guid')) { +			$guid = $this->get('guid'); +			update_data("UPDATE {$CONFIG->dbprefix}entities SET site_guid=$guid +				WHERE guid=$guid"); +		} +  		// Now save specific stuff  		return create_site_entity($this->get('guid'), $this->get('name'),  			$this->get('description'), $this->get('url')); diff --git a/engine/lib/upgrades/2011061200-1.8b1-sites_need_a_site_guid-6d9dcbf46c0826cc.php b/engine/lib/upgrades/2011061200-1.8b1-sites_need_a_site_guid-6d9dcbf46c0826cc.php new file mode 100644 index 000000000..4fc59ac41 --- /dev/null +++ b/engine/lib/upgrades/2011061200-1.8b1-sites_need_a_site_guid-6d9dcbf46c0826cc.php @@ -0,0 +1,30 @@ +<?php +/** + * Elgg 1.8b1 upgrade 2011061200 + * sites_need_a_site_guid + * + * Sites did not have a site guid. This causes problems with getting + * metadata on site objects since we default to the current site. + */ + +global $CONFIG; + +$ia = elgg_set_ignore_access(true); +$access_status = access_get_show_hidden_status(); +access_show_hidden_entities(true); + +$options = array( +	'type' => 'site', +	'site_guid' => 0, +); +$batch = new ElggBatch('elgg_get_entities', $options); + +foreach ($batch as $entity) { +	if (!$entity->site_guid) { +		update_data("UPDATE {$CONFIG->dbprefix}entities SET site_guid=$entity->guid +				WHERE guid=$entity->guid"); +	} +} + +access_show_hidden_entities($access_status); +elgg_set_ignore_access($ia); diff --git a/version.php b/version.php index d1cc63aef..9d3bf43e3 100644 --- a/version.php +++ b/version.php @@ -11,7 +11,7 @@  // YYYYMMDD = Elgg Date  // XX = Interim incrementer -$version = 2011052801; +$version = 2011061200;  // Human-friendly version name  $release = '1.8b1';  | 
