/**
  * @see SMWDescription::getQueryString
  * 
  * @since 0.6
  * 
  * @param boolean $asValue
  * @return string
  */
 public function getQueryString($asValue = false)
 {
     if ($this->getDataItem() !== null) {
         $queryString = DataValueFactory::newDataItemValue($this->getDataItem(), $this->getPropertyCompat())->getWikiValue();
         return $asValue ? $queryString : "[[{$queryString}]]";
     } else {
         return $asValue ? '+' : '';
     }
 }
 public function testConstruct()
 {
     $geoDI = new SMWDIGeoCoord(23, 42);
     /**
      * @var SMGeoCoordsValue $geoValue
      */
     $geoValue = DataValueFactory::newDataItemValue($geoDI);
     $this->assertInstanceOf('SMGeoCoordsValue', $geoValue);
     $this->assertEquals($geoDI, $geoValue->getDataItem());
     $this->assertEquals('23° 0\' 0", 42° 0\' 0"', $geoValue->getShortWikiText());
 }
Esempio n. 3
0
 /**
  * Renders table content for a given SMWSemanticData object
  *
  * @since 1.9
  *
  * @param SMWSemanticData $semanticData
  */
 protected function getTableContent(SemanticData $semanticData)
 {
     Profiler::In(__METHOD__);
     // Do exclude some tags from processing otherwise the display
     // can become distorted due to unresolved/open tags (see Bug 23185)
     $excluded = array('table', 'tr', 'th', 'td', 'dl', 'dd', 'ul', 'li', 'ol', 'b', 'sup', 'sub');
     $attributes = array();
     foreach ($semanticData->getProperties() as $propertyDi) {
         $propertyDv = $this->dataValueFactory->newDataItemValue($propertyDi, null);
         if (!$propertyDi->isShown()) {
             // showing this is not desired, hide
             continue;
         } elseif ($propertyDi->isUserDefined()) {
             // User defined property (@note the preg_replace is a slight
             // hack to ensure that the left column does not get too narrow)
             $propertyDv->setCaption(preg_replace('/[ ]/u', ' ', $propertyDv->getWikiValue(), 2));
             $attributes['property'] = array('class' => 'smwpropname');
             $attributes['values'] = array('class' => 'smwprops');
         } elseif ($propertyDv->isVisible()) {
             // Predefined property
             $attributes['property'] = array('class' => 'smwspecname');
             $attributes['values'] = array('class' => 'smwspecs');
         } else {
             // predefined, internal property
             // @codeCoverageIgnoreStart
             continue;
             // @codeCoverageIgnoreEnd
         }
         $valuesHtml = array();
         foreach ($semanticData->getPropertyValues($propertyDi) as $dataItem) {
             $dataValue = $this->dataValueFactory->newDataItemValue($dataItem, $propertyDi);
             $dataValue->setServiceLinksRenderState(false);
             if ($dataValue->isValid()) {
                 $valuesHtml[] = Sanitizer::removeHTMLtags($dataValue->getLongWikiText(true), null, array(), array(), $excluded) . $dataValue->getInfolinkText(SMW_OUTPUT_WIKI);
             }
         }
         // Invoke table content
         $this->tableBuilder->addCell($propertyDv->getShortWikiText(true), $attributes['property']);
         $this->tableBuilder->addCell($this->messageBuilder->listToCommaSeparatedText($valuesHtml), $attributes['values']);
         $this->tableBuilder->addRow();
     }
     Profiler::Out(__METHOD__);
 }
 /**
  * @since 2.1
  *
  * @return DataValue
  */
 public function getLocatedInValue()
 {
     $locatedInProperty = new LocatedInProperty();
     return $this->dataValueFactory->newDataItemValue(new DIWikiPage('France', NS_MAIN), $locatedInProperty->getProperty());
 }
Esempio n. 5
0
 /**
  * @since 2.1
  *
  * @return DataValue
  */
 public function getLocatedInValue()
 {
     $locatedInProperty = new LocatedInProperty();
     return $this->dataValueFactory->newDataItemValue(DIWikiPage::newFromText('European Union', NS_MAIN), $locatedInProperty->getProperty(), 'EU');
 }
 private function defineElementsForImportDataItem(DataItem $dataItem)
 {
     $importValue = $this->dataValueFactory->newDataItemValue($dataItem, new DIProperty('_IMPO'));
     return array($importValue->getLocalName(), $importValue->getNS(), $importValue->getNSID());
 }