/** * Returns a table * * @param SMWQueryResult $res * @param integer $outputMode * * @return string */ protected function getResultText(SMWQueryResult $res, $outputMode) { $this->isHTML = $outputMode === SMW_OUTPUT_HTML; $this->htmlTableRenderer = ApplicationFactory::getInstance()->newMwCollaboratorFactory()->newHtmlTableRenderer(); $this->htmlTableRenderer->setHtmlContext($this->isHTML); $columnClasses = array(); // Default cell value separator if (!isset($this->params['sep']) || $this->params['sep'] === '') { $this->params['sep'] = '<br>'; } if ($this->mShowHeaders != SMW_HEADERS_HIDE) { // building headers foreach ($res->getPrintRequests() as $pr) { $attributes = array(); $columnClass = str_replace(array(' ', '_'), '-', strip_tags($pr->getText(SMW_OUTPUT_WIKI))); $attributes['class'] = $columnClass; // Also add this to the array of classes, for // use in displaying each row. $columnClasses[] = $columnClass; $text = $pr->getText($outputMode, $this->mShowHeaders == SMW_HEADERS_PLAIN ? null : $this->mLinker); $this->htmlTableRenderer->addHeader($text === '' ? ' ' : $text, $attributes); } } $rowNumber = 0; while ($subject = $res->getNext()) { $rowNumber++; $this->getRowForSubject($subject, $outputMode, $columnClasses); $this->htmlTableRenderer->addRow(array('data-row-number' => $rowNumber)); } // print further results footer if ($this->linkFurtherResults($res)) { $link = $this->getFurtherResultsLink($res, $outputMode); $this->htmlTableRenderer->addCell($link->getText($outputMode, $this->mLinker), array('class' => 'sortbottom', 'colspan' => $res->getColumnCount())); $this->htmlTableRenderer->addRow(array('class' => 'smwfooter')); } $tableAttrs = array('class' => $this->params['class']); if ($this->mFormat == 'broadtable') { $tableAttrs['width'] = '100%'; } $this->htmlTableRenderer->transpose($this->mShowHeaders !== SMW_HEADERS_HIDE && $this->params['transpose']); return $this->htmlTableRenderer->getHtml($tableAttrs); }