Esempio n. 1
0
 /**
  * Renders table content for a given SMWSemanticData object
  *
  * @since 1.9
  *
  * @param SMWSemanticData $semanticData
  */
 protected function getTableContent(SemanticData $semanticData)
 {
     // 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', 'sub');
     $attributes = array();
     foreach ($semanticData->getProperties() as $propertyDi) {
         $propertyDv = $this->dataValueFactory->newDataValueByItem($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->newDataValueByItem($dataItem, $propertyDi);
             $dataValue->setOutputFormat('LOCL');
             $dataValue->disableServiceLinks();
             if ($dataValue->isValid()) {
                 $valuesHtml[] = Sanitizer::removeHTMLtags($dataValue->getLongWikiText(true), null, array(), array(), $excluded) . $this->getInfolink($dataValue);
             }
         }
         // Invoke table content
         $this->htmlTableRenderer->addCell($propertyDv->getShortWikiText(true), $attributes['property']);
         $this->htmlTableRenderer->addCell($this->messageBuilder->listToCommaSeparatedText($valuesHtml), $attributes['values']);
         $this->htmlTableRenderer->addRow();
     }
 }
 /**
  * @since 2.1
  *
  * @return DataValue
  */
 public function getLocatedInValue()
 {
     $locatedInProperty = new LocatedInProperty();
     return $this->dataValueFactory->newDataValueByItem(new DIWikiPage('France', NS_MAIN), $locatedInProperty->getProperty());
 }
 private function defineElementsForImportDataItem(DataItem $dataItem)
 {
     $importValue = $this->dataValueFactory->newDataValueByItem($dataItem, new DIProperty('_IMPO'));
     return array($importValue->getLocalName(), $importValue->getNS(), $importValue->getNSID());
 }
 /**
  * @since 2.1
  *
  * @return DataValue
  */
 public function getLocatedInValue()
 {
     $locatedInProperty = new LocatedInProperty();
     return $this->dataValueFactory->newDataValueByItem(DIWikiPage::newFromText('European Union', NS_MAIN), $locatedInProperty->getProperty(), 'EU');
 }