diff options
author | JulienMoumne <julien@piwik.org> | 2012-06-14 20:19:42 +0400 |
---|---|---|
committer | JulienMoumne <julien@piwik.org> | 2012-06-14 20:19:42 +0400 |
commit | f39a8e103f01ade174f601c3c5a68c4a874d3e6d (patch) | |
tree | 80757bdf57ceace5efb3c65571502f88aba18778 /core/ReportRenderer.php | |
parent | 17ec4cc66f81dd57724f1a58a2dcdaddba91af61 (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.php | 40 |
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 * |