diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/lib/entities.php | 31 | 
1 files changed, 31 insertions, 0 deletions
diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 8784e9af4..9ddb4c9f1 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -763,6 +763,37 @@  		return $returnvalue;  	} +	/** +	 * Import an entity. +	 * This function checks the passed XML doc (as array) to see if it is a user, if so it constructs a new  +	 * elgg user and returns "true" to inform the importer that it's been handled. +	 */ +	function import_entity_plugin_hook($hook, $entity_type, $returnvalue, $params) +	{ +		$name = $params['name']; +		$element = $params['element']; +		 +		$tmp = NULL; +		 +		switch ($name) +		{ +			case 'ElggUser' : $tmp = new ElggUser(); break; +			case 'ElggSite' : $tmp = new ElggSite(); break; +			case 'ElggConnection' : $tmp = new ElggConnection(); break; +			case 'ElggObject' : $tmp = new ElggObject(); break; +		} +		 +		if ($tmp) +		{ +			$tmp->import($element); +			 +			return $tmp; +		} +	} +	 +	/** Register the import hook */ +	register_plugin_hook("import", "all", "import_user_plugin_hook", 0); +	  	/** Register the hook, ensuring entities are serialised first */  	register_plugin_hook("export", "all", "export_entity_plugin_hook", 0);  | 
