diff options
author | matthieu_ <matthieu_@59fd770c-687e-43c8-a1e3-f5a4ff64c105> | 2007-08-23 21:14:55 +0400 |
---|---|---|
committer | matthieu_ <matthieu_@59fd770c-687e-43c8-a1e3-f5a4ff64c105> | 2007-08-23 21:14:55 +0400 |
commit | 8f7f5857cbe329e88b8104c98be3035f79f7fde4 (patch) | |
tree | 933f1fbccba84e6c31c8577f9c8b98fd41b3de63 /modules/DataTable/Renderer | |
parent | c0a8e54d4c257a85b8479d7c45fab0a121b95e8c (diff) |
- implemented the SORT filter
- implemented the EXCLUDE LOW POPULATION filter
- implemented the callback filter
- implemented the HTML renderer
- wrote API for UserSettings (prepared logos etc.)
- started API for Actions
-
Diffstat (limited to 'modules/DataTable/Renderer')
-rw-r--r-- | modules/DataTable/Renderer/Console.php | 1 | ||||
-rw-r--r-- | modules/DataTable/Renderer/HTML.php | 116 |
2 files changed, 117 insertions, 0 deletions
diff --git a/modules/DataTable/Renderer/Console.php b/modules/DataTable/Renderer/Console.php index dc3fdc6bfc..3375bb52fe 100644 --- a/modules/DataTable/Renderer/Console.php +++ b/modules/DataTable/Renderer/Console.php @@ -40,6 +40,7 @@ class Piwik_DataTable_Renderer_Console extends Piwik_DataTable_Renderer $details=array(); foreach($row->getDetails() as $detail => $value) { + if(is_string($value)) $value = "'$value'"; $details[] = "'$detail' => $value"; } $details = implode(", ", $details); diff --git a/modules/DataTable/Renderer/HTML.php b/modules/DataTable/Renderer/HTML.php new file mode 100644 index 0000000000..9ee991006f --- /dev/null +++ b/modules/DataTable/Renderer/HTML.php @@ -0,0 +1,116 @@ +<?php + +class Piwik_DataTable_Renderer_HTML extends Piwik_DataTable_Renderer +{ + protected $prefixRows; + function __construct($table = null) + { + parent::__construct($table); + } + + function render() + { + return $this->renderTable($this->table); + } + + function renderTable($table) + { + if($table->getRowsCount() == 0) + { + return "<b><i>Empty table</i></b> <br>\n"; + } + + static $depth=0; + $i = 1; + + $tableStructure = array(); + + /* + * table = array + * ROW1 = col1 | col2 | col3 | details | idSubTable + * ROW2 = col1 | col2 (no value but appears) | col3 | details | idSubTable + * subtable here + */ + $allColumns = array(); + foreach($table->getRows() as $row) + { + foreach($row->getColumns() as $column => $value) + { + $allColumns[$column] = true; + $tableStructure[$i][$column] = $value; + } + + $details=array(); + foreach($row->getDetails() as $detail => $value) + { + if(is_string($value)) $value = "'$value'"; + $details[] = "'$detail' => $value"; + } + $details = implode("<br>", $details); + + $tableStructure[$i]['_details'] = $details; + $tableStructure[$i]['_idSubtable'] = $row->getIdSubDataTable(); + + if($row->getIdSubDataTable() !== null) + { + $depth++; + try{ + $tableStructure[$i]['_subtable'] = $this->renderTable( Piwik_DataTable_Manager::getInstance()->getTable($row->getIdSubDataTable())); + } catch(Exception $e) { + $tableStructure[$i]['_subtable'] = "-- Sub DataTable not loaded"; + } + $tableStructure[$i]['_subtable']['depth'] = $depth; + $depth--; + } + $i++; + } + $allColumns['_details'] = true; + $allColumns['_idSubtable'] = true; + + $html = " <br><table border=1 width=70%>"; + $html .= "<tr>"; + foreach($allColumns as $name => $true) + { + $html .= "<td>$name</td>"; + } + $colspan = count($allColumns); + + foreach($tableStructure as $row) + { + $html .= "<tr>"; + foreach($allColumns as $name => $true) + { + $value = "-"; + if(isset($row[$name])) + { + $value = $row[$name]; + } + + $html .= "<td>$value</td>"; + } + $html .= "</tr>"; + + $styles='<style>'; + for($i=0;$i<11;$i++) + { + $padding=$i*2; + $styles.= "TD.l$i { padding-left:{$padding}em; } \n"; + } + $styles.="</style>"; + + if(isset($row['_subtable'])) + { + $html .= "<tr><td class=l{$row['_subtable']['depth']} colspan=$colspan>{$row['_subtable']}</td></tr>"; + } + } + $html .= "</table><br>"; + + if($depth == 0) + { + $html = $styles . $html; + } + return $html; + } +} + +?> |