diff --git a/core/API/ApiRenderer.php b/core/API/ApiRenderer.php index fc1c11d7367b4340a9a18438856edfd493284c69..a913041514346da23629acc94f57d4effdd519ed 100644 --- a/core/API/ApiRenderer.php +++ b/core/API/ApiRenderer.php @@ -91,8 +91,15 @@ abstract class ApiRenderer $format = 'json'; } + $idSite = Common::getRequestVar('idSite', 0, 'int', $this->request); + + if (empty($idSite)) { + $idSite = 'all'; + } + $renderer = Renderer::factory($format); $renderer->setTable($dataTable); + $renderer->setIdSite($idSite); $renderer->setRenderSubTables(Common::getRequestVar('expanded', false, 'int', $this->request)); $renderer->setHideIdSubDatableFromResponse(Common::getRequestVar('hideIdSubDatable', false, 'int', $this->request)); diff --git a/core/BaseFactory.php b/core/BaseFactory.php index 32b4090bc22aa193067e1eeb009b5378d581fa7e..d240da900f024fb24796e65b68e67d291659b124 100644 --- a/core/BaseFactory.php +++ b/core/BaseFactory.php @@ -26,7 +26,7 @@ abstract class BaseFactory * Creates a new instance of a class using a string ID. * * @param string $classId The ID of the class. - * @return BaseFactory + * @return \Piwik\DataTable\Renderer * @throws Exception if $classId is invalid. */ public static function factory($classId) diff --git a/core/DataTable/Renderer/Csv.php b/core/DataTable/Renderer/Csv.php index d9b2ea4fd4a51db735393fbaf225e7669c840632..4d55979347d70116938fd4c34b84446cdefb78f2 100644 --- a/core/DataTable/Renderer/Csv.php +++ b/core/DataTable/Renderer/Csv.php @@ -12,7 +12,6 @@ use Piwik\Common; use Piwik\DataTable\Renderer; use Piwik\DataTable\Simple; use Piwik\DataTable; -use Piwik\Date; use Piwik\Period; use Piwik\Period\Range; use Piwik\Piwik; diff --git a/core/ReportRenderer.php b/core/ReportRenderer.php index 3fa20aff43f36836d496f3463edc664e324800ca..1d290533c1aa031cd1b2dcf6194e367a387cec9a 100644 --- a/core/ReportRenderer.php +++ b/core/ReportRenderer.php @@ -35,12 +35,24 @@ abstract class ReportRenderer extends BaseFactory const PDF_FORMAT = 'pdf'; const CSV_FORMAT = 'csv'; + protected $idSite = 'all'; + private static $availableReportRenderers = array( self::PDF_FORMAT, self::HTML_FORMAT, self::CSV_FORMAT, ); + /** + * Sets the site id + * + * @param int $idSite + */ + public function setIdSite($idSite) + { + $this->idSite = $idSite; + } + protected static function getClassNameFromClassId($rendererType) { return 'Piwik\ReportRenderer\\' . self::normalizeRendererType($rendererType); diff --git a/core/ReportRenderer/Csv.php b/core/ReportRenderer/Csv.php index b76096db4416cda7684a0f34d4b8b17b5e4565c7..ef5678b1f78f6b56af5198f199393500fc593d6f 100644 --- a/core/ReportRenderer/Csv.php +++ b/core/ReportRenderer/Csv.php @@ -141,6 +141,7 @@ class Csv extends ReportRenderer protected function getRenderer(DataTableInterface $table, $uniqueId) { $csvRenderer = new CsvDataTableRenderer(); + $csvRenderer->setIdSite($this->idSite); $csvRenderer->setTable($table); $csvRenderer->setConvertToUnicode(false); $csvRenderer->setApiMethod( diff --git a/plugins/API/Renderer/Console.php b/plugins/API/Renderer/Console.php index 98e3d01d1ff1a92fffb4be0d889bedc1c9a83687..90dc03928e3a7850302e323adf1144ec741f2f5b 100644 --- a/plugins/API/Renderer/Console.php +++ b/plugins/API/Renderer/Console.php @@ -10,8 +10,6 @@ namespace Piwik\Plugins\API\Renderer; use Piwik\API\ApiRenderer; use Piwik\Common; -use Piwik\DataTable\Renderer; -use Piwik\DataTable; class Console extends ApiRenderer { diff --git a/plugins/API/Renderer/Csv.php b/plugins/API/Renderer/Csv.php index 77caa50bcec94fdbc796f532f133d932d0191cbd..1a01134b56f8242990a08d794d1dc2fd3ec48ec4 100644 --- a/plugins/API/Renderer/Csv.php +++ b/plugins/API/Renderer/Csv.php @@ -10,8 +10,6 @@ namespace Piwik\Plugins\API\Renderer; use Piwik\API\ApiRenderer; use Piwik\Common; -use Piwik\DataTable\Renderer; -use Piwik\DataTable; use Piwik\ProxyHttp; class Csv extends ApiRenderer diff --git a/plugins/API/Renderer/Html.php b/plugins/API/Renderer/Html.php index 48acbb355f249d390ae37ca2815236e10dadd4cd..1aeab87f51c1ce193b59c1b7212fa9a0521674e5 100644 --- a/plugins/API/Renderer/Html.php +++ b/plugins/API/Renderer/Html.php @@ -10,8 +10,6 @@ namespace Piwik\Plugins\API\Renderer; use Piwik\API\ApiRenderer; use Piwik\Common; -use Piwik\DataTable\Renderer; -use Piwik\DataTable; class Html extends ApiRenderer { diff --git a/plugins/API/Renderer/Json.php b/plugins/API/Renderer/Json.php index 5037b30fbe32afbac2d690b4adc265204296fc56..8adfdaebe14461f7aa664e4ed070671c11998a1e 100644 --- a/plugins/API/Renderer/Json.php +++ b/plugins/API/Renderer/Json.php @@ -11,7 +11,6 @@ namespace Piwik\Plugins\API\Renderer; use Piwik\API\ApiRenderer; use Piwik\Common; use Piwik\DataTable\Renderer; -use Piwik\DataTable; use Piwik\Piwik; use Piwik\ProxyHttp; @@ -34,6 +33,7 @@ class Json extends ApiRenderer /** * @param $message * @param Exception|\Throwable $exception + * @param \Exception|\Throwable $exception * @return string */ public function renderException($message, $exception) diff --git a/plugins/API/Renderer/Php.php b/plugins/API/Renderer/Php.php index 5823137569ef407d193de0cb55e551422cd5d1e0..c237074541b51b8d6dc85f6657114781990ad1f8 100644 --- a/plugins/API/Renderer/Php.php +++ b/plugins/API/Renderer/Php.php @@ -10,8 +10,6 @@ namespace Piwik\Plugins\API\Renderer; use Piwik\API\ApiRenderer; use Piwik\Common; -use Piwik\DataTable\Renderer; -use Piwik\DataTable; use Piwik\Piwik; class Php extends ApiRenderer @@ -25,7 +23,7 @@ class Php extends ApiRenderer /** * @param $message - * @param Exception|\Throwable $exception + * @param \Exception|\Throwable $exception * @return string */ public function renderException($message, $exception) diff --git a/plugins/API/Renderer/Rss.php b/plugins/API/Renderer/Rss.php index 5bbcac78aabd9df91316250eb6617efb2ead2a7e..f5ac883b402da72e4e6b4c5b58c11c79d6be4865 100644 --- a/plugins/API/Renderer/Rss.php +++ b/plugins/API/Renderer/Rss.php @@ -10,8 +10,6 @@ namespace Piwik\Plugins\API\Renderer; use Piwik\API\ApiRenderer; use Piwik\Common; -use Piwik\DataTable\Renderer; -use Piwik\DataTable; class Rss extends ApiRenderer { diff --git a/plugins/API/Renderer/Tsv.php b/plugins/API/Renderer/Tsv.php index c5505159e0691ffd6b012cc2bde7ca917373b479..85304d29dd6b4a862209c5121d56ff87c8ff9290 100644 --- a/plugins/API/Renderer/Tsv.php +++ b/plugins/API/Renderer/Tsv.php @@ -9,8 +9,6 @@ namespace Piwik\Plugins\API\Renderer; use Piwik\Common; -use Piwik\DataTable\Renderer; -use Piwik\DataTable; class Tsv extends Csv { diff --git a/plugins/API/Renderer/Xml.php b/plugins/API/Renderer/Xml.php index 4a1f0247d704775d03b7fbc74e76095bdfcdf42c..dc1a52705736b44b9b283ea46826f0ad3f060266 100644 --- a/plugins/API/Renderer/Xml.php +++ b/plugins/API/Renderer/Xml.php @@ -10,8 +10,6 @@ namespace Piwik\Plugins\API\Renderer; use Piwik\API\ApiRenderer; use Piwik\Common; -use Piwik\DataTable\Renderer; -use Piwik\DataTable; class Xml extends ApiRenderer { diff --git a/plugins/SEO/Widgets/GetRank.php b/plugins/SEO/Widgets/GetRank.php index be22d61eec33106266b7435854d5b5528bf1723c..b22a6683c9cae44b7fee5572c92cee38e2dd998e 100644 --- a/plugins/SEO/Widgets/GetRank.php +++ b/plugins/SEO/Widgets/GetRank.php @@ -14,7 +14,6 @@ use Piwik\Widget\WidgetConfig; use Piwik\Site; use Piwik\Url; use Piwik\UrlHelper; -use Piwik\View; use Piwik\Plugins\SEO\API; class GetRank extends \Piwik\Widget\Widget diff --git a/plugins/ScheduledReports/API.php b/plugins/ScheduledReports/API.php index 3391b581c81498ab3638a208a1342ed97a91f77b..be34d120fc4444426d56052a2f9fce5b6c9d3772 100644 --- a/plugins/ScheduledReports/API.php +++ b/plugins/ScheduledReports/API.php @@ -469,6 +469,7 @@ class API extends \Piwik\Plugin\API } // init report renderer + $reportRenderer->setIdSite($idSite); $reportRenderer->setLocale($language); // render report