PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.0.3
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.0.3
5.13.0 5.12.1 5.12.0 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 / Tsv.php
matomo / app / core / ReportRenderer Last commit date
Csv.php 2 years ago Html.php 2 years ago Pdf.php 2 years ago Tsv.php 2 years ago
Tsv.php
135 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 *
9 */
10 namespace Piwik\ReportRenderer;
11
12 use Piwik\DataTable\DataTableInterface;
13 use Piwik\DataTable\Renderer\Tsv as TsvDataTableRenderer;
14 use Piwik\Piwik;
15 use Piwik\ReportRenderer;
16 /**
17 * TSV report renderer
18 */
19 class Tsv extends ReportRenderer
20 {
21 /**
22 * @var string
23 */
24 protected $rendered;
25 /**
26 * Initialize locale settings.
27 * If not called, locale settings defaults to 'en'
28 *
29 * @param string $locale
30 */
31 public function setLocale($locale)
32 {
33 return;
34 }
35 /**
36 * Save rendering to disk
37 *
38 * @param string $filename without path & without format extension
39 * @return string path of file
40 */
41 public function sendToDisk($filename)
42 {
43 return ReportRenderer::writeFile($filename, ReportRenderer::TSV_FORMAT, $this->getRenderedReport());
44 }
45 /**
46 * Send rendering to browser with a 'download file' prompt
47 *
48 * @param string $filename without path & without format extension
49 */
50 public function sendToBrowserDownload($filename)
51 {
52 ReportRenderer::sendToBrowser($filename, ReportRenderer::TSV_FORMAT, "text/" . ReportRenderer::TSV_FORMAT, $this->getRenderedReport());
53 }
54 /**
55 * Output rendering to browser
56 *
57 * @param string $filename without path & without format extension
58 */
59 public function sendToBrowserInline($filename)
60 {
61 ReportRenderer::sendToBrowser($filename, ReportRenderer::TSV_FORMAT, "application/" . ReportRenderer::TSV_FORMAT, $this->getRenderedReport());
62 }
63 /**
64 * Get rendered report
65 */
66 public function getRenderedReport()
67 {
68 return $this->rendered;
69 }
70 /**
71 * Generate the first page.
72 *
73 * @param string $reportTitle
74 * @param string $prettyDate formatted date
75 * @param string $description
76 * @param array $reportMetadata metadata for all reports
77 * @param array $segment segment applied to all reports
78 */
79 public function renderFrontPage($reportTitle, $prettyDate, $description, $reportMetadata, $segment)
80 {
81 return;
82 }
83 /**
84 * Render the provided report.
85 * Multiple calls to this method before calling outputRendering appends each report content.
86 *
87 * @param array $processedReport @see API::getProcessedReport()
88 */
89 public function renderReport($processedReport)
90 {
91 $tsvRenderer = $this->getRenderer($processedReport['reportData'], $processedReport['metadata']['uniqueId']);
92 $reportData = $tsvRenderer->render();
93 if (empty($reportData)) {
94 $reportData = Piwik::translate('CoreHome_ThereIsNoDataForThisReport');
95 }
96 $replaceBySpace = array($tsvRenderer->separator);
97 $reportName = str_replace($replaceBySpace, " ", $processedReport['metadata']['name']);
98 $this->rendered .= implode('', array($reportName, $tsvRenderer->lineEnd, $reportData, $tsvRenderer->lineEnd, $tsvRenderer->lineEnd));
99 }
100 /**
101 * @param DataTableInterface $table
102 * @param string $uniqueId
103 * @return \Piwik\DataTable\Renderer\Tsv
104 */
105 protected function getRenderer(DataTableInterface $table, $uniqueId)
106 {
107 $tsvRenderer = new TsvDataTableRenderer();
108 $tsvRenderer->setIdSite($this->idSite);
109 $tsvRenderer->setTable($table);
110 $tsvRenderer->setConvertToUnicode(false);
111 $tsvRenderer->setApiMethod($this->getApiMethodNameFromUniqueId($uniqueId));
112 return $tsvRenderer;
113 }
114 /**
115 * @param $uniqueId
116 * @return string
117 */
118 protected function getApiMethodNameFromUniqueId($uniqueId)
119 {
120 return str_replace("_", ".", $uniqueId);
121 }
122 /**
123 * Get report attachments, ex. graph images
124 *
125 * @param $report
126 * @param $processedReports
127 * @param $prettyDate
128 * @return array
129 */
130 public function getAttachments($report, $processedReports, $prettyDate)
131 {
132 return array();
133 }
134 }
135