aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authoricewing <icewing@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-04-01 14:04:05 +0000
committericewing <icewing@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-04-01 14:04:05 +0000
commit1cd6da51170f2ed79d647fa5391f2bc3b072fc96 (patch)
tree95e6b7e68b2598f46ec6f075c129e96a1d3b22e7 /engine
parentb640dc452ae9d67c02662997f6c5b6e0d900e4b9 (diff)
downloadelgg-1cd6da51170f2ed79d647fa5391f2bc3b072fc96.tar.gz
elgg-1cd6da51170f2ed79d647fa5391f2bc3b072fc96.tar.bz2
Marcus Povey <marcus@dushka.co.uk>
* Moved import to ElggEntity git-svn-id: https://code.elgg.org/elgg/trunk@304 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/entities.php31
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);