Esempio n. 1
0
function toggleNS($uri = '', $ns_array = array())
{
    // Convert NS to full URL
    if (isNS($uri)) {
        $ns = getNS($uri);
        foreach ($ns_array as $candidate_ns => $candidate_prefix) {
            if ($ns == $candidate_ns) {
                return str_replace($candidate_ns . ':', $candidate_prefix, $uri);
            }
        }
        // Convert full URL to NS
    } elseif (isURL($uri)) {
        $prefix = getPrefix($uri);
        foreach ($ns_array as $candidate_ns => $candidate_prefix) {
            if ($prefix == $candidate_prefix) {
                return str_replace($candidate_prefix, $candidate_ns . ':', $uri);
            }
        }
    }
    return $uri;
}
Esempio n. 2
0
 /** 
  * Save an array of fields and values for a single node by URN
  */
 public function save_by_urn($urn, $array = array(), $g = 'urn:scalar')
 {
     $conf = array('ns' => $this->ns);
     $resource = ARC2::getResource($conf);
     $resource->setURI($urn);
     foreach ($array as $field => $valueArray) {
         if (!isNS($field) && !isURL($field)) {
             continue;
         }
         $field = toURL($field, $this->ns);
         if (!is_array($valueArray)) {
             $valueArray = array($valueArray);
         }
         $insert_values = array();
         foreach ($valueArray as $value) {
             if (empty($value)) {
                 continue;
             }
             if (is_string($value)) {
                 if (substr($value, -1, 1) == '"') {
                     $value .= ' ';
                 }
                 // ARC bug fix
                 //$value = closeOpenTags($value);
             }
             if (is_array($value)) {
                 if (empty($value['value'])) {
                     continue;
                 }
                 $insert_values[] = $value;
             } else {
                 $insert_values[] = array('value' => $value, 'type' => isURL($value) || isNS($value, $this->ns) ? 'uri' : 'literal');
             }
         }
         if (!empty($insert_values)) {
             $resource->setProp($field, $insert_values);
         }
     }
     $this->store->insert($resource->index, $g);
     if ($errs = $this->store->getErrors()) {
         print_r($errs);
     }
     return true;
 }