/** * 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; }
function addSemanticResultWrapper($dbr, $res, $num, $query, $mainlabel, $printouts) { $qr = array(); $count = 0; $store = smwfGetStore(); while ($count < $num && ($row = $dbr->fetchObject($res))) { $count++; if (class_exists('SMWDIWikiPage')) { // SMW 1.6 $qr[] = new SMWDIWikiPage($row->t, $row->ns, null); } else { $qr[] = SMWWikiPageValue::makePage($row->t, $row->ns, $row->sortkey); } if (method_exists($store, 'cacheSMWPageID')) { if (method_exists('SMWDIWikiPage', 'getSubobjectName')) { // SMW 1.6 $store->cacheSMWPageID($row->id, $row->t, $row->ns, $row->iw, ''); } else { $store->cacheSMWPageID($row->id, $row->t, $row->ns, $row->iw); } } } if ($dbr->fetchObject($res)) { $count++; } $dbr->freeResult($res); $printrequest = new SMWPrintRequest(SMWPrintRequest::PRINT_THIS, $mainlabel); $main_printout = array(); $main_printout[$printrequest->getHash()] = $printrequest; $printouts = array_merge($main_printout, $printouts); return new SMWQueryResult($printouts, $query, $qr, $store, $count > $num); }
function addSemanticResultWrapper($dbr, $res, $num, $query, $mainlabel, $printouts) { $qr = array(); $count = 0; $store = SDUtils::getSMWStore(); while ($count < $num && ($row = $dbr->fetchObject($res))) { $count++; $qr[] = new SMWDIWikiPage($row->t, $row->ns, ''); if (method_exists($store, 'cacheSMWPageID')) { $store->cacheSMWPageID($row->id, $row->t, $row->ns, $row->iw, ''); } } if ($dbr->fetchObject($res)) { $count++; } $dbr->freeResult($res); $printrequest = new SMWPrintRequest(SMWPrintRequest::PRINT_THIS, $mainlabel); $main_printout = array(); $main_printout[$printrequest->getHash()] = $printrequest; $printouts = array_merge($main_printout, $printouts); return new SMWQueryResult($printouts, $query, $qr, $store, $count > $num); }