/** * 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'); }