Newer
Older
mattpiwik
a validé
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
<?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: Console.php 525 2008-06-25 23:49:13Z matt $
*
* @package Piwik_DataTable
*/
/**
* Simple output
*
* @package Piwik_DataTable
* @subpackage Piwik_DataTable_Renderer
*/
class Piwik_DataTable_Renderer_Console extends Piwik_DataTable_Renderer
{
protected $prefixRows;
function __construct($table = null)
{
parent::__construct($table);
$this->setPrefixRow('#');
}
function render()
{
return $this->renderTable($this->table);
}
function setPrefixRow($str)
{
$this->prefixRows = $str;
}
protected function renderDataTableArray(Piwik_DataTable_Array $table, $prefix )
{
$output = "Piwik_DataTable_Array<hr>";
$prefix = $prefix . ' ';
foreach($table->getArray() as $descTable => $table)
{
$output .= $prefix . "<b>". $descTable. "</b><br>";
$output .= $prefix . $this->renderTable($table, $prefix . ' ');
$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);
mattpiwik
a validé
$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);
mattpiwik
a validé
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
$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;
}
}