+ if ($node_id) {
+ $tags = $api->GetSliceTags(array('slice_id'=>$slice_id, 'tag_type_id'=> $tag_type_id, 'node_id' => $node_id));
+ } elseif ($nodegroup_id) {
+ $tags = $api->GetSliceTags(array('slice_id'=>$slice_id, 'tag_type_id'=> $tag_type_id, 'nodegroup_id' => $nodegroup_id));
+ } else {
+ $tags = $api->GetSliceTags(array('slice_id'=>$slice_id, 'tag_type_id'=> $tag_type_id, 'node_id' => NULL, 'nodegroup_id' => NULL));
+ }
+
+ if ( count ($tags) == 1) {
+ $tag=$tags[0];
+ $tag_id=$tag['slice_tag_id'];
+ $result=$api->UpdateSliceTag($tag_id,$value);
+ if ($result)
+ drupal_set_message ("Updated slice tag.");
+ else
+ drupal_set_error("Could not update slice tag");
+ } else {
+ if ($node_id) {
+ $result = $api->AddSliceTag($slice_id, $tag_type_id, $value, $node_id);
+ } elseif ($nodegroup_id) {
+ $result = $api->AddSliceTag($slice_id, $tag_type_id, $value, null, $nodegroup_id);
+ } else {
+ $result = $api->AddSliceTag($slice_id, $tag_type_id, $value);
+ }
+
+ if ($result)
+ drupal_set_message ("Added slice tag.");
+ else
+ drupal_set_error("Could not add slice tag");
+ }