From a2107572691b01cd8b63c61d6d32b6361eaec22a Mon Sep 17 00:00:00 2001 From: klokie Date: Thu, 8 Nov 2012 10:50:47 +0100 Subject: [PATCH] save media metadata to triple store even if in array format --- .../kendra_saracen_trial_mod.callbacks.inc | 31 ++++++++++++++----- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/modules/kendra_saracen_trial_mod/kendra_saracen_trial_mod.callbacks.inc b/modules/kendra_saracen_trial_mod/kendra_saracen_trial_mod.callbacks.inc index c114125..fe7bbda 100755 --- a/modules/kendra_saracen_trial_mod/kendra_saracen_trial_mod.callbacks.inc +++ b/modules/kendra_saracen_trial_mod/kendra_saracen_trial_mod.callbacks.inc @@ -538,14 +538,7 @@ function _kendra_saracen_trial_mod_register_mediaitem($data = NULL) { // save data items to triple store $store = sparql_get_store(variable_get('kendra_saracen_mediaitem_store', 'mediaItems'), SPARQL_ENDPOINT); - foreach ($data as $key => $value) { - $value = str_replace('"', '\"', trim($value)); - $url = url('node/' . $node->nid, array('absolute' => TRUE)); - $predicate = url('node/' . $node->nid, array('fragment' => $key, 'absolute' => TRUE)); - $store->query("INSERT INTO {\n" . - " <{$url}> <{$predicate}> \"{$value}\" .\n" . "}\n" - ); - } + _kendra_saracen_trial_mod_mediaitem_save_triples($node, $data, $store); /* * set codec & quality @@ -597,6 +590,28 @@ function _kendra_saracen_trial_mod_register_mediaitem($data = NULL) { return array('status' => 'OK', 'message' => 'Media item ' . $op, 'identifier' => $data['identifier']); } +/** +* save media metadata to triple store +*/ +function _kendra_saracen_trial_mod_mediaitem_save_triples(&$node, &$data, $store) { + if (is_array($data)) { + foreach ($data as $value) { + _kendra_saracen_trial_mod_mediaitem_save_triples($node, $value, $store); + } + } else if (is_object($data)) { + // @todo + } else { + foreach ($data as $key => $value) { + $value = str_replace('"', '\"', trim($value)); + $url = url('node/' . $node->nid, array('absolute' => TRUE)); + $predicate = url('node/' . $node->nid, array('fragment' => $key, 'absolute' => TRUE)); + $store->query("INSERT INTO {\n" . + " <{$url}> <{$predicate}> \"{$value}\" .\n" . "}\n" + ); + } + } +} + /** * _kendra_saracen_trial_mod_tag_mediaitem */