forked from vergnet/site-accueil-insa
167 lines
7.2 KiB
PHP
167 lines
7.2 KiB
PHP
<?php
|
|
/**
|
|
* Matomo - free/libre analytics platform
|
|
*
|
|
* @link https://matomo.org
|
|
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
|
*
|
|
*/
|
|
namespace Piwik\Plugins\Referrers;
|
|
|
|
use Piwik\Common;
|
|
use Piwik\Piwik;
|
|
use Piwik\Plugins\SitesManager\SiteUrls;
|
|
|
|
/**
|
|
* @see plugins/Referrers/functions.php
|
|
*/
|
|
require_once PIWIK_INCLUDE_PATH . '/plugins/Referrers/functions.php';
|
|
|
|
/**
|
|
*/
|
|
class Referrers extends \Piwik\Plugin
|
|
{
|
|
/**
|
|
* @see \Piwik\Plugin::registerEvents
|
|
*/
|
|
public function registerEvents()
|
|
{
|
|
return array(
|
|
'Insights.addReportToOverview' => 'addReportToInsightsOverview',
|
|
'Request.getRenamedModuleAndAction' => 'renameDeprecatedModuleAndAction',
|
|
'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys',
|
|
'Tracker.setTrackerCacheGeneral' => 'setTrackerCacheGeneral',
|
|
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
|
|
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
|
|
'API.getPagesComparisonsDisabledFor' => 'getPagesComparisonsDisabledFor',
|
|
'Metrics.getDefaultMetricTranslations' => 'getDefaultMetricTranslations',
|
|
);
|
|
}
|
|
|
|
public function getDefaultMetricTranslations(&$translations)
|
|
{
|
|
$translations['Referrers_visitorsFromSearchEngines'] = Piwik::translate('Referrers_VisitorsFromSearchEngines');
|
|
$translations['Referrers_visitorsFromSearchEngines_percent'] = Piwik::translate('Referrers_PercentOfX', $translations['Referrers_visitorsFromSearchEngines']);
|
|
|
|
$translations['Referrers_visitorsFromSocialNetworks'] = Piwik::translate('Referrers_VisitorsFromSocialNetworks');
|
|
$translations['Referrers_visitorsFromSocialNetworks_percent'] = Piwik::translate('Referrers_PercentOfX', $translations['Referrers_visitorsFromSocialNetworks']);
|
|
|
|
$translations['Referrers_visitorsFromDirectEntry'] = Piwik::translate('Referrers_VisitorsFromDirectEntry');
|
|
$translations['Referrers_visitorsFromDirectEntry_percent'] = Piwik::translate('Referrers_PercentOfX', $translations['Referrers_visitorsFromDirectEntry']);
|
|
|
|
$translations['Referrers_visitorsFromWebsites'] = Piwik::translate('Referrers_VisitorsFromWebsites');
|
|
$translations['Referrers_visitorsFromWebsites_percent'] = Piwik::translate('Referrers_PercentOfX', $translations['Referrers_visitorsFromWebsites']);
|
|
|
|
$translations['Referrers_visitorsFromCampaigns'] = Piwik::translate('Referrers_VisitorsFromCampaigns');
|
|
$translations['Referrers_visitorsFromCampaigns_percent'] = Piwik::translate('Referrers_PercentOfX', $translations['Referrers_visitorsFromCampaigns']);
|
|
|
|
$translations[Archiver::METRIC_DISTINCT_SEARCH_ENGINE_RECORD_NAME] = ucfirst(Piwik::translate('Referrers_DistinctSearchEngines'));
|
|
$translations[Archiver::METRIC_DISTINCT_SOCIAL_NETWORK_RECORD_NAME] = ucfirst(Piwik::translate('Referrers_DistinctSocialNetworks'));
|
|
$translations[Archiver::METRIC_DISTINCT_WEBSITE_RECORD_NAME] = ucfirst(Piwik::translate('Referrers_DistinctWebsites'));
|
|
$translations[Archiver::METRIC_DISTINCT_KEYWORD_RECORD_NAME] = ucfirst(Piwik::translate('Referrers_DistinctKeywords'));
|
|
$translations[Archiver::METRIC_DISTINCT_CAMPAIGN_RECORD_NAME] = ucfirst(Piwik::translate('Referrers_DistinctCampaigns'));
|
|
}
|
|
|
|
public function getPagesComparisonsDisabledFor(&$pages)
|
|
{
|
|
$pages[] = 'Referrers_Referrers.Referrers_URLCampaignBuilder';
|
|
}
|
|
|
|
public function getStylesheetFiles(&$stylesheets)
|
|
{
|
|
$stylesheets[] = 'plugins/Referrers/vue/src/CampaignBuilder/CampaignBuilder.less';
|
|
}
|
|
|
|
public function getClientSideTranslationKeys(&$translationKeys)
|
|
{
|
|
$translationKeys[] = 'General_Required2';
|
|
$translationKeys[] = 'General_Clear';
|
|
$translationKeys[] = 'Actions_ColumnPageURL';
|
|
$translationKeys[] = 'CoreAdminHome_JSTracking_CampaignNameParam';
|
|
$translationKeys[] = 'CoreAdminHome_JSTracking_CampaignKwdParam';
|
|
$translationKeys[] = 'Referrers_CampaignSource';
|
|
$translationKeys[] = 'Referrers_CampaignSourceHelp';
|
|
$translationKeys[] = 'Referrers_CampaignContent';
|
|
$translationKeys[] = 'Referrers_CampaignContentHelp';
|
|
$translationKeys[] = 'Referrers_CampaignMedium';
|
|
$translationKeys[] = 'Referrers_CampaignMediumHelp';
|
|
$translationKeys[] = 'Referrers_CampaignGroup';
|
|
$translationKeys[] = 'Referrers_CampaignGroupHelp';
|
|
$translationKeys[] = 'Referrers_CampaignPlacement';
|
|
$translationKeys[] = 'Referrers_CampaignPlacementHelp';
|
|
$translationKeys[] = 'Referrers_CampaignId';
|
|
$translationKeys[] = 'Referrers_CampaignIdHelp';
|
|
$translationKeys[] = 'Referrers_CampaignPageUrlHelp';
|
|
$translationKeys[] = 'Referrers_CampaignNameHelp';
|
|
$translationKeys[] = 'Referrers_CampaignKeywordHelp';
|
|
$translationKeys[] = 'Referrers_URLCampaignBuilderResult';
|
|
$translationKeys[] = 'Referrers_GenerateUrl';
|
|
$translationKeys[] = 'Goals_Optional';
|
|
}
|
|
|
|
public function getJsFiles(&$jsFiles)
|
|
{
|
|
}
|
|
|
|
public function setTrackerCacheGeneral(&$cacheContent)
|
|
{
|
|
$siteUrls = new SiteUrls();
|
|
$urls = $siteUrls->getAllCachedSiteUrls();
|
|
|
|
return $cacheContent['allUrlsByHostAndIdSite'] = $siteUrls->groupUrlsByHost($urls);
|
|
}
|
|
|
|
public function renameDeprecatedModuleAndAction(&$module, &$action)
|
|
{
|
|
if($module == 'Referers') {
|
|
$module = 'Referrers';
|
|
}
|
|
}
|
|
|
|
public function addReportToInsightsOverview(&$reports)
|
|
{
|
|
$reports['Referrers_getWebsites'] = array();
|
|
$reports['Referrers_getCampaigns'] = array();
|
|
$reports['Referrers_getSocials'] = array();
|
|
$reports['Referrers_getSearchEngines'] = array();
|
|
}
|
|
|
|
/**
|
|
* DataTable filter callback that returns the HTML prefix for a label in the
|
|
* 'getAll' report based on the row's referrer type.
|
|
*
|
|
* @param int $referrerType The referrer type.
|
|
* @return string
|
|
*/
|
|
public function setGetAllHtmlPrefix($referrerType)
|
|
{
|
|
// get singular label for referrer type
|
|
$indexTranslation = '';
|
|
switch ($referrerType) {
|
|
case Common::REFERRER_TYPE_DIRECT_ENTRY:
|
|
$indexTranslation = 'Referrers_DirectEntry';
|
|
break;
|
|
case Common::REFERRER_TYPE_SEARCH_ENGINE:
|
|
$indexTranslation = 'General_ColumnKeyword';
|
|
break;
|
|
case Common::REFERRER_TYPE_SOCIAL_NETWORK:
|
|
$indexTranslation = 'Referrers_ColumnSocial';
|
|
break;
|
|
case Common::REFERRER_TYPE_WEBSITE:
|
|
$indexTranslation = 'Referrers_ColumnWebsite';
|
|
break;
|
|
case Common::REFERRER_TYPE_CAMPAIGN:
|
|
$indexTranslation = 'Referrers_ColumnCampaign';
|
|
break;
|
|
default:
|
|
// case of newsletter, partners, before Piwik 0.2.25
|
|
$indexTranslation = 'General_Others';
|
|
break;
|
|
}
|
|
|
|
$label = strtolower(Piwik::translate($indexTranslation));
|
|
|
|
// return html that displays it as grey & italic
|
|
return '<span class="datatable-label-category">(' . $label . ')</span>';
|
|
}
|
|
}
|