| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- <?php
 
- /**
 
-  * Convert comment annotations to entities
 
-  * 
 
-  * Run for 2 seconds per request as set by $batch_run_time_in_secs. This includes
 
-  * the engine loading time.
 
-  */
 
- // from engine/start.php
 
- global $START_MICROTIME;
 
- $batch_run_time_in_secs = 2;
 
- // if upgrade has run correctly, mark it done
 
- if (get_input('upgrade_completed')) {
 
- 	// set the upgrade as completed
 
- 	$factory = new ElggUpgrade();
 
- 	$upgrade = $factory->getUpgradeFromPath('admin/upgrades/commentaccess');
 
- 	if ($upgrade instanceof ElggUpgrade) {
 
- 		$upgrade->setCompleted();
 
- 	}
 
- 	return true;
 
- }
 
- // Offset is the total amount of errors so far. We skip these
 
- // comments to prevent them from possibly repeating the same error.
 
- $offset = get_input('offset', 0);
 
- $limit = 50;
 
- $access_status = access_get_show_hidden_status();
 
- access_show_hidden_entities(true);
 
- $success_count = 0;
 
- $error_count = 0;
 
- do {
 
- 	$dbprefix = elgg_get_config('dbprefix');
 
- 	$options = array(
 
- 		'type' => 'object',
 
- 		'subtype' => 'comment',
 
- 		'joins' => array(
 
- 			"JOIN {$dbprefix}entities e2 ON e.container_guid = e2.guid"
 
- 		),
 
- 		'wheres' => array(
 
- 			"e.access_id != e2.access_id"
 
- 		),
 
- 		'offset' => $offset,
 
- 		'limit' => $limit,
 
- 		'preload_containers' => true
 
- 	);
 
- 			
 
- 	$comments = elgg_get_entities($options);
 
- 	
 
- 	foreach ($comments as $comment) {
 
- 		$container = $comment->getContainerEntity();
 
- 		
 
- 		if (!$container) {
 
- 			$error_count++;
 
- 			continue;
 
- 		}		
 
- 		
 
- 		$comment->access_id = $container->access_id;
 
- 		
 
- 		if ($comment->save()) {
 
- 			$success_count++;
 
- 		} else {
 
- 			$error_count++;
 
- 		}
 
- 	}
 
- 	
 
- } while ((microtime(true) - $START_MICROTIME) < $batch_run_time_in_secs);
 
- access_show_hidden_entities($access_status);
 
- // Give some feedback for the UI
 
- echo json_encode(array(
 
- 	'numSuccess' => $success_count,
 
- 	'numErrors' => $error_count,
 
- ));
 
 
  |