diff options
author | dave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2009-07-02 13:13:35 +0000 |
---|---|---|
committer | dave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2009-07-02 13:13:35 +0000 |
commit | 9312895b42871eb6a8e7a9aa495acde27566b587 (patch) | |
tree | 45925dae3c860d1433d60d7374e5893720972437 | |
parent | dd3561e3a9d3dc940fb250c96970cbcba42913ad (diff) | |
download | elgg-9312895b42871eb6a8e7a9aa495acde27566b587.tar.gz elgg-9312895b42871eb6a8e7a9aa495acde27566b587.tar.bz2 |
order by now works on get entities from metadata
git-svn-id: https://code.elgg.org/elgg/trunk@3379 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r-- | engine/lib/metadata.php | 93 |
1 files changed, 48 insertions, 45 deletions
diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index 063188a47..fe83e15d8 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -256,7 +256,7 @@ $id = $existing->id;
delete_metadata($id);
- } + }
return $id;
}
@@ -311,7 +311,7 @@ $name = add_metastring($name);
if (!$name) return false;
- +
// If ok then add it
$result = update_data("UPDATE {$CONFIG->dbprefix}metadata set value_id='$value', value_type='$value_type', access_id=$access_id, owner_guid=$owner_guid where id=$id and name_id='$name'");
if ($result!==false) {
@@ -355,7 +355,7 @@ $id = (int)$id;
$metadata = get_metadata($id);
- +
if ($metadata) {
// Tidy up if memcache is enabled.
static $metabyname_memcache;
@@ -364,9 +364,9 @@ if ($metabyname_memcache) $metabyname_memcache->delete("{$metadata->entity_guid}:{$metadata->name_id}");
if (($metadata->canEdit()) && (trigger_elgg_event('delete', 'metadata', $metadata)))
- return delete_data("DELETE from {$CONFIG->dbprefix}metadata where id=$id"); + return delete_data("DELETE from {$CONFIG->dbprefix}metadata where id=$id");
}
- +
return false;
}
@@ -513,7 +513,10 @@ $entity_subtype = get_subtype_id($entity_type, $entity_subtype);
$limit = (int)$limit;
$offset = (int)$offset;
- if ($order_by == "") $order_by = "e.time_created desc";
+ if ($order_by == "")
+ $order_by = "e.time_created desc";
+ else
+ $order_by = "e.time_created {$order_by}";
$order_by = sanitise_string($order_by);
$site_guid = (int) $site_guid;
if ((is_array($owner_guid) && (count($owner_guid)))) {
@@ -604,7 +607,7 @@ * @param int $offset
* @param string $order_by Optional ordering.
* @param int $site_guid The site to get entities for. Leave as 0 (default) for the current site; -1 for all sites.
- * @param true|false $count If set to true, returns the total number of entities rather than a list. (Default: false) + * @param true|false $count If set to true, returns the total number of entities rather than a list. (Default: false)
* @param string $meta_array_operator Operator used for joining the metadata array together
* @return int|array List of ElggEntities, or the total number if count is set to false
*/
@@ -619,8 +622,8 @@ $where = array();
$mindex = 1;
- $join = ""; - $metawhere = array(); + $join = "";
+ $metawhere = array();
$meta_array_operator = sanitise_string($meta_array_operator);
foreach($meta_array as $meta_name => $meta_value) {
$meta_n = get_metastring_id($meta_name);
@@ -629,10 +632,10 @@ /*if ($meta_name!=="")
$where[] = "m{$mindex}.name_id='$meta_n'";
if ($meta_value!=="")
- $where[] = "m{$mindex}.value_id='$meta_v'";*/ + $where[] = "m{$mindex}.value_id='$meta_v'";*/
$metawhere[] = "(m{$mindex}.name_id='$meta_n' AND m{$mindex}.value_id='$meta_v')";
$mindex++;
- } + }
$where[] = "(".implode($meta_array_operator, $metawhere).")";
$entity_type = sanitise_string($entity_type);
@@ -641,12 +644,12 @@ $offset = (int)$offset;
if ($order_by == "") $order_by = "e.time_created desc";
$order_by = sanitise_string($order_by);
- if ((is_array($owner_guid) && (count($owner_guid)))) { - foreach($owner_guid as $key => $guid) { - $owner_guid[$key] = (int) $guid; - } - } else { - $owner_guid = (int) $owner_guid; + if ((is_array($owner_guid) && (count($owner_guid)))) {
+ foreach($owner_guid as $key => $guid) {
+ $owner_guid[$key] = (int) $guid;
+ }
+ } else {
+ $owner_guid = (int) $owner_guid;
}
$site_guid = (int) $site_guid;
@@ -660,10 +663,10 @@ if ($entity_subtype)
$where[] = "e.subtype = {$entity_subtype}";
if ($site_guid > 0)
- $where[] = "e.site_guid = {$site_guid}"; - if (is_array($owner_guid)) { - $where[] = "e.container_guid in (".implode(",",$owner_guid).")"; - } else if ($owner_guid > 0) + $where[] = "e.site_guid = {$site_guid}";
+ if (is_array($owner_guid)) {
+ $where[] = "e.container_guid in (".implode(",",$owner_guid).")";
+ } else if ($owner_guid > 0)
$where[] = "e.container_guid = {$owner_guid}";
//if ($owner_guid > 0)
// $where[] = "e.container_guid = {$owner_guid}";
@@ -738,29 +741,29 @@ return delete_data("DELETE from {$CONFIG->dbprefix}metadata where entity_guid={$entity_guid}");
}
return false;
- } - - /** - * Clear all annotations belonging to a given owner_guid - * - * @param int $owner_guid The owner - */ - function clear_metadata_by_owner($owner_guid) - { - global $CONFIG; - - $owner_guid = (int)$owner_guid; - - $metas = get_data("SELECT id from {$CONFIG->dbprefix}metadata WHERE owner_guid=$owner_guid"); - $deleted = 0; - - foreach ($metas as $id) - { - if (delete_metadata($id->id)) // Is this the best way? - $deleted++; - } - - return $deleted; + }
+
+ /**
+ * Clear all annotations belonging to a given owner_guid
+ *
+ * @param int $owner_guid The owner
+ */
+ function clear_metadata_by_owner($owner_guid)
+ {
+ global $CONFIG;
+
+ $owner_guid = (int)$owner_guid;
+
+ $metas = get_data("SELECT id from {$CONFIG->dbprefix}metadata WHERE owner_guid=$owner_guid");
+ $deleted = 0;
+
+ foreach ($metas as $id)
+ {
+ if (delete_metadata($id->id)) // Is this the best way?
+ $deleted++;
+ }
+
+ return $deleted;
}
/**
@@ -799,7 +802,7 @@ if (is_string($string)) {
$ar = explode(",",$string);
- $ar = array_map('trim', $ar); // trim blank spaces + $ar = array_map('trim', $ar); // trim blank spaces
$ar = array_map('elgg_strtolower', $ar); // make lower case : [Marcus Povey 20090605 - Using mb wrapper function using UTF8 safe function where available]
$ar = array_filter($ar, 'is_not_null'); // Remove null values
return $ar;
|