diff options
Diffstat (limited to 'engine')
-rw-r--r-- | engine/lib/entities.php | 7 | ||||
-rw-r--r-- | engine/lib/metadata.php | 38 |
2 files changed, 43 insertions, 2 deletions
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); |