aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/lib/annotations.php21
-rw-r--r--engine/lib/metadata.php18
2 files changed, 34 insertions, 5 deletions
diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php
index c249420f3..c02ad10fa 100644
--- a/engine/lib/annotations.php
+++ b/engine/lib/annotations.php
@@ -102,6 +102,21 @@
}
/**
+ * Convert a database row to a new ElggAnnotation
+ *
+ * @param stdClass $row
+ * @return stdClass or ElggAnnotation
+ */
+ function row_to_elggannotation($row)
+ {
+ if (!($row instanceof stdClass))
+ return $row;
+
+ return new ElggAnnotation($row);
+ }
+
+
+ /**
* Get a specific annotation.
*
* @param int $annotation_id
@@ -113,7 +128,7 @@
$annotation_id = (int) $annotation_id;
$access = get_access_list();
- return get_data_row("select o.* from {$CONFIG->dbprefix}annotations where id=$annotation_id and (o.access_id in {$access} or (o.access_id = 0 and o.owner_id = {$_SESSION['id']}))");
+ return row_to_elggannotation(get_data_row("select o.* from {$CONFIG->dbprefix}annotations where id=$annotation_id and (o.access_id in {$access} or (o.access_id = 0 and o.owner_id = {$_SESSION['id']}))"));
}
/**
@@ -164,8 +179,8 @@
if ($n > 0) $query .= " and ";
$query .= $where[$n];
}
- error_log($query);
- return get_data($query);
+
+ return get_data($query, "row_to_elggannotation");
}
/**
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");
}
/**