Source for file HTML.php
Documentation is available at HTML.php
require_once RDFAPI_INCLUDE_DIR .
'sparql/SparqlEngineDb/ResultRenderer.php';
* Sparql DB HTML result renderer.
* @author Christian Weiske <cweiske@cweiske.de>
* If the result HTML should be wrapped in a div
* Defines the methods needed to create the types
* Key is the type (e.g. "s" for subject), and
* value the method's name.
's' =>
'createSubjectFromDbRecordSetPart',
'p' =>
'createPredicateFromDbRecordSetPart',
'o' =>
'createObjectFromDbRecordSetPart'
* Converts the database results into nice HTML.
* @param array $arRecordSets Array of (possibly several) SQL query results.
* @param Query $query SPARQL query object
* @param SparqlEngineDb $engine Sparql Engine to query the database
* @return mixed HTML code
$this->sg =
$engine->getSqlGenerator();
$strResultForm =
$query->getResultForm();
switch ($strResultForm) {
'Construct and describe are currently not supported by the'
if (count($arRecordSets) >
1) {
'More than one result set for a '
.
$strResultForm .
' query!'
$dbRecordSet =
reset($arRecordSets);
foreach ($dbRecordSet as $row) {
$nCount =
intval($row['count']);
if ($strResultForm ==
'ask') {
$strCode =
'There were results.';
$strCode =
'There are ' .
$nCount .
' results.';
throw
new Exception('Unsupported result form: ' .
$strResultForm);
}//public function convertFromDbResults($arRecordSets, Query $query, SparqlEngineDb $engine)
'<div class="SparqlEngineDb_ResultRenderer_HTML_result">' .
"\n"
}//protected function wrapCode($strCode)
$arResultVars =
$this->query->getResultVars();
$arResultVars =
array_keys($this->sg->arVarAssignments);
foreach ($arRecordSets as $dbRecordSet) {
//work around bug in adodb:
// ADORecordSet_empty does not implement php5 iterators
if ($dbRecordSet->RowCount() <=
0) {
foreach ($dbRecordSet as $row) {
foreach ($arResultVars as $strVarName) {
if (!isset
($this->sg->arVarAssignments[$strVarName])) {
//variable is in select, but not in result (test: q-select-2)
$arResultRow[$strVarName] =
'';
$arVarSettings =
$this->sg->arVarAssignments[$strVarName];
list
($strCode, $strColor) =
$this->$strMethod($dbRecordSet, $arVarSettings[0], $strVarName);
$arResultRow[$strVarName] =
'<td style="background-color: '
.
$strColor .
'">' .
$strCode .
'</td>';
$arResult[] =
$arResultRow;
//I always wanted to to this :)
.
" <caption>SPARQL result with " .
count($arResult) .
" rows</caption>\n"
'return implode("", $ar);'
}//protected function createTableFromRecords($arRecordSets)
* Creates an RDF subject object
* contained in the given $dbRecordSet object.
* @see convertFromDbResult() to understand $strVarBase necessity
* @param ADORecordSet $dbRecordSet Record set returned from ADOConnection::Execute()
* @param string $strVarBase Prefix of the columns the recordset fields have.
* @return string HTML code
if ($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']] ===
null) {
if ($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_is']] ==
'r'
//null should be predicate which is always a resource
||
$dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_is']] ===
null
return $this->getHtmlResource($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']]);
return $this->getHtmlBlank($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']]);
}//protected function createSubjectFromDbRecordSetPart(ADORecordSet $dbRecordSet, $strVarBase, $strVarName)
* Creates an RDF predicate object
* contained in the given $dbRecordSet object.
* @see convertFromDbResult() to understand $strVarBase necessity
* @param ADORecordSet $dbRecordSet Record set returned from ADOConnection::Execute()
* @param string $strVarBase Prefix of the columns the recordset fields have.
* @return string HTML code
if ($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']] ===
null) {
return $this->getHtmlResource($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']]);
}//protected function createPredicateFromDbRecordSetPart(ADORecordSet $dbRecordSet, $strVarBase, $strVarName)
* Creates an RDF object object
* contained in the given $dbRecordSet object.
* @see convertFromDbResult() to understand $strVarBase necessity
* @param ADORecordSet $dbRecordSet Record set returned from ADOConnection::Execute()
* @param string $strVarBase Prefix of the columns the recordset fields have.
* @return string HTML code
if ($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']] ===
null) {
switch ($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_is']]) {
return $this->getHtmlResource($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']]);
return $this->getHtmlBlank($dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']]);
$dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_value']],
$dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_lang']],
$dbRecordSet->fields[$strVarBase .
'.' .
$this->sg->arVarAssignments[$strVarName]['sql_type']]
}//protected function createObjectFromDbRecordSetPart(ADORecordSet $dbRecordSet, $strVarBase, $strVarName)
return array('<pre>NULL</pre>', '#FFF');
}//protected function getHtmlNull()
}//protected function getHtmlBlank($value)
}//protected function getHtmlResource($value)
$strCode .
' <i>xml:lang</i>=' .
$language;
$strCode .
' <i>rdf:type</i>=' .
$datatype;
}//protected function getHtmlLiteral($value, $language, $datatype)
}//class SparqlEngineDb_ResultRenderer_HTML implements SparqlEngineDb_ResultRenderer
Documentation generated on Fri, 1 Jun 2007 16:49:17 +0200 by phpDocumentor 1.3.2