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