Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulienMoumne <julien@piwik.org>2012-06-14 20:19:42 +0400
committerJulienMoumne <julien@piwik.org>2012-06-14 20:19:42 +0400
commitf39a8e103f01ade174f601c3c5a68c4a874d3e6d (patch)
tree80757bdf57ceace5efb3c65571502f88aba18778 /core/ReportRenderer.php
parent17ec4cc66f81dd57724f1a58a2dcdaddba91af61 (diff)
fixes #2708
refs #71 * PDFReports major refactoring. Any plugin can now add new kinds of reports. Required for #2708 and #3118. * test report functionality ($idReport == 0) dropped in Piwik_PDFReports_API->generateReport() * All Websites report shows 3 more metrics: Goal Conversions, eCommerce Conversions and eCommerce Revenue. Can be removed if asked to. * Piwik_PDFReports_API->sendEmailReport renamed to sendReport * All Piwik_PDFReports_API method signatures updated to support generic report parameters refs #389 * new API method to retrieve only one Piwik site : Piwik_MultiSites_API->getOne() * per #2708 description, Piwik_MultiSites_API methods now support a new parameter named enhanced. When activated, Goal Conversions, eCommerce Conversions and eCommerce Revenue along with their evolution will be included in the API output. * API metrics refactored in (@ignored)Piwik_MultiSites_API->getApiMetrics() * Metadata now returns 12 metrics : nb_visits, visits_evolution, nb_actions, actions_evolution, revenu, revenue_evolution, nb_conversions, nb_conversions_evolution, orders, orders_evolution, ecommerce_revenue, ecommerce_revenue_evolution refs #3118 * ReportPublisher plugin could now easily be implemented commits merged * r6243 * r6422 (#3012) TODO * the MobileMessaging settings page may need some embellishment * @review annotations need some attention * test if the MultiSites API evolutions have some impact on Piwik Mobile and other client code git-svn-id: http://dev.piwik.org/svn/trunk@6478 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'core/ReportRenderer.php')
-rw-r--r--core/ReportRenderer.php40
1 files changed, 36 insertions, 4 deletions
diff --git a/core/ReportRenderer.php b/core/ReportRenderer.php
index 87300cf685..c68f1bb63b 100644
--- a/core/ReportRenderer.php
+++ b/core/ReportRenderer.php
@@ -27,9 +27,12 @@ abstract class Piwik_ReportRenderer
const TABLE_CELL_BORDER_COLOR = "231,231,231";
const TABLE_BG_COLOR = "249,250,250";
- static public $availableReportRenderers = array(
- 'pdf' => 'plugins/UserSettings/images/plugins/pdf.gif',
- 'html' => 'themes/default/images/html_icon.png',
+ const HTML_FORMAT = 'html';
+ const PDF_FORMAT = 'pdf';
+
+ static private $availableReportRenderers = array(
+ self::PDF_FORMAT,
+ self::HTML_FORMAT,
);
protected $renderImageInline = false;
@@ -56,7 +59,7 @@ abstract class Piwik_ReportRenderer
throw new Exception(
Piwik_TranslateException(
'General_ExceptionInvalidReportRendererFormat',
- array($name, implode(', ', array_keys(self::$availableReportRenderers)))
+ array($name, implode(', ', self::$availableReportRenderers))
)
);
}
@@ -143,6 +146,35 @@ abstract class Piwik_ReportRenderer
return $outputFilename;
}
+ protected static function writeFile($filename, $extension, $content)
+ {
+ $filename = self::appendExtension($filename, $extension);
+ $outputFilename = self::getOutputPath($filename);
+
+ $emailReport = @fopen($outputFilename, "w");
+
+ if (!$emailReport) {
+ throw new Exception ("The file : " . $outputFilename . " can not be opened in write mode.");
+ }
+
+ fwrite($emailReport, $content);
+ fclose($emailReport);
+
+ return $outputFilename;
+ }
+
+ protected static function sendToBrowser($filename, $extension, $contentType, $content)
+ {
+ $filename = Piwik_ReportRenderer::appendExtension($filename, $extension);
+
+ Piwik::overrideCacheControlHeaders();
+ header('Content-Description: File Transfer');
+ header('Content-Type: ' . $contentType);
+ header('Content-Disposition: attachment; filename="'.str_replace('"', '\'', basename($filename)).'";');
+ header('Content-Length: '.strlen($content));
+ echo $content;
+ }
+
/**
* Convert a dimension-less report to a multi-row two-column data table
*