Skip to content

Commit

Permalink
render campaign data in visitor log
Browse files Browse the repository at this point in the history
  • Loading branch information
sgiehl committed May 4, 2017
1 parent d402871 commit bc160fb
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 17 deletions.
23 changes: 6 additions & 17 deletions MarketingCampaignsReporting.php
Expand Up @@ -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();
Expand Down Expand Up @@ -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());
Expand Down
55 changes: 55 additions & 0 deletions VisitorDetails.php
@@ -0,0 +1,55 @@
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
namespace Piwik\Plugins\MarketingCampaignsReporting;

use Piwik\Piwik;
use Piwik\Plugins\Live\VisitorDetailsAbstract;
use Piwik\View;

class VisitorDetails extends VisitorDetailsAbstract
{
public function extendVisitorDetails(&$visitor)
{
$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] = $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();
}
}
8 changes: 8 additions & 0 deletions 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;
}
8 changes: 8 additions & 0 deletions templates/visitorDetails.twig
@@ -0,0 +1,8 @@
{% if campaign %}
<div class="visitorCampaign">
<b>{{ 'Referrers_ColumnCampaign'|translate }}</b><br/>
{% for name,value in campaign %}
{{ name }}: {{ value }}<br />
{% endfor %}
</div>
{% endif %}

0 comments on commit bc160fb

Please sign in to comment.