private function tryToFindAtLeastOnePropertyTableReferenceFor(DIProperty $property) { $resultList = ''; $resultMessage = ''; $resultCount = 0; $extra = ''; $dataItem = ApplicationFactory::getInstance()->getStore()->getPropertyTableIdReferenceFinder()->tryToFindAtLeastOneReferenceForProperty($property); if (!$dataItem instanceof DIWikiPage) { $resultMessage = 'No reference found.'; return array($resultMessage, $resultList, $resultCount); } // In case the item has already been marked as deleted but is yet pending // for removal if ($dataItem->getInterWiki() === ':smw-delete') { $resultMessage = 'Item reference "' . $dataItem->getSubobjectName() . '" has already been marked for removal.'; $dataItem = new DIWikiPage($dataItem->getDBKey(), $dataItem->getNamespace()); } $dataValue = DataValueFactory::getInstance()->newDataValueByItem($dataItem); $dataValue->setOutputFormat('LOCL'); if ($dataValue->isValid()) { //$resultMessage = 'Item reference for a zero-marked property.'; $resultList = $dataValue->getShortHtmlText($this->linker) . ' ' . $extra; $resultCount++; $resultList .= '  ' . Infolink::newBrowsingLink('+', $dataValue->getLongWikiText())->getHTML($this->linker); } return array($resultMessage, $resultList, $resultCount); }
/** * @since 2.1 * * @param integer $sid * @param DIWikiPage $subject * @param integer|string|null $interWiki */ public function updateInterwikiField($sid, DIWikiPage $subject, $interWiki = null) { $this->store->getConnection()->update(self::tableName, array('smw_iw' => $interWiki !== null ? $interWiki : $subject->getInterWiki()), array('smw_id' => $sid), __METHOD__); $this->setCache($subject->getDBKey(), $subject->getNamespace(), $subject->getInterWiki(), $subject->getSubobjectName(), $sid, $subject->getSortKey()); }
/** * @since 2.1 * * @param DIWikiPage $dataItem * * @return string */ public static function getHashIdForDiWikiPage(DIWikiPage $dataItem) { return self::createFromSegments($dataItem->getDBKey(), $dataItem->getNamespace(), $dataItem->getInterwiki(), $dataItem->getSubobjectName()); }