diff options
Diffstat (limited to 'engine/lib/metadata.php')
-rw-r--r-- | engine/lib/metadata.php | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index 3659a7075..0a82ec4dd 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -248,7 +248,7 @@ * @param int $offset * @return array of ElggMetadata */ - function get_metadatas($object_id = 0, $object_type = "", $name = "", $value = "", $value_type = "", $owner_id = 0, $order_by = "created desc", $limit = 10, $offset = 0) + function get_metadatas($object_id = 0, $object_type = "", $name = "", $value = "", $value_type = "", $owner_id = 0, $object_subtype = "", $order_by = "created desc", $limit = 10, $offset = 0) { global $CONFIG; @@ -257,8 +257,9 @@ $name = sanitise_string(trim($name)); $value = sanitise_string(trim($value)); $value_type = sanitise_string(trim($value_type)); - + $object_subtype = get_object_type_id($object_subtype); $owner_id = (int)$owner_id; + $order_by = sanitise_string($order_by); $limit = (int)$limit; $offset = (int)$offset; @@ -287,6 +288,9 @@ // add access controls $access = get_access_list(); $where[] = "(access_id in {$access} or (access_id = 0 and owner_id = {$_SESSION['id']}))"; + + if ($object_subtype!="") + $where[] = ""; // construct query. $query = "SELECT * from {$CONFIG->dbprefix}metadata where "; @@ -295,6 +299,7 @@ if ($n > 0) $query .= " and "; $query .= $where[$n]; } + $query .= " order by $order_by limit $offset,$limit"; return get_data($query, "row_to_elggmetadata"); } @@ -310,9 +315,9 @@ * @param int $offset * @return mixed Array of objects or false. */ - function get_objects_from_metadatas($object_id = 0, $object_type = "", $name = "", $value = "", $value_type = "", $owner_id = 0, $order_by = "created desc", $limit = 10, $offset = 0) + function get_objects_from_metadatas($object_id = 0, $object_type = "", $name = "", $value = "", $value_type = "", $owner_id = 0, $object_subtype = "", $order_by = "created desc", $limit = 10, $offset = 0) { - $results = get_metadatas($object_id, $object_type, $name, $value, $value_type, $owner_id, $order_by, $limit, $offset); + $results = get_metadatas($object_id, $object_type, $name, $value, $value_type, $owner_id, $object_subtype, $order_by, $limit, $offset); $objects = false; if ($results) |