PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / ReportRenderer / Csv.php
matomo / app / core / ReportRenderer Last commit date
Csv.php 6 years ago Html.php 6 years ago Pdf.php 6 years ago
Csv.php
176 lines
1 <?php
2 /**
3 * Piwik - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9 namespace Piwik\ReportRenderer;
10
11 use Piwik\DataTable\DataTableInterface;
12 use Piwik\DataTable\Renderer\Csv as CsvDataTableRenderer;
13 use Piwik\Piwik;
14 use Piwik\ReportRenderer;
15
16 /**
17 * CSV report renderer
18 */
19 class Csv extends ReportRenderer
20 {
21 /**
22 * @var string
23 */
24 protected $rendered;
25
26 /**
27 * Initialize locale settings.
28 * If not called, locale settings defaults to 'en'
29 *
30 * @param string $locale
31 */
32 public function setLocale($locale)
33 {
34 return;
35 }
36
37 /**
38 * Save rendering to disk
39 *
40 * @param string $filename without path & without format extension
41 * @return string path of file
42 */
43 public function sendToDisk($filename)
44 {
45 return ReportRenderer::writeFile(
46 $filename,
47 ReportRenderer::CSV_FORMAT,
48 $this->getRenderedReport()
49 );
50 }
51
52 /**
53 * Send rendering to browser with a 'download file' prompt
54 *
55 * @param string $filename without path & without format extension
56 */
57 public function sendToBrowserDownload($filename)
58 {
59 ReportRenderer::sendToBrowser(
60 $filename,
61 ReportRenderer::CSV_FORMAT,
62 "text/" . ReportRenderer::CSV_FORMAT,
63 $this->getRenderedReport()
64 );
65 }
66
67 /**
68 * Output rendering to browser
69 *
70 * @param string $filename without path & without format extension
71 */
72 public function sendToBrowserInline($filename)
73 {
74 ReportRenderer::sendToBrowser(
75 $filename,
76 ReportRenderer::CSV_FORMAT,
77 "application/" . ReportRenderer::CSV_FORMAT,
78 $this->getRenderedReport()
79 );
80 }
81
82 /**
83 * Get rendered report
84 */
85 public function getRenderedReport()
86 {
87 return $this->rendered;
88 }
89
90 /**
91 * Generate the first page.
92 *
93 * @param string $reportTitle
94 * @param string $prettyDate formatted date
95 * @param string $description
96 * @param array $reportMetadata metadata for all reports
97 * @param array $segment segment applied to all reports
98 */
99 public function renderFrontPage($reportTitle, $prettyDate, $description, $reportMetadata, $segment)
100 {
101 return;
102 }
103
104 /**
105 * Render the provided report.
106 * Multiple calls to this method before calling outputRendering appends each report content.
107 *
108 * @param array $processedReport @see API::getProcessedReport()
109 */
110 public function renderReport($processedReport)
111 {
112 $csvRenderer = $this->getRenderer(
113 $processedReport['reportData'],
114 $processedReport['metadata']['uniqueId']
115 );
116
117 $reportData = $csvRenderer->render($processedReport);
118 if (empty($reportData)) {
119 $reportData = Piwik::translate('CoreHome_ThereIsNoDataForThisReport');
120 }
121
122 $replaceBySpace = array( $csvRenderer->separator, ";");
123 $reportName = str_replace($replaceBySpace, " ", $processedReport['metadata']['name']);
124 $this->rendered .= implode(
125 '',
126 array(
127 $reportName,
128 $csvRenderer->lineEnd,
129 $reportData,
130 $csvRenderer->lineEnd,
131 $csvRenderer->lineEnd,
132 )
133 );
134 }
135
136 /**
137 * @param DataTableInterface $table
138 * @param string $uniqueId
139 * @return \Piwik\DataTable\Renderer\Csv
140 */
141 protected function getRenderer(DataTableInterface $table, $uniqueId)
142 {
143 $csvRenderer = new CsvDataTableRenderer();
144 $csvRenderer->setIdSite($this->idSite);
145 $csvRenderer->setTable($table);
146 $csvRenderer->setConvertToUnicode(false);
147 $csvRenderer->setApiMethod(
148 $this->getApiMethodNameFromUniqueId($uniqueId)
149 );
150
151 return $csvRenderer;
152 }
153
154 /**
155 * @param $uniqueId
156 * @return string
157 */
158 protected function getApiMethodNameFromUniqueId($uniqueId)
159 {
160 return str_replace("_", ".", $uniqueId);
161 }
162
163 /**
164 * Get report attachments, ex. graph images
165 *
166 * @param $report
167 * @param $processedReports
168 * @param $prettyDate
169 * @return array
170 */
171 public function getAttachments($report, $processedReports, $prettyDate)
172 {
173 return array();
174 }
175 }
176