From 54f7543b0445c40ee14dc9fbf5694f849a43c50c Mon Sep 17 00:00:00 2001 From: icewing Date: Thu, 3 Apr 2008 15:54:45 +0000 Subject: Marcus Povey * Annotations and metadata now imported git-svn-id: https://code.elgg.org/elgg/trunk@393 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/entities.php | 7 ++++--- engine/lib/extender.php | 31 +++++++++++++++++++++---------- engine/lib/metadata.php | 8 ++++---- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 4b9473b7e..ad668591d 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -342,6 +342,7 @@ switch ($name) { + case 'owner_guid' : $this->attributes['owner_guid'] = $_SESSION['id']; break; case 'uuid' : $uuid = $text; break; default : $this->attributes[$name] = $text; } @@ -353,10 +354,10 @@ // See if this entity has already been imported, if so we don't need to create a new element $entity = get_entity_from_uuid($uuid); - if ($entity) + if ($entity) $this->attributes['guid'] = $entity->guid; - else - $this->attributes['guid'] = false; + else + $this->attributes['guid'] = false; // save $result = $this->save(); diff --git a/engine/lib/extender.php b/engine/lib/extender.php index f15aaa1ee..4f588acdd 100644 --- a/engine/lib/extender.php +++ b/engine/lib/extender.php @@ -75,6 +75,7 @@ $tmp = new stdClass; $tmp->attributes = $this->attributes; $tmp->attributes['owner_uuid'] = guid_to_uuid($this->owner_guid); + $tmp->attributes['entity_uuid'] = guid_to_uuid($this->entity_guid); return $tmp; } @@ -92,20 +93,30 @@ switch ($name) { + case 'id' : break; case 'entity_uuid' : $entity_uuid = $text; break; default : $this->attributes[$name] = $text; } - - // See if this entity has already been imported, if so then we need to link to it - $entity = get_entity_from_uuid($entity_uuid); - if (!$entity) - throw new ImportException("Sorry $entity_uuid was not found. Could not import annotation."); - - // Set owner ID - $this->attributes['owner_guid'] = $entity->getGUID(); - - return $this; + } + // See if this entity has already been imported, if so then we need to link to it + $entity = get_entity_from_uuid($entity_uuid); + if (!$entity) + throw new ImportException("Sorry $entity_uuid was not found. Could not import annotation."); + + // Set the item ID + $this->attributes['entity_guid'] = $entity->getGUID(); + + // Set owner + $this->attributes[$name] = $entity->getOwner(); + + // save + $result = $this->save(); + if (!$result) + throw new ImportException("There was a problem saving the ElggExtender"); + + return $this; + } else throw new ImportException("Unsupported version ($version) passed to ElggAnnotation::import()"); diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index f8a448f14..fe38e48c8 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -305,8 +305,8 @@ { global $CONFIG; - $meta_name = get_metastring_id($meta_name); - $meta_value = get_metastring_id($meta_value); + $meta_n = get_metastring_id($meta_name); + $meta_v = get_metastring_id($meta_value); $entity_type = sanitise_string($entity_type); $entity_subtype = get_subtype_id($entity_type, $entity_subtype); @@ -323,9 +323,9 @@ if ($entity_subtype) $where[] = "e.subtype=$entity_subtype"; if ($meta_name!="") - $where[] = "m.name_id='$meta_name'"; + $where[] = "m.name_id='$meta_n'"; if ($meta_value!="") - $where[] = "m.value_id='$meta_value'"; + $where[] = "m.value_id='$meta_v'"; $query = "SELECT * from {$CONFIG->dbprefix}entities e JOIN {$CONFIG->dbprefix}metadata m on e.guid = m.entity_guid where"; foreach ($where as $w) -- cgit v1.2.3