コード例 #1
0
ファイル: SMW_DI_Error.php プロジェクト: whysasse/kmwiki
 public function equals(SMWDataItem $di)
 {
     if ($di->getDIType() !== SMWDataItem::TYPE_ERROR) {
         return false;
     }
     return $di->getSerialization() === $this->getSerialization();
 }
コード例 #2
0
 /**
  * @since 1.8
  *
  * {@inheritDoc}
  */
 public function getInsertValues(DataItem $dataItem)
 {
     $serialization = rawurldecode($dataItem->getSerialization());
     $text = mb_strlen($serialization) <= self::MAX_LENGTH ? null : $serialization;
     // bytea type handling
     if ($text !== null && $GLOBALS['wgDBtype'] === 'postgres') {
         $text = pg_escape_bytea($text);
     }
     return array('o_blob' => $text, 'o_serialized' => $serialization);
 }
コード例 #3
0
 /**
  * Get the serialization for the provided data item.
  *
  * @since 1.7
  *
  * @param SMWDataItem $dataItem
  *
  * @return mixed
  */
 public static function getSerialization(SMWDataItem $dataItem)
 {
     switch ($dataItem->getDIType()) {
         case SMWDataItem::TYPE_WIKIPAGE:
             $title = $dataItem->getTitle();
             $result = array('fulltext' => $title->getFullText(), 'fullurl' => $title->getFullUrl());
             break;
         case SMWDataItem::TYPE_NUMBER:
             $result = $dataItem->getNumber();
             break;
         case SMWDataItem::TYPE_GEO:
             $result = $dataItem->getCoordinateSet();
             break;
         case SMWDataItem::TYPE_TIME:
             $result = $dataItem->getMwTimestamp();
             break;
         default:
             $result = $dataItem->getSerialization();
             break;
     }
     return $result;
 }
コード例 #4
0
 /**
  * @see SMWDataItemHandler::getInsertValues()
  * @return array
  */
 public function getInsertValues(SMWDataItem $dataItem)
 {
     return array('o_serialized' => $dataItem->getSerialization(), 'o_lat' => $dataItem->getLatitude(), 'o_lon' => $dataItem->getLongitude());
 }
コード例 #5
0
 /**
  * Method to return an array of fields=>values for a DataItem
  * This array is used to perform all insert operations into the DB
  * To optimize return minimum fields having indexes
  *
  * @return array
  */
 public function getInsertValues(SMWDataItem $dataItem)
 {
     return array('o_serialized' => $dataItem->getSerialization());
 }
コード例 #6
0
 /**
  * @since 1.8
  *
  * {@inheritDoc}
  */
 public function getInsertValues(DataItem $dataItem)
 {
     return array('o_serialized' => $dataItem->getSerialization(), 'o_sortkey' => $dataItem->getSortKey());
 }
コード例 #7
0
 /**
  * @see SMWDataItemHandler::getInsertValues
  * @return array
  */
 public function getInsertValues(SMWDataItem $dataItem)
 {
     return array('o_serialized' => $dataItem->getSerialization(), 'o_sortkey' => floatval($dataItem->getNumber()));
 }
コード例 #8
0
 /**
  * Compatibility function for computing the old getDBkeys() array for
  * the new SMW data items.
  *
  * @param $dataItem SMWDataItem
  * @return array of mixed
  */
 public static function getDBkeysFromDataItem(SMWDataItem $dataItem)
 {
     switch ($dataItem->getDIType()) {
         case SMWDataItem::TYPE_STRING:
         case SMWDataItem::TYPE_BLOB:
             return array($dataItem->getString());
         case SMWDataItem::TYPE_URI:
             return array($dataItem->getSerialization());
         case SMWDataItem::TYPE_WIKIPAGE:
             return array($dataItem->getDBkey(), $dataItem->getNamespace(), $dataItem->getInterwiki(), $dataItem->getSortKey());
         case SMWDataItem::TYPE_NUMBER:
             return array($dataItem->getSerialization(), floatval($dataItem->getNumber()));
         case SMWDataItem::TYPE_TIME:
             $xsdvalue = $dataItem->getYear() . "/" . ($dataItem->getPrecision() >= SMWDITime::PREC_YM ? $dataItem->getMonth() : '') . "/" . ($dataItem->getPrecision() >= SMWDITime::PREC_YMD ? $dataItem->getDay() : '') . "T";
             if ($dataItem->getPrecision() == SMWDITime::PREC_YMDT) {
                 $xsdvalue .= sprintf("%02d", $dataItem->getHour()) . ':' . sprintf("%02d", $dataItem->getMinute()) . ':' . sprintf("%02d", $dataItem->getSecond());
             }
             return array($xsdvalue, $dataItem->getSortKey());
         case SMWDataItem::TYPE_BOOLEAN:
             return $dataItem->getBoolean() ? array('1', 1) : array('0', 0);
         case SMWDataItem::TYPE_CONTAINER:
             return array(false);
         case SMWDataItem::TYPE_CONCEPT:
             return array($dataItem->getConceptQuery(), $dataItem->getDocumentation(), $dataItem->getQueryFeatures(), $dataItem->getSize(), $dataItem->getDepth());
         case SMWDataItem::TYPE_PROPERTY:
             return array($dataItem->getKey());
         case SMWDataItem::TYPE_GEO:
             $coordinateSet = $dataItem->getCoordinateSet();
             return array($coordinateSet['lat'], $coordinateSet['lon']);
         default:
             return array(false);
     }
 }