Пример #1
0
 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);
 }
Пример #2
0
 /**
  * @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());
 }
Пример #3
0
 /**
  * @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());
 }