Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Referrers')
-rw-r--r--plugins/Referrers/Categories/AllReferrersSubcategory.php19
-rw-r--r--plugins/Referrers/Categories/CampaignsSubcategory.php19
-rw-r--r--plugins/Referrers/Categories/ReferrersCategory.php18
-rw-r--r--plugins/Referrers/Categories/ReferrersOverviewSubcategory.php19
-rw-r--r--plugins/Referrers/Categories/SearchEnginesSubcategory.php19
-rw-r--r--plugins/Referrers/Categories/WebsitesSubcategory.php19
-rw-r--r--plugins/Referrers/Controller.php211
-rw-r--r--plugins/Referrers/Menu.php23
-rw-r--r--plugins/Referrers/Reports/Base.php2
-rw-r--r--plugins/Referrers/Reports/GetAll.php12
-rw-r--r--plugins/Referrers/Reports/GetCampaigns.php4
-rw-r--r--plugins/Referrers/Reports/GetKeywords.php4
-rw-r--r--plugins/Referrers/Reports/GetReferrerType.php36
-rw-r--r--plugins/Referrers/Reports/GetSearchEngines.php3
-rw-r--r--plugins/Referrers/Reports/GetSocials.php11
-rw-r--r--plugins/Referrers/Reports/GetWebsites.php5
-rw-r--r--plugins/Referrers/Widgets.php24
-rw-r--r--plugins/Referrers/Widgets/GetKeywordsForPage.php23
-rw-r--r--plugins/Referrers/templates/allReferrers.twig11
-rw-r--r--plugins/Referrers/templates/getSearchEnginesAndKeywords.twig13
-rw-r--r--plugins/Referrers/templates/index.twig89
-rw-r--r--plugins/Referrers/templates/indexWebsites.twig13
-rw-r--r--plugins/Referrers/tests/System/expected/test_Referrers_getReferrerType__API.getProcessedReport_day.xml1
23 files changed, 342 insertions, 256 deletions
diff --git a/plugins/Referrers/Categories/AllReferrersSubcategory.php b/plugins/Referrers/Categories/AllReferrersSubcategory.php
new file mode 100644
index 0000000000..277fc762dd
--- /dev/null
+++ b/plugins/Referrers/Categories/AllReferrersSubcategory.php
@@ -0,0 +1,19 @@
+<?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\Referrers\Categories;
+
+use Piwik\Category\Subcategory;
+
+class AllReferrersSubcategory extends Subcategory
+{
+ protected $categoryId = 'Referrers_Referrers';
+ protected $id = 'Referrers_WidgetGetAll';
+ protected $order = 5;
+
+}
diff --git a/plugins/Referrers/Categories/CampaignsSubcategory.php b/plugins/Referrers/Categories/CampaignsSubcategory.php
new file mode 100644
index 0000000000..5878a0a9e2
--- /dev/null
+++ b/plugins/Referrers/Categories/CampaignsSubcategory.php
@@ -0,0 +1,19 @@
+<?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\Referrers\Categories;
+
+use Piwik\Category\Subcategory;
+
+class CampaignsSubcategory extends Subcategory
+{
+ protected $categoryId = 'Referrers_Referrers';
+ protected $id = 'Referrers_Campaigns';
+ protected $order = 20;
+
+}
diff --git a/plugins/Referrers/Categories/ReferrersCategory.php b/plugins/Referrers/Categories/ReferrersCategory.php
new file mode 100644
index 0000000000..bde0c76699
--- /dev/null
+++ b/plugins/Referrers/Categories/ReferrersCategory.php
@@ -0,0 +1,18 @@
+<?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\Referrers\Categories;
+
+use Piwik\Category\Category;
+
+class ReferrersCategory extends Category
+{
+ protected $id = 'Referrers_Referrers';
+ protected $order = 15;
+ protected $icon = 'icon-reporting-referer';
+}
diff --git a/plugins/Referrers/Categories/ReferrersOverviewSubcategory.php b/plugins/Referrers/Categories/ReferrersOverviewSubcategory.php
new file mode 100644
index 0000000000..9cd6dafbdc
--- /dev/null
+++ b/plugins/Referrers/Categories/ReferrersOverviewSubcategory.php
@@ -0,0 +1,19 @@
+<?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\Referrers\Categories;
+
+use Piwik\Category\Subcategory;
+
+class ReferrersOverviewSubcategory extends Subcategory
+{
+ protected $categoryId = 'Referrers_Referrers';
+ protected $id = 'General_Overview';
+ protected $order = 2;
+
+}
diff --git a/plugins/Referrers/Categories/SearchEnginesSubcategory.php b/plugins/Referrers/Categories/SearchEnginesSubcategory.php
new file mode 100644
index 0000000000..c8bfc478e6
--- /dev/null
+++ b/plugins/Referrers/Categories/SearchEnginesSubcategory.php
@@ -0,0 +1,19 @@
+<?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\Referrers\Categories;
+
+use Piwik\Category\Subcategory;
+
+class SearchEnginesSubcategory extends Subcategory
+{
+ protected $categoryId = 'Referrers_Referrers';
+ protected $id = 'Referrers_SubmenuSearchEngines';
+ protected $order = 10;
+
+}
diff --git a/plugins/Referrers/Categories/WebsitesSubcategory.php b/plugins/Referrers/Categories/WebsitesSubcategory.php
new file mode 100644
index 0000000000..8b045bd5d4
--- /dev/null
+++ b/plugins/Referrers/Categories/WebsitesSubcategory.php
@@ -0,0 +1,19 @@
+<?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\Referrers\Categories;
+
+use Piwik\Category\Subcategory;
+
+class WebsitesSubcategory extends Subcategory
+{
+ protected $categoryId = 'Referrers_Referrers';
+ protected $id = 'Referrers_SubmenuWebsites';
+ protected $order = 15;
+
+}
diff --git a/plugins/Referrers/Controller.php b/plugins/Referrers/Controller.php
index c628af7a83..1b258f4c6a 100644
--- a/plugins/Referrers/Controller.php
+++ b/plugins/Referrers/Controller.php
@@ -10,10 +10,14 @@ namespace Piwik\Plugins\Referrers;
use Piwik\API\Request;
use Piwik\Common;
+use Piwik\DataTable\Filter\CalculateEvolutionFilter;
use Piwik\DataTable\Map;
use Piwik\Metrics;
+use Piwik\NumberFormatter;
use Piwik\Period\Range;
use Piwik\Piwik;
+use Piwik\Plugins\CoreVisualizations\Visualizations\Sparklines;
+use Piwik\ViewDataTable;
use Piwik\SettingsPiwik;
use Piwik\Translation\Translator;
use Piwik\View;
@@ -35,34 +39,23 @@ class Controller extends \Piwik\Plugin\Controller
parent::__construct();
}
- public function index()
+ public function getSparklines()
{
- $view = new View('@Referrers/index');
-
- $view->graphEvolutionReferrers = $this->getEvolutionGraph(Common::REFERRER_TYPE_DIRECT_ENTRY, array(), array('nb_visits'));
- $view->nameGraphEvolutionReferrers = 'Referrers.getEvolutionGraph';
+ $metrics = $this->getReferrersVisitorsByType();
+ $distinctMetrics = $this->getDistinctReferrersMetrics();
- $nameValues = $this->getReferrersVisitorsByType();
+ $numberFormatter = NumberFormatter::getInstance();
- $totalVisits = array_sum($nameValues);
- foreach ($nameValues as $name => $value) {
- $view->$name = $value;
+ $totalVisits = array_sum($metrics);
+ foreach ($metrics as $name => $value) {
// calculate percent of total, if there were any visits
- if ($value != 0
- && $totalVisits != 0
- ) {
+ if ($value != 0 && $totalVisits != 0) {
$percentName = $name . 'Percent';
- $view->$percentName = round(($value / $totalVisits) * 100, 0);
+ $metrics[$percentName] = round(($value / $totalVisits) * 100, 0);
}
}
- // set distinct metrics
- $distinctMetrics = $this->getDistinctReferrersMetrics();
- foreach ($distinctMetrics as $name => $value) {
- $view->$name = $value;
- }
-
// calculate evolution for visit metrics & distinct metrics
list($lastPeriodDate, $ignore) = Range::getLastDate();
if ($lastPeriodDate !== false) {
@@ -74,71 +67,124 @@ class Controller extends \Piwik\Plugin\Controller
// visit metrics
$previousValues = $this->getReferrersVisitorsByType($lastPeriodDate);
- $this->addEvolutionPropertiesToView($view, $prettyDate, $nameValues, $prettyLastPeriodDate, $previousValues);
+ $metrics = $this->addEvolutionPropertiesToView($prettyDate, $metrics, $prettyLastPeriodDate, $previousValues);
// distinct metrics
$previousValues = $this->getDistinctReferrersMetrics($lastPeriodDate);
- $this->addEvolutionPropertiesToView($view, $prettyDate, $distinctMetrics, $prettyLastPeriodDate, $previousValues);
+ $distinctMetrics = $this->addEvolutionPropertiesToView($prettyDate, $distinctMetrics, $prettyLastPeriodDate, $previousValues);
}
- // sparkline for the historical data of the above values
- $view->urlSparklineSearchEngines = $this->getReferrerUrlSparkline(Common::REFERRER_TYPE_SEARCH_ENGINE);
- $view->urlSparklineDirectEntry = $this->getReferrerUrlSparkline(Common::REFERRER_TYPE_DIRECT_ENTRY);
- $view->urlSparklineWebsites = $this->getReferrerUrlSparkline(Common::REFERRER_TYPE_WEBSITE);
- $view->urlSparklineCampaigns = $this->getReferrerUrlSparkline(Common::REFERRER_TYPE_CAMPAIGN);
- // sparklines for the evolution of the distinct keywords count/websites count/ etc
- $view->urlSparklineDistinctSearchEngines = $this->getUrlSparkline('getLastDistinctSearchEnginesGraph');
- $view->urlSparklineDistinctKeywords = $this->getUrlSparkline('getLastDistinctKeywordsGraph');
- $view->urlSparklineDistinctWebsites = $this->getUrlSparkline('getLastDistinctWebsitesGraph');
- $view->urlSparklineDistinctCampaigns = $this->getUrlSparkline('getLastDistinctCampaignsGraph');
+ /** @var Sparklines $view */
+ $view = ViewDataTable\Factory::build(Sparklines::ID, $api = false, $controller = false, $force = true, $loadUserParams = false);
- return $view->render();
- }
+ // DIRECT ENTRY
+ $metrics['visitorsFromDirectEntry'] = $numberFormatter->formatNumber($metrics['visitorsFromDirectEntry']);
+ $values = array($metrics['visitorsFromDirectEntry']);
+ $descriptions = array(Piwik::translate('Referrers_TypeDirectEntries'));
- public function allReferrers()
- {
- $view = new View('@Referrers/allReferrers');
+ if (!empty($metrics['visitorsFromDirectEntryPercent'])) {
+ $metrics['visitorsFromDirectEntryPercent'] = $numberFormatter->formatPercent($metrics['visitorsFromDirectEntryPercent'], $precision = 1);
+ $values[] = $metrics['visitorsFromDirectEntryPercent'];
+ $descriptions[] = Piwik::translate('Referrers_XPercentOfVisits');
+ }
- // building the referrers summary report
- $view->dataTableReferrerType = $this->renderReport('getReferrerType');
+ $directEntryParams = $this->getReferrerSparklineParams(Common::REFERRER_TYPE_DIRECT_ENTRY);
- $nameValues = $this->getReferrersVisitorsByType();
+ $view->config->addSparkline($directEntryParams, $values, $descriptions, @$metrics['visitorsFromDirectEntryEvolution']);
- $totalVisits = array_sum($nameValues);
- foreach ($nameValues as $name => $value) {
- $view->$name = $value;
- // calculate percent of total, if there were any visits
- if ($value != 0
- && $totalVisits != 0
- ) {
- $percentName = $name . 'Percent';
- $view->$percentName = round(($value / $totalVisits) * 100, 0);
- }
+ // WEBSITES
+ $metrics['visitorsFromWebsites'] = $numberFormatter->formatNumber($metrics['visitorsFromWebsites']);
+ $values = array($metrics['visitorsFromWebsites']);
+ $descriptions = array(Piwik::translate('Referrers_TypeWebsites'));
+
+ if (!empty($metrics['visitorsFromWebsitesPercent'])) {
+ $metrics['visitorsFromWebsitesPercent'] = $numberFormatter->formatPercent($metrics['visitorsFromWebsitesPercent'], $precision = 1);
+ $values[] = $metrics['visitorsFromWebsitesPercent'];
+ $descriptions[] = Piwik::translate('Referrers_XPercentOfVisits');
}
- $view->totalVisits = $totalVisits;
- $view->referrersReportsByDimension = $this->renderReport('getAll');
+ $searchEngineParams = $this->getReferrerSparklineParams(Common::REFERRER_TYPE_WEBSITE);
- return $view->render();
- }
+ $view->config->addSparkline($searchEngineParams, $values, $descriptions, @$metrics['visitorsFromWebsitesEvolution']);
+
+
+ // SEARCH ENGINES
+ $metrics['visitorsFromSearchEngines'] = $numberFormatter->formatNumber($metrics['visitorsFromSearchEngines']);
+ $values = array($metrics['visitorsFromSearchEngines']);
+ $descriptions = array(Piwik::translate('Referrers_TypeSearchEngines'));
+
+ if (!empty($metrics['visitorsFromSearchEnginesPercent'])) {
+ $metrics['visitorsFromSearchEnginesPercent'] = $numberFormatter->formatPercent($metrics['visitorsFromSearchEnginesPercent'], $precision = 1);
+ $values[] = $metrics['visitorsFromSearchEnginesPercent'];
+ $descriptions[] = Piwik::translate('Referrers_XPercentOfVisits');
+ }
+ $searchEngineParams = $this->getReferrerSparklineParams(Common::REFERRER_TYPE_SEARCH_ENGINE);
+
+ $view->config->addSparkline($searchEngineParams, $values, $descriptions, @$metrics['visitorsFromSearchEnginesEvolution']);
+
+
+ // CAMPAIGNS
+ $metrics['visitorsFromCampaigns'] = $numberFormatter->formatNumber($metrics['visitorsFromCampaigns']);
+ $values = array($metrics['visitorsFromCampaigns']);
+ $descriptions = array(Piwik::translate('Referrers_TypeCampaigns'));
+
+ if (!empty($metrics['visitorsFromCampaignsPercent'])) {
+ $metrics['visitorsFromCampaignsPercent'] = $numberFormatter->formatPercent($metrics['visitorsFromCampaignsPercent'], $precision = 1);
+ $values[] = $metrics['visitorsFromCampaignsPercent'];
+ $descriptions[] = Piwik::translate('Referrers_XPercentOfVisits');
+ }
+
+ $searchEngineParams = $this->getReferrerSparklineParams(Common::REFERRER_TYPE_CAMPAIGN);
+
+ $view->config->addSparkline($searchEngineParams, $values, $descriptions, @$metrics['visitorsFromCampaignsEvolution']);
+
+
+ // DISTINCT SEARCH ENGINES
+ $sparklineParams = $this->getDistinctSparklineUrlParams('getLastDistinctSearchEnginesGraph');
+ $value = $distinctMetrics['numberDistinctSearchEngines'];
+ $value = $numberFormatter->formatNumber($value);
+ $description = Piwik::translate('Referrers_DistinctSearchEngines');
+
+ $view->config->addSparkline($sparklineParams, $value, $description, @$distinctMetrics['numberDistinctSearchEnginesEvolution']);
+
+
+ // DISTINCT WEBSITES
+ $sparklineParams = $this->getDistinctSparklineUrlParams('getLastDistinctWebsitesGraph');
+
+ $distinctMetrics['numberDistinctWebsites'] = $numberFormatter->formatNumber($distinctMetrics['numberDistinctWebsites']);
+ $distinctMetrics['numberDistinctWebsitesUrls'] = $numberFormatter->formatNumber($distinctMetrics['numberDistinctWebsitesUrls']);
+
+ $values = array($distinctMetrics['numberDistinctWebsites'], $distinctMetrics['numberDistinctWebsitesUrls']);
+ $descriptions = array(Piwik::translate('Referrers_DistinctWebsites'), Piwik::translate('Referrers_UsingNDistinctUrls'));
+
+ $view->config->addSparkline($sparklineParams, $values, $descriptions, @$distinctMetrics['numberDistinctWebsitesEvolution']);
+
+
+ // DISTINCT KEYWORDS
+ $sparklineParams = $this->getDistinctSparklineUrlParams('getLastDistinctKeywordsGraph');
+ $value = $distinctMetrics['numberDistinctKeywords'];
+ $value = $numberFormatter->formatNumber($value);
+ $description = Piwik::translate('Referrers_DistinctKeywords');
+
+ $view->config->addSparkline($sparklineParams, $value, $description, @$distinctMetrics['numberDistinctKeywordsEvolution']);
+
+
+ // DISTINCT CAMPAIGNS
+ $sparklineParams = $this->getDistinctSparklineUrlParams('getLastDistinctCampaignsGraph');
+ $value = $distinctMetrics['numberDistinctCampaigns'];
+ $value = $numberFormatter->formatNumber($value);
+ $description = Piwik::translate('Referrers_DistinctCampaigns');
+
+ $view->config->addSparkline($sparklineParams, $value, $description, @$distinctMetrics['numberDistinctCampaignsEvolution']);
- public function getSearchEnginesAndKeywords()
- {
- $view = new View('@Referrers/getSearchEnginesAndKeywords');
- $view->searchEngines = $this->renderReport('getSearchEngines');
- $view->keywords = $this->renderReport('getKeywords');
return $view->render();
}
- public function indexWebsites()
+ private function getDistinctSparklineUrlParams($action)
{
- $view = new View('@Referrers/indexWebsites');
- $view->websites = $this->renderReport('getWebsites');
- $view->socials = $this->renderReport('getSocials');
-
- return $view->render();
+ return array('module' => $this->pluginName, 'action' => $action);
}
protected function getReferrersVisitorsByType($date = false)
@@ -221,7 +267,7 @@ class Controller extends \Piwik\Plugin\Controller
} else {
// use $typeReferrer as default
if ($typeReferrer === false) {
- $typeReferrer = Common::getRequestVar('typeReferrer', false);
+ $typeReferrer = Common::getRequestVar('typeReferrer', Common::REFERRER_TYPE_DIRECT_ENTRY);
}
$label = self::getTranslatedReferrerTypeLabel($typeReferrer);
$total = $this->translator->translate('General_Total');
@@ -416,14 +462,16 @@ function DisplayTopKeywords($url = "")
* @param int $referrerType The referrer type. Referrer types are defined in Common class.
* @return string The URL that can be used to get a sparkline image.
*/
- private function getReferrerUrlSparkline($referrerType)
+ private function getReferrerSparklineParams($referrerType)
{
$totalRow = $this->translator->translate('General_Total');
- return $this->getUrlSparkline(
- 'getEvolutionGraph',
- array('columns' => array('nb_visits'),
- 'rows' => array(self::getTranslatedReferrerTypeLabel($referrerType), $totalRow),
- 'typeReferrer' => $referrerType)
+
+ return array(
+ 'columns' => array('nb_visits'),
+ 'rows' => array(self::getTranslatedReferrerTypeLabel($referrerType), $totalRow),
+ 'typeReferrer' => $referrerType,
+ 'module' => $this->pluginName,
+ 'action' => 'getReferrerType'
);
}
@@ -456,20 +504,35 @@ function DisplayTopKeywords($url = "")
* Utility method that calculates evolution values for a set of current & past values
* and sets properties on a View w/ HTML that displays the evolution percents.
*
- * @param View $view The view to set properties on.
* @param string $date The date of the current values.
* @param array $currentValues Array mapping view property names w/ present values.
* @param string $lastPeriodDate The date of the period in the past.
* @param array $previousValues Array mapping view property names w/ past values. Keys
* in this array should be the same as keys in $currentValues.
+ * @return array Added current values
*/
- private function addEvolutionPropertiesToView($view, $date, $currentValues, $lastPeriodDate, $previousValues)
+ private function addEvolutionPropertiesToView($date, $currentValues, $lastPeriodDate, $previousValues)
{
foreach ($previousValues as $name => $pastValue) {
$currentValue = $currentValues[$name];
$evolutionName = $name . 'Evolution';
- $view->$evolutionName = $this->getEvolutionHtml($date, $currentValue, $lastPeriodDate, $pastValue);
+ $currentValueFormatted = NumberFormatter::getInstance()->format($currentValue);
+ $pastValueFormatted = NumberFormatter::getInstance()->format($pastValue);
+
+ $currentValues[$evolutionName] = array(
+ 'currentValue' => $currentValue,
+ 'pastValue' => $pastValue,
+ 'tooltip' => Piwik::translate('General_EvolutionSummaryGeneric', array(
+ Piwik::translate('General_NVisits', $currentValueFormatted),
+ $date,
+ Piwik::translate('General_NVisits', $pastValueFormatted),
+ $lastPeriodDate,
+ CalculateEvolutionFilter::calculate($currentValue, $pastValue, $precision = 1)
+ ))
+ );
}
+
+ return $currentValues;
}
}
diff --git a/plugins/Referrers/Menu.php b/plugins/Referrers/Menu.php
deleted file mode 100644
index 1088cb738e..0000000000
--- a/plugins/Referrers/Menu.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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\Referrers;
-
-use Piwik\Menu\MenuReporting;
-
-class Menu extends \Piwik\Plugin\Menu
-{
- public function configureReportingMenu(MenuReporting $menu)
- {
- $menu->addReferrersItem('', array(), 20);
- $menu->addReferrersItem('General_Overview', $this->urlForAction('index'), 1);
- $menu->addReferrersItem('Referrers_WidgetGetAll', $this->urlForAction('allReferrers'), 2);
- $menu->addReferrersItem('Referrers_SubmenuSearchEngines', $this->urlForAction('getSearchEnginesAndKeywords'), 3);
- $menu->addReferrersItem('Referrers_SubmenuWebsites', $this->urlForAction('indexWebsites'), 4);
- }
-}
diff --git a/plugins/Referrers/Reports/Base.php b/plugins/Referrers/Reports/Base.php
index e4a6394c00..2bd240d191 100644
--- a/plugins/Referrers/Reports/Base.php
+++ b/plugins/Referrers/Reports/Base.php
@@ -12,7 +12,7 @@ abstract class Base extends \Piwik\Plugin\Report
{
protected function init()
{
- $this->category = 'Referrers_Referrers';
+ $this->categoryId = 'Referrers_Referrers';
}
}
diff --git a/plugins/Referrers/Reports/GetAll.php b/plugins/Referrers/Reports/GetAll.php
index 2079dd414d..cb5f17ee41 100644
--- a/plugins/Referrers/Reports/GetAll.php
+++ b/plugins/Referrers/Reports/GetAll.php
@@ -13,6 +13,8 @@ use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
use Piwik\Plugins\Referrers\Columns\Referrer;
use Piwik\Plugins\Referrers\Referrers;
+use Piwik\Report\ReportWidgetFactory;
+use Piwik\Widget\WidgetsList;
class GetAll extends Base
{
@@ -23,7 +25,15 @@ class GetAll extends Base
$this->name = Piwik::translate('Referrers_WidgetGetAll');
$this->documentation = Piwik::translate('Referrers_AllReferrersReportDocumentation', '<br />');
$this->order = 2;
- $this->widgetTitle = 'Referrers_WidgetGetAll';
+
+ $this->subcategoryId = 'Referrers_WidgetGetAll';
+ }
+
+ public function configureWidgets(WidgetsList $widgetsList, ReportWidgetFactory $factory)
+ {
+ $widgetsList->addWidgetConfig(
+ $factory->createWidget()->setName('Referrers_Referrers')
+ );
}
public function getDefaultTypeViewDataTable()
diff --git a/plugins/Referrers/Reports/GetCampaigns.php b/plugins/Referrers/Reports/GetCampaigns.php
index a09affa70c..1d375423d8 100644
--- a/plugins/Referrers/Reports/GetCampaigns.php
+++ b/plugins/Referrers/Reports/GetCampaigns.php
@@ -24,8 +24,8 @@ class GetCampaigns extends Base
$this->actionToLoadSubTables = 'getKeywordsFromCampaignId';
$this->hasGoalMetrics = true;
$this->order = 9;
- $this->widgetTitle = 'Referrers_Campaigns';
- $this->menuTitle = 'Referrers_Campaigns';
+
+ $this->subcategoryId = 'Referrers_Campaigns';
}
public function configureView(ViewDataTable $view)
diff --git a/plugins/Referrers/Reports/GetKeywords.php b/plugins/Referrers/Reports/GetKeywords.php
index be8e8d3f4c..3239fefde0 100644
--- a/plugins/Referrers/Reports/GetKeywords.php
+++ b/plugins/Referrers/Reports/GetKeywords.php
@@ -11,7 +11,9 @@ namespace Piwik\Plugins\Referrers\Reports;
use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
+use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Evolution;
use Piwik\Plugins\Referrers\Columns\Keyword;
+use Piwik\Tracker\Visit;
class GetKeywords extends Base
{
@@ -24,7 +26,7 @@ class GetKeywords extends Base
$this->actionToLoadSubTables = 'getSearchEnginesFromKeywordId';
$this->hasGoalMetrics = true;
$this->order = 3;
- $this->widgetTitle = 'Referrers_Keywords';
+ $this->subcategoryId = 'Referrers_SubmenuSearchEngines';
}
public function configureView(ViewDataTable $view)
diff --git a/plugins/Referrers/Reports/GetReferrerType.php b/plugins/Referrers/Reports/GetReferrerType.php
index f5656bfa7f..c09f8c6d17 100644
--- a/plugins/Referrers/Reports/GetReferrerType.php
+++ b/plugins/Referrers/Reports/GetReferrerType.php
@@ -12,7 +12,11 @@ use Piwik\Common;
use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
+use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Evolution;
+use Piwik\Plugins\CoreVisualizations\Visualizations\Sparklines;
use Piwik\Plugins\Referrers\Columns\ReferrerType;
+use Piwik\Widget\WidgetsList;
+use Piwik\Report\ReportWidgetFactory;
class GetReferrerType extends Base
{
@@ -32,7 +36,7 @@ class GetReferrerType extends Base
$this->constantRowsCount = true;
$this->hasGoalMetrics = true;
$this->order = 1;
- $this->widgetTitle = 'General_Overview';
+ $this->subcategoryId = 'Referrers_WidgetGetAll';
}
public function getDefaultTypeViewDataTable()
@@ -40,6 +44,36 @@ class GetReferrerType extends Base
return HtmlTable\AllColumns::ID;
}
+ public function configureWidgets(WidgetsList $widgetsList, ReportWidgetFactory $factory)
+ {
+ $widgetsList->addWidgetConfig(
+ $factory->createWidget()
+ ->setName('Referrers_ReferrerTypes')
+ ->setSubcategoryId('Referrers_WidgetGetAll')
+ );
+
+ $widgetsList->addWidgetConfig(
+ $factory->createWidget()
+ ->setName('General_EvolutionOverPeriod')
+ ->setSubcategoryId('General_Overview')
+ ->setAction('getEvolutionGraph')
+ ->setIsNotWidgetizable()
+ ->forceViewDataTable(Evolution::ID)
+ ->addParameters(array(
+ 'columns' => $defaultColumns = array('nb_visits'),
+ ))
+ );
+
+ $widgetsList->addWidgetConfig(
+ $factory->createCustomWidget('getSparklines')
+ ->forceViewDataTable(Sparklines::ID)
+ ->setIsNotWidgetizable()
+ ->setName('Referrers_Type')
+ ->setSubcategoryId('General_Overview')
+ ->setOrder(10)
+ );
+ }
+
public function configureView(ViewDataTable $view)
{
$idSubtable = Common::getRequestVar('idSubtable', false);
diff --git a/plugins/Referrers/Reports/GetSearchEngines.php b/plugins/Referrers/Reports/GetSearchEngines.php
index 3b66cd0784..0a17cd132e 100644
--- a/plugins/Referrers/Reports/GetSearchEngines.php
+++ b/plugins/Referrers/Reports/GetSearchEngines.php
@@ -24,7 +24,8 @@ class GetSearchEngines extends Base
$this->actionToLoadSubTables = 'getKeywordsFromSearchEngineId';
$this->hasGoalMetrics = true;
$this->order = 7;
- $this->widgetTitle = 'Referrers_SearchEngines';
+
+ $this->subcategoryId = 'Referrers_SubmenuSearchEngines';
}
public function configureView(ViewDataTable $view)
diff --git a/plugins/Referrers/Reports/GetSocials.php b/plugins/Referrers/Reports/GetSocials.php
index b49fac623a..7429ddd48f 100644
--- a/plugins/Referrers/Reports/GetSocials.php
+++ b/plugins/Referrers/Reports/GetSocials.php
@@ -14,6 +14,8 @@ use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Pie;
use Piwik\Plugins\Referrers\Columns\SocialNetwork;
+use Piwik\Report\ReportWidgetFactory;
+use Piwik\Widget\WidgetsList;
class GetSocials extends Base
{
@@ -25,7 +27,14 @@ class GetSocials extends Base
$this->documentation = Piwik::translate('Referrers_WebsitesReportDocumentation', '<br />');
$this->actionToLoadSubTables = 'getUrlsForSocial';
$this->order = 11;
- $this->widgetTitle = 'Referrers_WidgetSocials';
+
+ $this->subcategoryId = 'Referrers_SubmenuWebsites';
+ }
+
+ public function configureWidgets(WidgetsList $widgetsList, ReportWidgetFactory $factory)
+ {
+ $widget = $factory->createWidget()->setName('Referrers_Socials');
+ $widgetsList->addWidgetConfig($widget);
}
public function getDefaultTypeViewDataTable()
diff --git a/plugins/Referrers/Reports/GetWebsites.php b/plugins/Referrers/Reports/GetWebsites.php
index 18f9336a63..f5be3ca375 100644
--- a/plugins/Referrers/Reports/GetWebsites.php
+++ b/plugins/Referrers/Reports/GetWebsites.php
@@ -12,6 +12,8 @@ use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
use Piwik\Plugins\Referrers\Columns\Website;
+use Piwik\Report\ReportWidgetFactory;
+use Piwik\Widget\WidgetsList;
class GetWebsites extends Base
{
@@ -25,7 +27,8 @@ class GetWebsites extends Base
$this->actionToLoadSubTables = 'getUrlsFromWebsiteId';
$this->hasGoalMetrics = true;
$this->order = 5;
- $this->widgetTitle = 'Referrers_WidgetExternalWebsites';
+
+ $this->subcategoryId = 'Referrers_SubmenuWebsites';
}
public function configureView(ViewDataTable $view)
diff --git a/plugins/Referrers/Widgets.php b/plugins/Referrers/Widgets.php
deleted file mode 100644
index 4e23c9f746..0000000000
--- a/plugins/Referrers/Widgets.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?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\Referrers;
-
-use Piwik\SettingsPiwik;
-
-class Widgets extends \Piwik\Plugin\Widgets
-{
- protected $category = 'SEO';
-
- public function init()
- {
- if (SettingsPiwik::isSegmentationEnabled()) {
- $this->addWidget('Referrers_WidgetTopKeywordsForPages', 'getKeywordsForPage');
- }
- }
-
-}
diff --git a/plugins/Referrers/Widgets/GetKeywordsForPage.php b/plugins/Referrers/Widgets/GetKeywordsForPage.php
new file mode 100644
index 0000000000..165bb18f68
--- /dev/null
+++ b/plugins/Referrers/Widgets/GetKeywordsForPage.php
@@ -0,0 +1,23 @@
+<?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\Referrers\Widgets;
+
+use Piwik\Widget\WidgetConfig;
+use Piwik\SettingsPiwik;
+
+class GetKeywordsForPage extends \Piwik\Widget\Widget
+{
+ public static function configure(WidgetConfig $config)
+ {
+ $config->setCategoryId('SEO');
+ $config->setName('Referrers_WidgetTopKeywordsForPages');
+ $config->setIsEnabled(SettingsPiwik::isSegmentationEnabled());
+ }
+
+}
diff --git a/plugins/Referrers/templates/allReferrers.twig b/plugins/Referrers/templates/allReferrers.twig
deleted file mode 100644
index bf8c7c431c..0000000000
--- a/plugins/Referrers/templates/allReferrers.twig
+++ /dev/null
@@ -1,11 +0,0 @@
-<h2 piwik-enriched-headline>{{ 'Referrers_ReferrerTypes'|translate }}</h2>
-{{ dataTableReferrerType|raw }}
-
-<div style="clear:both;"></div>
-
-{% if totalVisits > 0 %}
- <h2 piwik-enriched-headline>{{ 'Referrers_Referrers'|translate }}</h2>
- {{ referrersReportsByDimension|raw }}
-{% endif %}
-
-{% include "_sparklineFooter.twig" %}
diff --git a/plugins/Referrers/templates/getSearchEnginesAndKeywords.twig b/plugins/Referrers/templates/getSearchEnginesAndKeywords.twig
deleted file mode 100644
index 29b2b3f0af..0000000000
--- a/plugins/Referrers/templates/getSearchEnginesAndKeywords.twig
+++ /dev/null
@@ -1,13 +0,0 @@
-<div class="row">
-
- <div class="col-md-6">
- <h2 piwik-enriched-headline>{{ 'Referrers_Keywords'|translate }}</h2>
- {{ keywords|raw }}
- </div>
-
- <div class="col-md-6">
- <h2 piwik-enriched-headline>{{ 'Referrers_SearchEngines'|translate }}</h2>
- {{ searchEngines|raw }}
- </div>
-
-</div>
diff --git a/plugins/Referrers/templates/index.twig b/plugins/Referrers/templates/index.twig
deleted file mode 100644
index 74851c3b37..0000000000
--- a/plugins/Referrers/templates/index.twig
+++ /dev/null
@@ -1,89 +0,0 @@
-<h2 piwik-enriched-headline
- data-graph-id="{{ nameGraphEvolutionReferrers }}">{{ 'General_EvolutionOverPeriod'|translate }}</h2>
-{{ graphEvolutionReferrers|raw }}
-
-<h2 piwik-enriched-headline>{{ 'Referrers_Type'|translate }}</h2>
-
-<div class="row">
- <div class="col-md-6">
- <div class="sparkline" style="padding-left: 12px;">{{ sparkline(urlSparklineDirectEntry) }}
- {{ 'Referrers_TypeDirectEntries'|translate("<strong>"~visitorsFromDirectEntry|number~"</strong>")|raw }}
- {% if visitorsFromDirectEntryPercent|default is not empty %},
- {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromDirectEntryPercent|percent~"</strong>")|raw }}
- {% endif %}
- {% if visitorsFromDirectEntryEvolution|default is not empty %}
- {{ visitorsFromDirectEntryEvolution|raw }}
- {% endif %}
- </div>
- <div class="sparkline" style="padding-left: 12px;">{{ sparkline(urlSparklineSearchEngines) }}
- {{ 'Referrers_TypeSearchEngines'|translate("<strong>"~visitorsFromSearchEngines|number~"</strong>")|raw }}
- {% if visitorsFromSearchEnginesPercent|default is not empty %},
- {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromSearchEnginesPercent|percent~"</strong>")|raw }}
- {% endif %}
- {% if visitorsFromSearchEnginesEvolution|default is not empty %}
- {{ visitorsFromSearchEnginesEvolution|raw }}
- {% endif %}
- </div>
- </div>
- <div class="col-md-6">
- <div class="sparkline">{{ sparkline(urlSparklineWebsites) }}
- {{ 'Referrers_TypeWebsites'|translate("<strong>"~visitorsFromWebsites|number~"</strong>")|raw }}
- {% if visitorsFromWebsitesPercent|default is not empty %},
- {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromWebsitesPercent|percent~"</strong>")|raw }}
- {% endif %}
- {% if visitorsFromWebsitesEvolution|default is not empty %}
- {{ visitorsFromWebsitesEvolution|raw }}
- {% endif %}
- </div>
- <div class="sparkline">{{ sparkline(urlSparklineCampaigns) }}
- {{ 'Referrers_TypeCampaigns'|translate("<strong>"~visitorsFromCampaigns|number~"</strong>")|raw }}
- {% if visitorsFromCampaignsPercent|default is not empty %},
- {{ 'Referrers_XPercentOfVisits'|translate("<strong>"~visitorsFromCampaignsPercent|percent~"</strong>")|raw }}
- {% endif %}
- {% if visitorsFromCampaignsEvolution|default is not empty %}
- {{ visitorsFromCampaignsEvolution|raw }}
- {% endif %}
- </div>
- </div>
-</div>
-
-<div id="distinctReferrersByType" class="row">
- <div class="col-md-6">
- <div class="sparkline" style="padding-left: 12px;">{{ sparkline(urlSparklineDistinctSearchEngines) }}
- <strong>{{ numberDistinctSearchEngines|number }}</strong> {{ 'Referrers_DistinctSearchEngines'|translate }}
- {% if numberDistinctSearchEnginesEvolution|default is not empty %}
- {{ numberDistinctSearchEnginesEvolution|raw }}
- {% endif %}
- </div>
- <div class="sparkline" style="padding-left: 12px;">{{ sparkline(urlSparklineDistinctKeywords) }}
- <strong>{{ numberDistinctKeywords|number }}</strong> {{ 'Referrers_DistinctKeywords'|translate }}
- {% if numberDistinctKeywordsEvolution|default is not empty %}
- {{ numberDistinctKeywordsEvolution|raw }}
- {% endif %}
- </div>
- </div>
- <div class="col-md-6">
- <div class="sparkline">{{ sparkline(urlSparklineDistinctWebsites) }}
- <strong>{{ numberDistinctWebsites|number }}</strong> {{ 'Referrers_DistinctWebsites'|translate }}
- {{ 'Referrers_UsingNDistinctUrls'|translate("<strong>"~numberDistinctWebsitesUrls|number~"</strong>")|raw }}
- {% if numberDistinctWebsitesEvolution|default is not empty %}
- {{ numberDistinctWebsitesEvolution|raw }}
- {% endif %}
- </div>
- <div class="sparkline">{{ sparkline(urlSparklineDistinctCampaigns) }}
- <strong>{{ numberDistinctCampaigns|number }}</strong> {{ 'Referrers_DistinctCampaigns'|translate }}
- {% if numberDistinctCampaignsEvolution|default is not empty %}
- {{ numberDistinctCampaignsEvolution|raw }}
- {% endif %}
- </div>
- </div>
- <br/>
-</div>
-
-<div style="float:left;" class="relatedReferrerReports">{{ 'General_View'|translate }}
- <a href="javascript:broadcast.propagateAjax('module=Referrers&action=getSearchEnginesAndKeywords')">{{ 'Referrers_SubmenuSearchEngines'|translate }}</a>,
- <a href="javascript:broadcast.propagateAjax('module=Referrers&action=indexWebsites')">{{ 'Referrers_SubmenuWebsites'|translate }}</a>,
- <a href="javascript:broadcast.propagateAjax('module=Referrers&action=indexCampaigns')">{{ 'Referrers_Campaigns'|translate }}</a>.
-</div>
-
-{% include "_sparklineFooter.twig" %}
diff --git a/plugins/Referrers/templates/indexWebsites.twig b/plugins/Referrers/templates/indexWebsites.twig
deleted file mode 100644
index cdfa6efe01..0000000000
--- a/plugins/Referrers/templates/indexWebsites.twig
+++ /dev/null
@@ -1,13 +0,0 @@
-<div class="row">
-
- <div class="col-md-6">
- <h2 piwik-enriched-headline>{{ 'Referrers_Websites'|translate }}</h2>
- {{ websites|raw }}
- </div>
-
- <div class="col-md-6">
- <h2 piwik-enriched-headline>{{ 'Referrers_Socials'|translate }}</h2>
- {{ socials|raw }}
- </div>
-
-</div>
diff --git a/plugins/Referrers/tests/System/expected/test_Referrers_getReferrerType__API.getProcessedReport_day.xml b/plugins/Referrers/tests/System/expected/test_Referrers_getReferrerType__API.getProcessedReport_day.xml
index fd12dfdcd0..58601dc41b 100644
--- a/plugins/Referrers/tests/System/expected/test_Referrers_getReferrerType__API.getProcessedReport_day.xml
+++ b/plugins/Referrers/tests/System/expected/test_Referrers_getReferrerType__API.getProcessedReport_day.xml
@@ -4,6 +4,7 @@
<prettyDate>January 1 &#x2013; March 10, 2010</prettyDate>
<metadata>
<category>Referrers</category>
+ <subcategory>All Referrers</subcategory>
<name>Referrer Type</name>
<module>Referrers</module>
<action>getReferrerType</action>