| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | 
							- <?php
 
- // Only admin users can run this upgrade
 
- if ( !elgg_is_admin_logged_in() ) {
 
- 	return;
 
- }
 
- $file_version = elgg_get_upgrade_file_version(basename(__FILE__));
 
- $upgrade_version = elgg_get_plugin_setting('upgrade_version', 'tidypics');
 
- if ( $upgrade_version and $file_version <= $upgrade_version) {
 
- 	return;
 
- }
 
- $db_prefix = elgg_get_config('dbprefix');
 
- $ignore_access = elgg_set_ignore_access(TRUE);
 
- // Count tidypics_batch entities that need to correct the access_id
 
- $options = array(
 
- 	'type' => 'object',
 
- 	'subtype' => 'tidypics_batch',
 
- 	'limit' => 0,
 
- 	'count' => TRUE,
 
- 	'joins' => array("JOIN {$db_prefix}entities e2 ON e2.guid = e.container_guid"),
 
- 	'wheres' => array("e.access_id <> e2.access_id"),
 
- );
 
- $tidypics_batch = elgg_get_entities($options);
 
- // If no entities found set upgrade as runned
 
- if ( !$tidypics_batch ) {
 
- 	return elgg_set_plugin_setting('upgrade_version', $file_version, 'tidypics');
 
- }
 
- // Correct the access_id of the tidypics_batch entities
 
- if ( $tidypics_batch ) {
 
- 	$options['count'] = FALSE;
 
- 	$batch = new ElggBatch('elgg_get_entities', $options, 'tidypics_2012111901');
 
- 	// Correct the acces_id from river itens
 
- 	$tidypics_batch_river = elgg_get_river(array('object_guids' => $batch->callbackResult, 'action_types' => 'create', 'types' => 'object', 'subtypes' => 'tidypics_batch', 'limit' => 0));
 
- 	tidypics_adjust_river_access_id($tidypics_batch_river);
 
- 	error_log("Tidypics batches upgrade (2012111901) succeeded");
 
- }
 
- elgg_set_ignore_access($ignore_access);
 
- // Set upgrade as runned
 
- return elgg_set_plugin_setting('upgrade_version', $file_version, 'tidypics');
 
- /**
 
-  * Change the tidypics_batch's access_id to container's access_id (album object)
 
-  *
 
-  * @param ElggObject $entity
 
-  * @param string 	 $getter
 
-  * @param array 	 $options
 
-  */
 
- function tidypics_2012111901($entity, $getter, $options) {
 
- 	$album = $entity->getContainerEntity();
 
- 	if ( $guid = tidypics_adjust_batch_access_id($entity, $album) ) {
 
- 		return $guid;
 
- 	}
 
- }
 
- /**
 
-  * Change the tidypics_batch's access_id
 
-  *
 
-  * @param ElggObject $entity
 
-  * @param ElggObject $album
 
-  * @return void
 
-  */
 
- function tidypics_adjust_batch_access_id(ElggObject $entity = NULL, ElggObject $album = NULL) {
 
- 	if ( !elgg_instanceof($entity, 'object', 'tidypics_batch') or !elgg_instanceof($album, 'object', 'album') ) {
 
- 		return FALSE;
 
- 	}
 
- 	if ( $entity->access_id != $album->access_id ) {
 
- 		$entity->access_id = $album->access_id;
 
- 		return $entity->save();
 
- 	}
 
- }
 
- /**
 
-  * Change the river iten's acces_id to album acces_id
 
-  *
 
-  * @param Array $river_itens
 
-  * @return void
 
-  */
 
- function tidypics_adjust_river_access_id(array $river_itens = NULL) {
 
- 	if ( !$river_itens or !count($river_itens) ) {
 
- 		return;
 
- 	}
 
- 	foreach ($river_itens as $item) {
 
- 		$object = $item->getObjectEntity();
 
- 		$access_id = $object->access_id;
 
- 		if ( $item->access_id != $access_id ) {
 
- 			update_river_access_by_object($object->guid, $access_id);
 
- 		}
 
- 	}
 
- }
 
 
  |