aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/metadata.php
diff options
context:
space:
mode:
Diffstat (limited to 'engine/lib/metadata.php')
-rw-r--r--engine/lib/metadata.php18
1 files changed, 16 insertions, 2 deletions
diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php
index a02ff1ad7..777d3b58e 100644
--- a/engine/lib/metadata.php
+++ b/engine/lib/metadata.php
@@ -103,6 +103,20 @@
}
/**
+ * Convert a database row to a new ElggMetadata
+ *
+ * @param stdClass $row
+ * @return stdClass or ElggMetadata
+ */
+ function row_to_elggmetadata($row)
+ {
+ if (!($row instanceof stdClass))
+ return $row;
+
+ return new ElggMetadata($row);
+ }
+
+ /**
* Detect the value_type for a given value.
* Currently this is very crude.
*
@@ -210,7 +224,7 @@
$id = (int)$id;
$access = get_access_list();
- return get_data_row("SELECT * from {$CONFIG->dbprefix}metadata where id=$id and (access_id in {$access} or (access_id = 0 and owner_id = {$_SESSION['id']}))");
+ return row_to_elggmetadata(get_data_row("SELECT * from {$CONFIG->dbprefix}metadata where id=$id and (access_id in {$access} or (access_id = 0 and owner_id = {$_SESSION['id']}))"));
}
/**
@@ -262,7 +276,7 @@
$query .= $where[$n];
}
- return get_data($query);
+ return get_data($query, "row_to_elggmetadata");
}
/**