From 3b384b7374fd44795d3ceb7c434630d1b4695750 Mon Sep 17 00:00:00 2001 From: ben Date: Fri, 4 Apr 2008 13:23:25 +0000 Subject: Added better support for arrays of metadata git-svn-id: https://code.elgg.org/elgg/trunk@402 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/entities.php | 7 +++++-- engine/lib/metadata.php | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-) (limited to 'engine/lib') diff --git a/engine/lib/entities.php b/engine/lib/entities.php index e344968a9..92b658ef2 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -117,8 +117,11 @@ { $md = get_metadata_byname($this->getGUID(), $name); - if ($md) - return $md->value; + if ($md && !is_array($md)) { + return $md->value; + } else if ($md && is_array($md)) { + return metadata_array_to_values($md); + } return null; } diff --git a/engine/lib/metadata.php b/engine/lib/metadata.php index 92b683789..37a89f09e 100644 --- a/engine/lib/metadata.php +++ b/engine/lib/metadata.php @@ -375,6 +375,44 @@ return $returnvalue; } + + /** + * Takes in a comma-separated string and returns an array of tags which have been trimmed and set to lower case + * + * @param string $string Comma-separated tag string + * @return array|false An array of strings, or false on failure + */ + function string_to_tag_array($string) { + + if (is_string($string)) { + $ar = explode(",",$string); + array_walk($ar,'trim'); + array_walk($ar,'strtolower'); + return $ar; + } + return false; + + } + + /** + * Takes a metadata array (which has all kinds of properties) and turns it into a simple array of strings + * + * @param array $array Metadata array + * @return array Array of strings + */ + function metadata_array_to_values($array) { + + $valuearray = array(); + + if (is_array($array)) { + foreach($array as $element) { + $valuearray[] = $element->value; + } + } + + return $valuearray; + + } /** Register the hook */ register_plugin_hook("export", "all", "export_metadata_plugin_hook", 2); -- cgit v1.2.3