in extensions/SMWAskAPI/api/SMWAsk_API.php [141:185]
private function resultToItem($r) {
// variables used to reconstruct URI from page title
global $wgServer, $wgScriptPath;
$rowsubject = false; // the wiki page value that this row is about
$item = array(); // contains Property-Value pairs to characterize an Item
$item['properties'] = array();
foreach ($r as $field) {
$pr = $field->getPrintRequest();
if ($rowsubject === false) {
$rowsubject = $field->getResultSubject();
$item['title'] = $rowsubject->getShortText(null, null);
}
if ($pr->getMode() != SMWPrintRequest::PRINT_THIS) {
$values = array();
while (( $value = $field->getNextObject() ) !== false) {
switch ($value->getTypeID()) {
case '_geo':
$values[] = $value->getWikiValue();
break;
case '_num':
$values[] = $value->getValueKey();
break;
case '_dat':
$values[] = $value->getYear() . "-" . str_pad($value->getMonth(), 2, '0', STR_PAD_LEFT) . "-" . str_pad($value->getDay(), 2, '0', STR_PAD_LEFT) . " " . $value->getTimeString();
break;
default:
$values[] = $value->getShortText(null, null);
}
}
$this->addPropToItem($item, str_replace(" ", "_", strtolower($pr->getLabel())), $values);
}
}
if ($rowsubject !== false) { // stuff in the page URI and some category data
$item['uri'] = $wgServer . $wgScriptPath . '/index.php?title=' . $rowsubject->getPrefixedText();
$page_cats = smwfGetStore()->getPropertyValues($rowsubject, SMWPropertyValue::makeProperty('_INST')); // TODO: set limit to 1 here
if (count($page_cats) > 0) {
$this->addPropToItem($item, 'type', array(reset($page_cats)->getShortHTMLText()));
}
}
return $item;
}