Exemplo n.º 1
0
 /**
  * Return an SMWDataValue object for the next SMWDataItem object or
  * false if no further object exists.
  * 
  * @since 1.6
  * 
  * @return SMWDataValue or false
  */
 public function getNextDataValue()
 {
     $di = $this->getNextDataItem();
     if ($di === false) {
         return false;
     }
     if ($this->mPrintRequest->getMode() == SMWPrintRequest::PRINT_PROP && $this->mPrintRequest->getTypeID() == '_rec' && $this->mPrintRequest->getParameter('index') !== false) {
         // Not efficient, but correct: we need to find the right property for
         // the selected index of the record here.
         $pos = $this->mPrintRequest->getParameter('index') - 1;
         $recordValue = SMWDataValueFactory::newDataItemValue($di, $this->mPrintRequest->getData()->getDataItem());
         $diProperties = $recordValue->getPropertyDataItems();
         if (array_key_exists($pos, $diProperties) && !is_null($diProperties[$pos])) {
             $diProperty = $diProperties[$pos];
         } else {
             $diProperty = null;
         }
     } elseif ($this->mPrintRequest->getMode() == SMWPrintRequest::PRINT_PROP) {
         $diProperty = $this->mPrintRequest->getData()->getDataItem();
     } else {
         $diProperty = null;
     }
     $dv = SMWDataValueFactory::newDataItemValue($di, $diProperty);
     if ($this->mPrintRequest->getOutputFormat()) {
         $dv->setOutputFormat($this->mPrintRequest->getOutputFormat());
     }
     return $dv;
 }
	/**
	 * Return an SMWDataValue object for the next SMWDataItem object or
	 * false if no further object exists.
	 * 
	 * @since 1.6
	 * 
	 * @return SMWDataValue or false
	 */
	public function getNextDataValue() {
		$di = $this->getNextDataItem();
		if ( $di === false ) {
			return false;
		}
		if ( $this->mPrintRequest->getMode() == SMWPrintRequest::PRINT_PROP ) {
			$diProperty = $this->mPrintRequest->getData()->getDataItem();
		} else {
			$diProperty = null;
		}
		$dv = SMWDataValueFactory::newDataItemValue( $di, $diProperty );
		if ( $this->mPrintRequest->getOutputFormat() ) {
			$dv->setOutputFormat( $this->mPrintRequest->getOutputFormat() );
		}
		return $dv;
	}
Exemplo n.º 3
0
 /**
  * Rewrite printrequests in the way that subselection are cut down to normal property selections
  * in order to display them properly.
  *
  * @param SMWPrintRequest $pr
  * @return SMWPrintRequest
  */
 private function rewritePrintrequest($pr)
 {
     $data = $pr->getData();
     $rewritten_prs = $pr;
     if ($data instanceof Title) {
         // property chain appear as Title
         $titleText = $data->getText();
         $chain = explode(".", $titleText);
         if (count($chain) > 1) {
             $newtitle = Title::newFromText($chain[count($chain) - 1], SMW_NS_PROPERTY);
             if ($newtitle->exists()) {
                 $newlabel = $pr->getLabel() != $titleText ? $pr->getLabel() : $newtitle->getText();
                 $newData = SMWPropertyValue::makeUserProperty($newtitle->getText());
             } else {
                 $newlabel = $pr->getLabel() != $titleText ? $pr->getLabel() : $newtitle->getText();
                 $newData = $newtitle;
             }
             $rewritten_prs = new SMWPrintRequest($newtitle->exists() ? SMWPrintRequest::PRINT_PROP : SMWPrintRequest::PRINT_THIS, $newlabel, $newData, $pr->getOutputFormat());
             $rewritten_prs->getHash();
         }
     }
     return $rewritten_prs;
 }