/** * @todo Implement testGetLocalName(). */ public function testGetLocalName() { $should = 'resource1'; $is = $this->_object->getLocalName(); $this->assertEquals($should, $is); }
public function __construct($resourceUri) { $owApp = OntoWiki::getInstance(); $store = $owApp->erfurt->getStore(); $model = $owApp->selectedModel; $resource = new Erfurt_Sparql_Query2_IriRef($resourceUri); $ontology = new Erfurt_Sparql_Query2_IriRef(EF_OWL_ONTOLOGY); $fetchFrom = new Erfurt_Sparql_Query2_IriRef(static::SITE_FETCH_OPTIONS_FROM); // fetch options from this resource $query = new Erfurt_Sparql_Query2(); list($key, $value, $class, $dataset) = $this->_queryAddVars($query, array('key', 'value', 'class', 'dataset')); $union = new Erfurt_Sparql_Query2_GroupOrUnionGraphPattern(); // resource options $group = new Erfurt_Sparql_Query2_GroupGraphPattern(); $group->addTriple($resource, $key, $value); $union->addElement($group); // class options $group = new Erfurt_Sparql_Query2_GroupGraphPattern(); $group->addTriple($resource, EF_RDF_TYPE, $class); $group->addTriple($class, $key, $value); $union->addElement($group); // dataset options $group = new Erfurt_Sparql_Query2_GroupGraphPattern(); $group->addTriple($dataset, EF_RDF_TYPE, new Erfurt_Sparql_Query2_IriRef(EF_OWL_ONTOLOGY)); $group->addTriple($dataset, $key, $value); $union->addElement($group); $query->addElement($union); $query->addTriple($key, EF_RDF_TYPE, new Erfurt_Sparql_Query2_IriRef(static::SITE_TEMPLATE_OPTION)); $results = $model->sparqlQuery($query); foreach ($results as $result) { $arrayKey = $result[$key->getName()]; $this->_options[$arrayKey][$this->_getPriority($result)][] = $result[$value->getName()]; $templateOption = new Erfurt_Rdf_Resource($arrayKey, $model); $arrayKeyLocalName = $templateOption->getLocalName(); $this->_optionLocalNames[$arrayKeyLocalName][] = $arrayKey; } // fetch options from linked resources $query = new Erfurt_Sparql_Query2(); list($other, $class, $dataset) = $this->_queryAddVars($query, array('other', 'class', 'dataset')); $union = new Erfurt_Sparql_Query2_GroupOrUnionGraphPattern(); // resource links $group = new Erfurt_Sparql_Query2_GroupGraphPattern(); $group->addTriple($resource, $fetchFrom, $other); $union->addElement($group); // class links $group = new Erfurt_Sparql_Query2_GroupGraphPattern(); $group->addTriple($resource, EF_RDF_TYPE, $class); $group->addTriple($class, $fetchFrom, $other); $union->addElement($group); // dataset links $group = new Erfurt_Sparql_Query2_GroupGraphPattern(); $group->addTriple($dataset, EF_RDF_TYPE, $ontology); $group->addTriple($dataset, $fetchFrom, $other); $union->addElement($group); $query->addElement($union); $results = $model->sparqlQuery($query); foreach ($results as $result) { $options = new TemplateOptionsClass($result[$other->getName()]); foreach ($options->_options as $arrayKey => $priorities) { foreach ($priorities as $priority => $values) { $floor = floor($priority); $this->_options[$arrayKey][(string) ($floor + 0.1 * $this->_getPriority($result) + 0.1 * ($priority - $floor))] = $values; } } foreach ($options->_optionLocalNames as $arrayKeyLocalName => $keys) { foreach ($keys as $key) { if (!isset($this->_optionLocalNames[$arrayKeyLocalName]) || !in_array($key, $this->_optionLocalNames[$arrayKeyLocalName])) { $this->_optionLocalNames[$arrayKeyLocalName][] = $key; } } } } foreach (array_keys($this->_options) as $key) { ksort($this->_options[$key]); } }