1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
<?php
/**
* Piwik - Open source web analytics
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
* @version $Id$
*
* @category Piwik
* @package Piwik
*/
/**
* Simple output
*
* @package Piwik
* @subpackage Piwik_DataTable
*/
class Piwik_DataTable_Renderer_Console extends Piwik_DataTable_Renderer
{
protected $prefixRows = '#';
function render()
{
return $this->renderTable($this->table);
}
function setPrefixRow($str)
{
$this->prefixRows = $str;
}
protected function renderDataTableArray(Piwik_DataTable_Array $tableArray, $prefix )
{
$output = "Piwik_DataTable_Array<hr>";
$prefix = $prefix . ' ';
foreach($tableArray->getArray() as $descTable => $table)
{
$output .= $prefix . "<b>". $descTable. "</b><br>";
$output .= $prefix . $this->renderTable($table, $prefix . ' ');
$output .= "<hr>";
}
$output .= "Metadata<br>";
foreach($tableArray->metadata as $id => $metadata)
{
$output .= "<br>";
$output .= $prefix . " <b>$id</b> <br>";
foreach($metadata as $name => $value)
{
$output .= $prefix . $prefix . "$name => $value";
}
}
$output .= "<hr>";
return $output;
}
protected function renderTable($table, $prefix = "")
{
if($table instanceof Piwik_DataTable_Array)
{
return $this->renderDataTableArray($table, $prefix);
}
if($table->getRowsCount() == 0)
{
return "Empty table <br>\n";
}
static $depth=0;
$output = '';
$i = 1;
foreach($table->getRows() as $row)
{
$dataTableArrayBreak = false;
$columns=array();
foreach($row->getColumns() as $column => $value)
{
if($value instanceof Piwik_DataTable_Array )
{
$output .= $this->renderDataTableArray($value, $prefix);
$dataTableArrayBreak = true;
break;
}
if(is_string($value)) $value = "'$value'";
elseif(is_array($value)) $value = var_export($value, true);
$columns[] = "'$column' => $value";
}
if($dataTableArrayBreak === true)
{
continue;
}
$columns = implode(", ", $columns);
$metadata = array();
foreach($row->getMetadata() as $name => $value)
{
if(is_string($value)) $value = "'$value'";
elseif(is_array($value)) $value = var_export($value, true);
$metadata[] = "'$name' => $value";
}
$metadata = implode(", ", $metadata);
$output.= str_repeat($this->prefixRows, $depth)
. "- $i [".$columns."] [".$metadata."] [idsubtable = "
. $row->getIdSubDataTable()."]<br>\n";
if($row->getIdSubDataTable() !== null)
{
$depth++;
try{
$output.= $this->renderTable(
Piwik_DataTable_Manager::getInstance()->getTable(
$row->getIdSubDataTable()
),
$prefix . ' '
);
} catch(Exception $e) {
$output.= "-- Sub DataTable not loaded<br>\n";
}
$depth--;
}
$i++;
}
return $output;
}
}
|