From c3ef72423f2837e52731a1703490d972a6246fa2 Mon Sep 17 00:00:00 2001 From: sgiehl Date: Thu, 4 May 2017 13:40:06 +0200 Subject: [PATCH 1/4] render campaign data in visitor log --- MarketingCampaignsReporting.php | 23 ++++---------- VisitorDetails.php | 55 +++++++++++++++++++++++++++++++++ stylesheets/styles.less | 8 +++++ templates/visitorDetails.twig | 8 +++++ 4 files changed, 77 insertions(+), 17 deletions(-) create mode 100644 VisitorDetails.php create mode 100644 stylesheets/styles.less create mode 100644 templates/visitorDetails.twig 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 From 73b17d0b3ef57d96578a7782030ab5f041820728 Mon Sep 17 00:00:00 2001 From: sgiehl Date: Tue, 8 Aug 2017 19:11:04 +0200 Subject: [PATCH 2/4] visitor details order --- VisitorDetails.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VisitorDetails.php b/VisitorDetails.php index e9e02e9..69588fb 100644 --- a/VisitorDetails.php +++ b/VisitorDetails.php @@ -50,6 +50,6 @@ public function renderVisitorDetails($visitorDetails) $view = new View('@MarketingCampaignsReporting/visitorDetails'); $view->campaign = $campaignData; - return $view->render(); + return [[ 30, $view->render() ]]; } } \ No newline at end of file From c781149620418246c091720fe081061bec2d4138 Mon Sep 17 00:00:00 2001 From: Stefan Giehl Date: Tue, 5 Sep 2017 18:39:27 +0200 Subject: [PATCH 3/4] Update plugin.json --- plugin.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin.json b/plugin.json index 12a737d..7719291 100644 --- a/plugin.json +++ b/plugin.json @@ -1,12 +1,12 @@ { "name": "MarketingCampaignsReporting", "description": "Measure the effectiveness of your marketing campaigns. New reports, segments & track up to five channels: campaign, source, medium, keyword, content.", - "version": "3.0.2", + "version": "3.1.0", "keywords": ["Campaign", "Marketing", "Channels", "UTM tags"], "license": "GPL v3+", "homepage": "https://piwik.org", "require": { - "piwik": ">=3.0.0,<4.0.0-b1" + "piwik": ">=3.1.0-rc1,<4.0.0-b1" }, "support": { "email": "hello@piwik.org", From 138c9314b54f17614e2db81ceeb2a120746e2e9f Mon Sep 17 00:00:00 2001 From: Stefan Giehl Date: Tue, 5 Sep 2017 18:40:56 +0200 Subject: [PATCH 4/4] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9111ccc..eef1b0e 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,7 @@ For example, by default parameter `campaign_name` track following parameters if ## Changelog + * 3.1.0 (Sept 5th 2017) Show campaign information in visitor log and profile * 3.0.1 (Mar 16th 2017) Enables segmented visitorlog for campaign reports * 3.0.0 (March 2017) Plugin forked by Piwik team + Renamed + Compatibility with Piwik 3 * 1.4.0 Added possibility to configure custom campaign parameters names