diff --git a/MarketingCampaignsReporting.php b/MarketingCampaignsReporting.php index c19b2d0..e0e5756 100644 --- a/MarketingCampaignsReporting.php +++ b/MarketingCampaignsReporting.php @@ -33,11 +33,16 @@ public function getListHooksRegistered() return array( 'Tracker.PageUrl.getQueryParametersToExclude' => 'getQueryParametersToExclude', 'Report.filterReports' => 'removeOriginalCampaignReport', - 'Live.getAllVisitorDetails' => 'extendVisitorDetails', 'Insights.addReportToOverview' => 'addReportToInsightsOverview', + 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles', ); } + public function getStylesheetFiles(&$stylesheets) + { + $stylesheets[] = "plugins/MarketingCampaignsReporting/stylesheets/styles.less"; + } + public function install() { $tables = \Piwik\DbHelper::getTablesInstalled(); @@ -92,22 +97,6 @@ public function removeOriginalCampaignReport(&$reports) } } - public function extendVisitorDetails(&$visitor, $details) - { - $fields = array( - 'campaignId' => 'campaign_id', - 'campaignContent' => 'campaign_content', - 'campaignKeyword' => 'campaign_keyword', - 'campaignMedium' => 'campaign_medium', - 'campaignName' => 'campaign_name', - 'campaignSource' => 'campaign_source', - ); - - foreach ($fields as $name => $field) { - $visitor[$name] = $details[$field]; - } - } - public static function getAdvancedCampaignFields() { $dimensions = Base::getDimensions(new self()); diff --git a/VisitorDetails.php b/VisitorDetails.php new file mode 100644 index 0000000..e9e02e9 --- /dev/null +++ b/VisitorDetails.php @@ -0,0 +1,55 @@ + 'campaign_id', + 'campaignContent' => 'campaign_content', + 'campaignKeyword' => 'campaign_keyword', + 'campaignMedium' => 'campaign_medium', + 'campaignName' => 'campaign_name', + 'campaignSource' => 'campaign_source', + ); + + foreach ($fields as $name => $field) { + $visitor[$name] = $this->details[$field]; + } + } + + public function renderVisitorDetails($visitorDetails) + { + $campaignData = array(); + $fields = array( + 'campaignId' => Piwik::translate('MarketingCampaignsReporting_CampaignId'), + 'campaignName' => Piwik::translate('MarketingCampaignsReporting_Name'), + 'campaignMedium' => Piwik::translate('MarketingCampaignsReporting_Medium'), + 'campaignContent' => Piwik::translate('MarketingCampaignsReporting_Content'), + 'campaignKeyword' => Piwik::translate('MarketingCampaignsReporting_Keyword'), + 'campaignSource' => Piwik::translate('MarketingCampaignsReporting_Source'), + ); + + foreach ($fields as $field => $name) { + if (!empty($visitorDetails[$field])) { + $campaignData[$name] = $visitorDetails[$field]; + } + } + + $view = new View('@MarketingCampaignsReporting/visitorDetails'); + $view->campaign = $campaignData; + return $view->render(); + } +} \ No newline at end of file diff --git a/stylesheets/styles.less b/stylesheets/styles.less new file mode 100644 index 0000000..9873f42 --- /dev/null +++ b/stylesheets/styles.less @@ -0,0 +1,8 @@ +.visitorReferrer.campaign { + display: none; /* do not show default campaign information in visitor log */ +} + +.visitorCampaign { + clear: both; + padding-top: 1em; +} \ No newline at end of file diff --git a/templates/visitorDetails.twig b/templates/visitorDetails.twig new file mode 100644 index 0000000..805f492 --- /dev/null +++ b/templates/visitorDetails.twig @@ -0,0 +1,8 @@ +{% if campaign %} +
+ {{ 'Referrers_ColumnCampaign'|translate }}
+ {% for name,value in campaign %} + {{ name }}: {{ value }}
+ {% endfor %} +
+{% endif %} \ No newline at end of file