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:
authorThomas Steur <thomas.steur@googlemail.com>2014-06-06 07:50:06 +0400
committerThomas Steur <thomas.steur@googlemail.com>2014-06-06 07:50:06 +0400
commitbedfa1c9de069801d58de9642c92f8681c69d7bb (patch)
tree7abafc84eb446736dbe9df5f6c5e8d7b4d7aaf1f
parentb457fcc96885ae6a33896be4f1e98aec9efaf0fa (diff)
working on simplifying widgets. Pushing into a branch since I am not 100% happy with it yet.
-rw-r--r--core/Menu/MenuAdmin.php1
-rw-r--r--core/Menu/MenuReporting.php1
-rw-r--r--core/Menu/MenuTop.php1
-rw-r--r--core/Plugin/Widgets.php29
-rw-r--r--core/TaskScheduler.php1
-rw-r--r--core/WidgetsList.php26
-rw-r--r--plugins/Actions/Actions.php30
-rw-r--r--plugins/Actions/Widgets.php51
-rw-r--r--plugins/CoreHome/CoreHome.php12
-rw-r--r--plugins/CoreHome/Widgets.php24
-rw-r--r--plugins/CustomVariables/CustomVariables.php9
-rw-r--r--plugins/CustomVariables/Widgets.php20
-rw-r--r--plugins/DevicesDetection/DevicesDetection.php14
-rw-r--r--plugins/DevicesDetection/Widgets.php27
-rw-r--r--plugins/Events/Events.php14
-rw-r--r--plugins/Events/Widgets.php25
-rw-r--r--plugins/ExampleRssWidget/ExampleRssWidget.php11
-rw-r--r--plugins/ExampleRssWidget/Widgets.php24
-rw-r--r--plugins/Goals/Goals.php31
-rw-r--r--plugins/Goals/Widgets.php53
-rw-r--r--plugins/Insights/Insights.php9
-rw-r--r--plugins/Insights/Widgets.php24
-rw-r--r--plugins/Live/Live.php12
-rw-r--r--plugins/Live/Widgets.php26
-rw-r--r--plugins/Provider/Provider.php7
-rw-r--r--plugins/Provider/Widgets.php20
-rw-r--r--plugins/Referrers/Referrers.php2
-rw-r--r--plugins/Referrers/Widgets.php34
-rw-r--r--plugins/SEO/SEO.php15
-rw-r--r--plugins/SEO/Widgets.php20
-rw-r--r--plugins/UserCountry/UserCountry.php19
-rw-r--r--plugins/UserCountry/Widgets.php36
-rw-r--r--plugins/UserSettings/UserSettings.php36
-rw-r--r--plugins/UserSettings/Widgets.php30
-rw-r--r--plugins/VisitFrequency/VisitFrequency.php9
-rw-r--r--plugins/VisitFrequency/Widgets.php25
-rw-r--r--plugins/VisitTime/VisitTime.php9
-rw-r--r--plugins/VisitTime/Widgets.php25
-rw-r--r--plugins/VisitorInterest/VisitorInterest.php10
-rw-r--r--plugins/VisitorInterest/Widgets.php26
-rw-r--r--plugins/VisitsSummary/VisitsSummary.php9
-rw-r--r--plugins/VisitsSummary/Widgets.php25
42 files changed, 582 insertions, 250 deletions
diff --git a/core/Menu/MenuAdmin.php b/core/Menu/MenuAdmin.php
index 792905cf9b..f0c38c0a0c 100644
--- a/core/Menu/MenuAdmin.php
+++ b/core/Menu/MenuAdmin.php
@@ -59,6 +59,7 @@ class MenuAdmin extends MenuAbstract
/**
* @ignore
+ * @deprecated
*/
Piwik::postEvent('Menu.Admin.addItems', array());
diff --git a/core/Menu/MenuReporting.php b/core/Menu/MenuReporting.php
index 2c5ae297da..08dcc23e82 100644
--- a/core/Menu/MenuReporting.php
+++ b/core/Menu/MenuReporting.php
@@ -63,6 +63,7 @@ class MenuReporting extends MenuAbstract
/**
* @ignore
+ * @deprecated
*/
Piwik::postEvent('Menu.Reporting.addItems', array());
diff --git a/core/Menu/MenuTop.php b/core/Menu/MenuTop.php
index 7a860ef7d6..774fbd652d 100644
--- a/core/Menu/MenuTop.php
+++ b/core/Menu/MenuTop.php
@@ -96,6 +96,7 @@ class MenuTop extends MenuAbstract
/**
* @ignore
+ * @deprecated
*/
Piwik::postEvent('Menu.Top.addItems', array());
diff --git a/core/Plugin/Widgets.php b/core/Plugin/Widgets.php
new file mode 100644
index 0000000000..c2ea16f7cf
--- /dev/null
+++ b/core/Plugin/Widgets.php
@@ -0,0 +1,29 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugin;
+
+use Piwik\WidgetsList;
+
+/**
+ * Base class of all plugin widget providers. Plugins that define their own widgets can extend this class to easily
+ * add new widgets, to remove or to rename existing items.
+ *
+ * For an example, see the {@link https://github.com/piwik/piwik/blob/master/plugins/ExampleRssWidget/Widget.php} plugin.
+ *
+ * @api
+ */
+class Widgets
+{
+ /**
+ * Configures the widgets. Here you can for instance add or remove widgets.
+ */
+ public function configure(WidgetsList $widgetsList)
+ {
+ }
+}
diff --git a/core/TaskScheduler.php b/core/TaskScheduler.php
index 85c71c9ef8..497de8c299 100644
--- a/core/TaskScheduler.php
+++ b/core/TaskScheduler.php
@@ -90,6 +90,7 @@ class TaskScheduler extends Singleton
/**
* @ignore
+ * @deprecated
*/
Piwik::postEvent(self::GET_TASKS_EVENT, array(&$tasks));
diff --git a/core/WidgetsList.php b/core/WidgetsList.php
index bb85a37349..75c75937d8 100644
--- a/core/WidgetsList.php
+++ b/core/WidgetsList.php
@@ -8,6 +8,8 @@
*/
namespace Piwik;
+use Piwik\Plugin\Manager as PluginManager;
+
/**
* Manages the global list of reports that can be displayed as dashboard widgets.
*
@@ -15,8 +17,9 @@ namespace Piwik;
* event. Observers for this event should call the {@link add()} method to add reports.
*
* @api
+ * @method static \Piwik\WidgetsList getInstance()
*/
-class WidgetsList
+class WidgetsList extends Singleton
{
/**
* List of widgets
@@ -71,20 +74,17 @@ class WidgetsList
self::$hookCalled = true;
/**
- * Used to collect all available dashboard widgets.
- *
- * Subscribe to this event to make your plugin's reports or other controller actions available
- * as dashboard widgets. Event handlers should call the {@link WidgetsList::add()} method for each
- * new dashboard widget.
- *
- * **Example**
- *
- * public function addWidgets()
- * {
- * WidgetsList::add('General_Actions', 'General_Pages', 'Actions', 'getPageUrls');
- * }
+ * @ignore
+ * @deprecated
*/
Piwik::postEvent('WidgetsList.addWidgets');
+
+ /** @var \Piwik\Plugin\Widgets[] $widgets */
+ $widgets = PluginManager::getInstance()->findComponents('Widgets', 'Piwik\\Plugin\\Widgets');
+
+ foreach ($widgets as $widget) {
+ $widget->configure(WidgetsList::getInstance());
+ }
}
}
diff --git a/plugins/Actions/Actions.php b/plugins/Actions/Actions.php
index f4a0445380..5df2b98ec3 100644
--- a/plugins/Actions/Actions.php
+++ b/plugins/Actions/Actions.php
@@ -12,14 +12,11 @@ use Piwik\API\Request;
use Piwik\ArchiveProcessor;
use Piwik\Common;
use Piwik\Db;
-use Piwik\Menu\MenuAbstract;
-use Piwik\Menu\MenuMain;
use Piwik\MetricsFormatter;
use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
use Piwik\Site;
-use Piwik\WidgetsList;
/**
* Actions plugin
@@ -37,7 +34,6 @@ class Actions extends \Piwik\Plugin
public function getListHooksRegistered()
{
$hooks = array(
- 'WidgetsList.addWidgets' => 'addWidgets',
'API.getReportMetadata' => 'getReportMetadata',
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
'ViewDataTable.configure' => 'configureViewDataTable',
@@ -462,29 +458,6 @@ class Actions extends \Piwik\Plugin
}
}
- function addWidgets()
- {
- WidgetsList::add('General_Actions', 'General_Pages', 'Actions', 'getPageUrls');
- WidgetsList::add('General_Actions', 'Actions_WidgetPageTitles', 'Actions', 'getPageTitles');
- WidgetsList::add('General_Actions', 'General_Outlinks', 'Actions', 'getOutlinks');
- WidgetsList::add('General_Actions', 'General_Downloads', 'Actions', 'getDownloads');
- WidgetsList::add('General_Actions', 'Actions_WidgetPagesEntry', 'Actions', 'getEntryPageUrls');
- WidgetsList::add('General_Actions', 'Actions_WidgetPagesExit', 'Actions', 'getExitPageUrls');
- WidgetsList::add('General_Actions', 'Actions_WidgetEntryPageTitles', 'Actions', 'getEntryPageTitles');
- WidgetsList::add('General_Actions', 'Actions_WidgetExitPageTitles', 'Actions', 'getExitPageTitles');
-
- if ($this->isSiteSearchEnabled()) {
- WidgetsList::add('Actions_SubmenuSitesearch', 'Actions_WidgetSearchKeywords', 'Actions', 'getSiteSearchKeywords');
-
- if (self::isCustomVariablesPluginsEnabled()) {
- WidgetsList::add('Actions_SubmenuSitesearch', 'Actions_WidgetSearchCategories', 'Actions', 'getSiteSearchCategories');
- }
- WidgetsList::add('Actions_SubmenuSitesearch', 'Actions_WidgetSearchNoResultKeywords', 'Actions', 'getSiteSearchNoResultKeywords');
- WidgetsList::add('Actions_SubmenuSitesearch', 'Actions_WidgetPageUrlsFollowingSearch', 'Actions', 'getPageUrlsFollowingSiteSearch');
- WidgetsList::add('Actions_SubmenuSitesearch', 'Actions_WidgetPageTitlesFollowingSearch', 'Actions', 'getPageTitlesFollowingSiteSearch');
- }
- }
-
public function isSiteSearchEnabled()
{
$idSite = Common::getRequestVar('idSite', 0, 'int');
@@ -515,12 +488,11 @@ class Actions extends \Piwik\Plugin
}
}
- static protected function isCustomVariablesPluginsEnabled()
+ static public function isCustomVariablesPluginsEnabled()
{
return \Piwik\Plugin\Manager::getInstance()->isPluginActivated('CustomVariables');
}
-
public function configureViewDataTable(ViewDataTable $view)
{
switch ($view->requestConfig->apiMethodToRequestDataTable) {
diff --git a/plugins/Actions/Widgets.php b/plugins/Actions/Widgets.php
new file mode 100644
index 0000000000..eff55ceb1b
--- /dev/null
+++ b/plugins/Actions/Widgets.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Actions;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+
+ public function configure(WidgetsList $widgetsList)
+ {
+ $category = 'General_Actions';
+ $controller = 'Actions';
+
+ $widgetsList->add($category, 'General_Pages', $controller, 'getPageUrls');
+ $widgetsList->add($category, 'Actions_WidgetPageTitles', $controller, 'getPageTitles');
+ $widgetsList->add($category, 'General_Outlinks', $controller, 'getOutlinks');
+ $widgetsList->add($category, 'General_Downloads', $controller, 'getDownloads');
+ $widgetsList->add($category, 'Actions_WidgetPagesEntry', $controller, 'getEntryPageUrls');
+ $widgetsList->add($category, 'Actions_WidgetPagesExit', $controller, 'getExitPageUrls');
+ $widgetsList->add($category, 'Actions_WidgetEntryPageTitles', $controller, 'getEntryPageTitles');
+ $widgetsList->add($category, 'Actions_WidgetExitPageTitles', $controller, 'getExitPageTitles');
+
+ $actions = new Actions();
+ if ($actions->isSiteSearchEnabled()) {
+ $this->addSearchWidgets($widgetsList, $controller);
+ }
+ }
+
+ private function addSearchWidgets(WidgetsList $widgetsList, $controller)
+ {
+ $category = 'Actions_SubmenuSitesearch';
+
+ $widgetsList->add($category, 'Actions_WidgetSearchKeywords', $controller, 'getSiteSearchKeywords');
+
+ if (Actions::isCustomVariablesPluginsEnabled()) {
+ $widgetsList->add($category, 'Actions_WidgetSearchCategories', $controller, 'getSiteSearchCategories');
+ }
+
+ $widgetsList->add($category, 'Actions_WidgetSearchNoResultKeywords', $controller, 'getSiteSearchNoResultKeywords');
+ $widgetsList->add($category, 'Actions_WidgetPageUrlsFollowingSearch', $controller, 'getPageUrlsFollowingSiteSearch');
+ $widgetsList->add($category, 'Actions_WidgetPageTitlesFollowingSearch', $controller, 'getPageTitlesFollowingSiteSearch');
+ }
+
+}
diff --git a/plugins/CoreHome/CoreHome.php b/plugins/CoreHome/CoreHome.php
index a60dd07d7c..0fafe37320 100644
--- a/plugins/CoreHome/CoreHome.php
+++ b/plugins/CoreHome/CoreHome.php
@@ -8,8 +8,6 @@
*/
namespace Piwik\Plugins\CoreHome;
-use Piwik\WidgetsList;
-
/**
*
*/
@@ -23,20 +21,10 @@ class CoreHome extends \Piwik\Plugin
return array(
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
- 'WidgetsList.addWidgets' => 'addWidgets',
'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys'
);
}
- /**
- * Adds the donate form widget.
- */
- public function addWidgets()
- {
- WidgetsList::add('Example Widgets', 'CoreHome_SupportPiwik', 'CoreHome', 'getDonateForm');
- WidgetsList::add('Example Widgets', 'Installation_Welcome', 'CoreHome', 'getPromoVideo');
- }
-
public function getStylesheetFiles(&$stylesheets)
{
$stylesheets[] = "libs/jquery/themes/base/jquery-ui.css";
diff --git a/plugins/CoreHome/Widgets.php b/plugins/CoreHome/Widgets.php
new file mode 100644
index 0000000000..5aba86a2cd
--- /dev/null
+++ b/plugins/CoreHome/Widgets.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\CoreHome;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $category = 'Example Widgets';
+ $controller = 'CoreHome';
+
+ $widgetsList->add($category, 'CoreHome_SupportPiwik', $controller, 'getDonateForm');
+ $widgetsList->add($category, 'Installation_Welcome', $controller, 'getPromoVideo');
+ }
+
+}
diff --git a/plugins/CustomVariables/CustomVariables.php b/plugins/CustomVariables/CustomVariables.php
index b3237e9a34..094ac588bf 100644
--- a/plugins/CustomVariables/CustomVariables.php
+++ b/plugins/CustomVariables/CustomVariables.php
@@ -9,13 +9,10 @@
namespace Piwik\Plugins\CustomVariables;
use Piwik\ArchiveProcessor;
-use Piwik\Menu\MenuAbstract;
-use Piwik\Menu\MenuMain;
use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
use Piwik\Tracker\Cache;
use Piwik\Tracker;
-use Piwik\WidgetsList;
/**
*/
@@ -34,7 +31,6 @@ class CustomVariables extends \Piwik\Plugin
public function getListHooksRegistered()
{
$hooks = array(
- 'WidgetsList.addWidgets' => 'addWidgets',
'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics',
'API.getReportMetadata' => 'getReportMetadata',
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
@@ -43,11 +39,6 @@ class CustomVariables extends \Piwik\Plugin
return $hooks;
}
- public function addWidgets()
- {
- WidgetsList::add('General_Visitors', 'CustomVariables_CustomVariables', 'CustomVariables', 'getCustomVariables');
- }
-
public function install()
{
Model::install();
diff --git a/plugins/CustomVariables/Widgets.php b/plugins/CustomVariables/Widgets.php
new file mode 100644
index 0000000000..183219b2d6
--- /dev/null
+++ b/plugins/CustomVariables/Widgets.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\CustomVariables;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ WidgetsList::add('General_Visitors', 'CustomVariables_CustomVariables', 'CustomVariables', 'getCustomVariables');
+ }
+
+}
diff --git a/plugins/DevicesDetection/DevicesDetection.php b/plugins/DevicesDetection/DevicesDetection.php
index 1f11715119..82819f6784 100644
--- a/plugins/DevicesDetection/DevicesDetection.php
+++ b/plugins/DevicesDetection/DevicesDetection.php
@@ -17,7 +17,6 @@ use Piwik\Common;
use Piwik\Db;
use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
-use Piwik\WidgetsList;
require_once PIWIK_INCLUDE_PATH . '/plugins/DevicesDetection/functions.php';
@@ -88,7 +87,6 @@ class DevicesDetection extends \Piwik\Plugin
{
return array(
'Tracker.newVisitorInformation' => 'parseMobileVisitData',
- 'WidgetsList.addWidgets' => 'addWidgets',
'API.getReportMetadata' => 'getReportMetadata',
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
'ViewDataTable.configure' => 'configureViewDataTable',
@@ -101,7 +99,7 @@ class DevicesDetection extends \Piwik\Plugin
*
* @return array Category, Report Name, API Module, API action, Translated column name, & optional segment info
*/
- protected function getRawMetadataReports()
+ public function getRawMetadataReports()
{
$report = array(
@@ -160,16 +158,6 @@ class DevicesDetection extends \Piwik\Plugin
return $report;
}
- public function addWidgets()
- {
- foreach ($this->getRawMetadataReports() as $report) {
- list($category, $name, $controllerName, $controllerAction) = $report;
- if ($category == false)
- continue;
- WidgetsList::add($category, $name, $controllerName, $controllerAction);
- }
- }
-
/**
* Get segments meta data
*/
diff --git a/plugins/DevicesDetection/Widgets.php b/plugins/DevicesDetection/Widgets.php
new file mode 100644
index 0000000000..0df651064d
--- /dev/null
+++ b/plugins/DevicesDetection/Widgets.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\DevicesDetection;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $detection = new DevicesDetection();
+
+ foreach ($detection->getRawMetadataReports() as $report) {
+ list($category, $name, $controllerName, $controllerAction) = $report;
+ if ($category == false)
+ continue;
+ $widgetsList->add($category, $name, $controllerName, $controllerAction);
+ }
+ }
+
+}
diff --git a/plugins/Events/Events.php b/plugins/Events/Events.php
index ee4132ddf3..cf59f970ea 100644
--- a/plugins/Events/Events.php
+++ b/plugins/Events/Events.php
@@ -9,11 +9,8 @@
namespace Piwik\Plugins\Events;
use Piwik\Common;
-use Piwik\Menu\MenuAbstract;
-use Piwik\Menu\MenuMain;
use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
-use Piwik\WidgetsList;
/**
*/
@@ -28,20 +25,10 @@ class Events extends \Piwik\Plugin
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
'Metrics.getDefaultMetricTranslations' => 'addMetricTranslations',
'API.getReportMetadata' => 'getReportMetadata',
- 'WidgetsList.addWidgets' => 'addWidgets',
'ViewDataTable.configure' => 'configureViewDataTable',
);
}
- public function addWidgets()
- {
- foreach(self::getLabelTranslations() as $apiMethod => $labels) {
- $params = array(
- 'secondaryDimension' => API::getInstance()->getDefaultSecondaryDimension($apiMethod)
- );
- WidgetsList::add('Events_Events', $labels[0], 'Events', $apiMethod, $params);
- }
- }
public function addMetricTranslations(&$translations)
{
@@ -98,7 +85,6 @@ class Events extends \Piwik\Plugin
);
}
-
public function getSegmentsMetadata(&$segments)
{
$sqlFilter = '\\Piwik\\Tracker\\TableLogAction::getIdActionFromSegment';
diff --git a/plugins/Events/Widgets.php b/plugins/Events/Widgets.php
new file mode 100644
index 0000000000..d08c285d66
--- /dev/null
+++ b/plugins/Events/Widgets.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Events;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ foreach(Events::getLabelTranslations() as $apiMethod => $labels) {
+ $params = array(
+ 'secondaryDimension' => API::getInstance()->getDefaultSecondaryDimension($apiMethod)
+ );
+ $widgetsList->add('Events_Events', $labels[0], 'Events', $apiMethod, $params);
+ }
+ }
+
+}
diff --git a/plugins/ExampleRssWidget/ExampleRssWidget.php b/plugins/ExampleRssWidget/ExampleRssWidget.php
index 0e501cf218..e4de452f28 100644
--- a/plugins/ExampleRssWidget/ExampleRssWidget.php
+++ b/plugins/ExampleRssWidget/ExampleRssWidget.php
@@ -8,8 +8,6 @@
*/
namespace Piwik\Plugins\ExampleRssWidget;
-use Piwik\WidgetsList;
-
/**
*
*/
@@ -21,8 +19,7 @@ class ExampleRssWidget extends \Piwik\Plugin
public function getListHooksRegistered()
{
return array(
- 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
- 'WidgetsList.addWidgets' => 'addWidgets'
+ 'AssetManager.getStylesheetFiles' => 'getStylesheetFiles'
);
}
@@ -30,10 +27,4 @@ class ExampleRssWidget extends \Piwik\Plugin
{
$stylesheets[] = "plugins/ExampleRssWidget/stylesheets/rss.less";
}
-
- public function addWidgets()
- {
- WidgetsList::add('Example Widgets', 'Piwik.org Blog', 'ExampleRssWidget', 'rssPiwik');
- WidgetsList::add('Example Widgets', 'Piwik Changelog', 'ExampleRssWidget', 'rssChangelog');
- }
}
diff --git a/plugins/ExampleRssWidget/Widgets.php b/plugins/ExampleRssWidget/Widgets.php
new file mode 100644
index 0000000000..56444cd9c5
--- /dev/null
+++ b/plugins/ExampleRssWidget/Widgets.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\ExampleRssWidget;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $category = 'Example Widgets';
+ $controller = 'ExampleRssWidget';
+
+ $widgetsList->add($category, 'Piwik.org Blog', $controller, 'rssPiwik');
+ $widgetsList->add($category, 'Piwik Changelog', $controller, 'rssChangelog');
+ }
+
+}
diff --git a/plugins/Goals/Goals.php b/plugins/Goals/Goals.php
index 4631010d3e..80068946bc 100644
--- a/plugins/Goals/Goals.php
+++ b/plugins/Goals/Goals.php
@@ -16,7 +16,6 @@ use Piwik\Plugin\ViewDataTable;
use Piwik\Site;
use Piwik\Tracker\GoalManager;
use Piwik\Translate;
-use Piwik\WidgetsList;
/**
*
@@ -53,6 +52,11 @@ class Goals extends \Piwik\Plugin
return $dimensionsByGroup;
}
+ public function getEcommerceReports()
+ {
+ return $this->ecommerceReports;
+ }
+
public static function sortGoalDimensionsByModule($a, $b)
{
$order = array(
@@ -103,7 +107,6 @@ class Goals extends \Piwik\Plugin
'Tracker.Cache.getSiteAttributes' => 'fetchGoalsFromDb',
'API.getReportMetadata.end' => 'getReportMetadata',
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
- 'WidgetsList.addWidgets' => 'addWidgets',
'SitesManager.deleteSite.end' => 'deleteSiteGoals',
'Goals.getReportsWithGoalMetrics' => 'getActualReportsWithGoalMetrics',
'ViewDataTable.configure' => 'configureViewDataTable',
@@ -468,30 +471,6 @@ class Goals extends \Piwik\Plugin
$array['goals'] = API::getInstance()->getGoals($idSite);
}
- public function addWidgets()
- {
- $idSite = Common::getRequestVar('idSite', null, 'int');
-
- // Ecommerce widgets
- $site = new Site($idSite);
- if ($site->isEcommerceEnabled()) {
- WidgetsList::add('Goals_Ecommerce', 'Goals_EcommerceOverview', 'Goals', 'widgetGoalReport', array('idGoal' => Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER));
- WidgetsList::add('Goals_Ecommerce', 'Goals_EcommerceLog', 'Goals', 'getEcommerceLog');
- foreach ($this->ecommerceReports as $widget) {
- WidgetsList::add('Goals_Ecommerce', $widget[0], $widget[1], $widget[2]);
- }
- }
-
- // Goals widgets
- WidgetsList::add('Goals_Goals', 'Goals_GoalsOverview', 'Goals', 'widgetGoalsOverview');
- $goals = API::getInstance()->getGoals($idSite);
- if (count($goals) > 0) {
- foreach ($goals as $goal) {
- WidgetsList::add('Goals_Goals', Common::sanitizeInputValue($goal['name']), 'Goals', 'widgetGoalReport', array('idGoal' => $goal['idgoal']));
- }
- }
- }
-
public function configureViewDataTable(ViewDataTable $view)
{
switch ($view->requestConfig->apiMethodToRequestDataTable) {
diff --git a/plugins/Goals/Widgets.php b/plugins/Goals/Widgets.php
new file mode 100644
index 0000000000..d7a90c9645
--- /dev/null
+++ b/plugins/Goals/Widgets.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Goals;
+
+use Piwik\WidgetsList;
+use Piwik\Common;
+use Piwik\Site;
+use Piwik\Piwik;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $idSite = Common::getRequestVar('idSite', null, 'int');
+
+ $site = new Site($idSite);
+ if ($site->isEcommerceEnabled()) {
+ $this->addEcommerceWidgets($widgetsList);
+ }
+
+ $this->addGoalsWidgets($widgetsList, $idSite);
+ }
+
+ private function addEcommerceWidgets(WidgetsList $widgetsList)
+ {
+ $goals = new Goals();
+
+ $widgetsList->add('Goals_Ecommerce', 'Goals_EcommerceOverview', 'Goals', 'widgetGoalReport', array('idGoal' => Piwik::LABEL_ID_GOAL_IS_ECOMMERCE_ORDER));
+ $widgetsList->add('Goals_Ecommerce', 'Goals_EcommerceLog', 'Goals', 'getEcommerceLog');
+ foreach ($goals->getEcommerceReports() as $widget) {
+ $widgetsList->add('Goals_Ecommerce', $widget[0], $widget[1], $widget[2]);
+ }
+ }
+
+ private function addGoalsWidgets(WidgetsList $widgetsList, $idSite)
+ {
+ $widgetsList->add('Goals_Goals', 'Goals_GoalsOverview', 'Goals', 'widgetGoalsOverview');
+
+ $goals = API::getInstance()->getGoals($idSite);
+ if (count($goals) > 0) {
+ foreach ($goals as $goal) {
+ $widgetsList->add('Goals_Goals', Common::sanitizeInputValue($goal['name']), 'Goals', 'widgetGoalReport', array('idGoal' => $goal['idgoal']));
+ }
+ }
+ }
+
+}
diff --git a/plugins/Insights/Insights.php b/plugins/Insights/Insights.php
index 9c915ce99d..00138e4d4b 100644
--- a/plugins/Insights/Insights.php
+++ b/plugins/Insights/Insights.php
@@ -8,8 +8,6 @@
*/
namespace Piwik\Plugins\Insights;
-use Piwik\WidgetsList;
-
/**
*/
class Insights extends \Piwik\Plugin
@@ -20,7 +18,6 @@ class Insights extends \Piwik\Plugin
public function getListHooksRegistered()
{
return array(
- 'WidgetsList.addWidgets' => 'addWidgets',
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
'ViewDataTable.addViewDataTable' => 'getAvailableVisualizations'
@@ -32,12 +29,6 @@ class Insights extends \Piwik\Plugin
$visualizations[] = __NAMESPACE__ . '\\Visualizations\\Insight';
}
- public function addWidgets()
- {
- WidgetsList::add('Insights_WidgetCategory', 'Insights_OverviewWidgetTitle', 'Insights', 'getInsightsOverview');
- WidgetsList::add('Insights_WidgetCategory', 'Insights_MoversAndShakersWidgetTitle', 'Insights', 'getOverallMoversAndShakers');
- }
-
public function getStylesheetFiles(&$stylesheets)
{
$stylesheets[] = "plugins/Insights/stylesheets/insightVisualization.less";
diff --git a/plugins/Insights/Widgets.php b/plugins/Insights/Widgets.php
new file mode 100644
index 0000000000..3c2f75f0b7
--- /dev/null
+++ b/plugins/Insights/Widgets.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Insights;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $category = 'Insights_WidgetCategory';
+ $controller = 'Insights';
+
+ $widgetsList->add($category, 'Insights_OverviewWidgetTitle', $controller, 'getInsightsOverview');
+ $widgetsList->add($category, 'Insights_MoversAndShakersWidgetTitle', $controller, 'getOverallMoversAndShakers');
+ }
+
+}
diff --git a/plugins/Live/Live.php b/plugins/Live/Live.php
index baec9fe3cc..1ce161b3e5 100644
--- a/plugins/Live/Live.php
+++ b/plugins/Live/Live.php
@@ -8,10 +8,7 @@
*/
namespace Piwik\Plugins\Live;
-use Piwik\Menu\MenuAbstract;
-use Piwik\Menu\MenuMain;
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
-use Piwik\WidgetsList;
require_once PIWIK_INCLUDE_PATH . '/plugins/Live/VisitorLog.php';
@@ -29,7 +26,6 @@ class Live extends \Piwik\Plugin
return array(
'AssetManager.getJavaScriptFiles' => 'getJsFiles',
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
- 'WidgetsList.addWidgets' => 'addWidget',
'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys',
'ViewDataTable.getDefaultType' => 'getDefaultTypeViewDataTable'
);
@@ -48,14 +44,6 @@ class Live extends \Piwik\Plugin
$jsFiles[] = "plugins/Live/javascripts/visitorLog.js";
}
- public function addWidget()
- {
- WidgetsList::add('Live!', 'Live_VisitorsInRealTime', 'Live', 'widget');
- WidgetsList::add('Live!', 'Live_VisitorLog', 'Live', 'getVisitorLog', array('small' => 1));
- WidgetsList::add('Live!', 'Live_RealTimeVisitorCount', 'Live', 'getSimpleLastVisitCount');
- WidgetsList::add('Live!', 'Live_VisitorProfile', 'Live', 'getVisitorProfilePopup');
- }
-
public function getClientSideTranslationKeys(&$translationKeys)
{
$translationKeys[] = "Live_VisitorProfile";
diff --git a/plugins/Live/Widgets.php b/plugins/Live/Widgets.php
new file mode 100644
index 0000000000..bb07f55397
--- /dev/null
+++ b/plugins/Live/Widgets.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Live;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $category = 'Live!';
+ $controller = 'Live';
+
+ $widgetsList->add($category, 'Live_VisitorsInRealTime', $controller, 'widget');
+ $widgetsList->add($category, 'Live_VisitorLog', $controller, 'getVisitorLog', array('small' => 1));
+ $widgetsList->add($category, 'Live_RealTimeVisitorCount', $controller, 'getSimpleLastVisitCount');
+ $widgetsList->add($category, 'Live_VisitorProfile', $controller, 'getVisitorProfilePopup');
+ }
+
+}
diff --git a/plugins/Provider/Provider.php b/plugins/Provider/Provider.php
index 9cac22e303..299c5eadbc 100644
--- a/plugins/Provider/Provider.php
+++ b/plugins/Provider/Provider.php
@@ -17,7 +17,6 @@ use Piwik\IP;
use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\PrivacyManager\Config as PrivacyManagerConfig;
-use Piwik\WidgetsList;
/**
*
@@ -31,7 +30,6 @@ class Provider extends \Piwik\Plugin
{
$hooks = array(
'Tracker.newVisitorInformation' => 'enrichVisitWithProviderInfo',
- 'WidgetsList.addWidgets' => 'addWidget',
'API.getReportMetadata' => 'getReportMetadata',
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
'ViewDataTable.configure' => 'configureViewDataTable',
@@ -86,11 +84,6 @@ class Provider extends \Piwik\Plugin
Db::exec($query);
}
- public function addWidget()
- {
- WidgetsList::add('General_Visitors', 'Provider_WidgetProviders', 'Provider', 'getProvider');
- }
-
public function postLoad()
{
Piwik::addAction('Template.footerUserCountry', array('Piwik\Plugins\Provider\Provider', 'footerUserCountry'));
diff --git a/plugins/Provider/Widgets.php b/plugins/Provider/Widgets.php
new file mode 100644
index 0000000000..911ab10411
--- /dev/null
+++ b/plugins/Provider/Widgets.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\Provider;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $widgetsList->add('General_Visitors', 'Provider_WidgetProviders', 'Provider', 'getProvider');
+ }
+
+}
diff --git a/plugins/Referrers/Referrers.php b/plugins/Referrers/Referrers.php
index 30b01bb21d..cec911aa89 100644
--- a/plugins/Referrers/Referrers.php
+++ b/plugins/Referrers/Referrers.php
@@ -16,7 +16,6 @@ use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable\AllColumns;
use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Pie;
use Piwik\SettingsPiwik;
-use Piwik\WidgetsList;
/**
* @see plugins/Referrers/functions.php
@@ -33,7 +32,6 @@ class Referrers extends \Piwik\Plugin
public function getListHooksRegistered()
{
$hooks = array(
- 'WidgetsList.addWidgets' => 'addWidgets',
'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics',
'API.getReportMetadata' => 'getReportMetadata',
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
diff --git a/plugins/Referrers/Widgets.php b/plugins/Referrers/Widgets.php
new file mode 100644
index 0000000000..9fa85772cb
--- /dev/null
+++ b/plugins/Referrers/Widgets.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @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;
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $category = 'Referrers_Referrers';
+ $controller = 'Referrers';
+
+ $widgetsList->add($category, 'Referrers_WidgetKeywords', $controller, 'getKeywords');
+ $widgetsList->add($category, 'Referrers_WidgetExternalWebsites', $controller, 'getWebsites');
+ $widgetsList->add($category, 'Referrers_WidgetSocials', $controller, 'getSocials');
+ $widgetsList->add($category, 'Referrers_SearchEngines', $controller, 'getSearchEngines');
+ $widgetsList->add($category, 'Referrers_Campaigns', $controller, 'getCampaigns');
+ $widgetsList->add($category, 'General_Overview', $controller, 'getReferrerType');
+ $widgetsList->add($category, 'Referrers_WidgetGetAll', $controller, 'getAll');
+
+ if (SettingsPiwik::isSegmentationEnabled()) {
+ $widgetsList->add('SEO', 'Referrers_WidgetTopKeywordsForPages', $controller, 'getKeywordsForPage');
+ }
+ }
+
+}
diff --git a/plugins/SEO/SEO.php b/plugins/SEO/SEO.php
index 334a5ed2a6..17ce2d5eb6 100644
--- a/plugins/SEO/SEO.php
+++ b/plugins/SEO/SEO.php
@@ -9,7 +9,6 @@
namespace Piwik\Plugins\SEO;
use Piwik\Version;
-use Piwik\WidgetsList;
/**
*/
@@ -28,18 +27,4 @@ class SEO extends \Piwik\Plugin
'license_homepage' => 'http://www.gnu.org/licenses/gpl.html'
);
}
-
- /**
- * @see Piwik\Plugin::getListHooksRegistered
- */
- public function getListHooksRegistered()
- {
- $hooks = array('WidgetsList.addWidgets' => 'addWidgets');
- return $hooks;
- }
-
- function addWidgets()
- {
- WidgetsList::add('SEO', 'SEO_SeoRankings', 'SEO', 'getRank');
- }
}
diff --git a/plugins/SEO/Widgets.php b/plugins/SEO/Widgets.php
new file mode 100644
index 0000000000..9e65a0185c
--- /dev/null
+++ b/plugins/SEO/Widgets.php
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\SEO;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $widgetsList->add('SEO', 'SEO_SeoRankings', 'SEO', 'getRank');
+ }
+
+}
diff --git a/plugins/UserCountry/UserCountry.php b/plugins/UserCountry/UserCountry.php
index 2299bcbb0f..1a93390ed3 100644
--- a/plugins/UserCountry/UserCountry.php
+++ b/plugins/UserCountry/UserCountry.php
@@ -20,7 +20,6 @@ use Piwik\Plugins\UserCountry\LocationProvider\GeoIp;
use Piwik\Plugins\UserCountry\LocationProvider;
use Piwik\Plugins\UserCountry\LocationProvider\DefaultProvider;
use Piwik\Url;
-use Piwik\WidgetsList;
/**
* @see plugins/UserCountry/GeoIPAutoUpdater.php
@@ -38,7 +37,6 @@ class UserCountry extends \Piwik\Plugin
public function getListHooksRegistered()
{
$hooks = array(
- 'WidgetsList.addWidgets' => 'addWidgets',
'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics',
'API.getReportMetadata' => 'getReportMetadata',
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
@@ -164,23 +162,6 @@ class UserCountry extends \Piwik\Plugin
}
}
- public function addWidgets()
- {
- $widgetContinentLabel = Piwik::translate('UserCountry_WidgetLocation')
- . ' (' . Piwik::translate('UserCountry_Continent') . ')';
- $widgetCountryLabel = Piwik::translate('UserCountry_WidgetLocation')
- . ' (' . Piwik::translate('UserCountry_Country') . ')';
- $widgetRegionLabel = Piwik::translate('UserCountry_WidgetLocation')
- . ' (' . Piwik::translate('UserCountry_Region') . ')';
- $widgetCityLabel = Piwik::translate('UserCountry_WidgetLocation')
- . ' (' . Piwik::translate('UserCountry_City') . ')';
-
- WidgetsList::add('General_Visitors', $widgetContinentLabel, 'UserCountry', 'getContinent');
- WidgetsList::add('General_Visitors', $widgetCountryLabel, 'UserCountry', 'getCountry');
- WidgetsList::add('General_Visitors', $widgetRegionLabel, 'UserCountry', 'getRegion');
- WidgetsList::add('General_Visitors', $widgetCityLabel, 'UserCountry', 'getCity');
- }
-
public function getSegmentsMetadata(&$segments)
{
$segments[] = array(
diff --git a/plugins/UserCountry/Widgets.php b/plugins/UserCountry/Widgets.php
new file mode 100644
index 0000000000..6044e04e8c
--- /dev/null
+++ b/plugins/UserCountry/Widgets.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\UserCountry;
+
+use Piwik\WidgetsList;
+use Piwik\Piwik;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $widgetContinentLabel = Piwik::translate('UserCountry_WidgetLocation')
+ . ' (' . Piwik::translate('UserCountry_Continent') . ')';
+ $widgetCountryLabel = Piwik::translate('UserCountry_WidgetLocation')
+ . ' (' . Piwik::translate('UserCountry_Country') . ')';
+ $widgetRegionLabel = Piwik::translate('UserCountry_WidgetLocation')
+ . ' (' . Piwik::translate('UserCountry_Region') . ')';
+ $widgetCityLabel = Piwik::translate('UserCountry_WidgetLocation')
+ . ' (' . Piwik::translate('UserCountry_City') . ')';
+
+ $category = 'General_Visitors';
+ $controller = 'UserCountry';
+
+ WidgetsList::add($category, $widgetContinentLabel, $controller, 'getContinent');
+ WidgetsList::add($category, $widgetCountryLabel, $controller, 'getCountry');
+ WidgetsList::add($category, $widgetRegionLabel, $controller, 'getRegion');
+ WidgetsList::add($category, $widgetCityLabel, $controller, 'getCity');
+ }
+
+}
diff --git a/plugins/UserSettings/UserSettings.php b/plugins/UserSettings/UserSettings.php
index 13b3c4f66a..ededfcdf88 100644
--- a/plugins/UserSettings/UserSettings.php
+++ b/plugins/UserSettings/UserSettings.php
@@ -13,7 +13,6 @@ use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\Graph;
use Piwik\Plugins\CoreVisualizations\Visualizations\HtmlTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Pie;
-use Piwik\WidgetsList;
/**
*
@@ -51,7 +50,7 @@ class UserSettings extends \Piwik\Plugin
'resolution',
'log_visit.config_resolution',
'1280x1024, 800x600, etc.',
- null,),
+ null),
array('UserSettings_VisitorSettings',
'UserSettings_WidgetBrowsers',
@@ -61,7 +60,7 @@ class UserSettings extends \Piwik\Plugin
'browserCode',
'log_visit.config_browser_name',
'FF, IE, CH, SF, OP, etc.',
- null,),
+ null),
// browser version
array('UserSettings_VisitorSettings',
@@ -72,7 +71,7 @@ class UserSettings extends \Piwik\Plugin
'browserVersion',
'log_visit.config_browser_version',
'1.0, 8.0, etc.',
- null,),
+ null),
array('UserSettings_VisitorSettings',
'UserSettings_WidgetBrowserFamilies',
@@ -82,7 +81,7 @@ class UserSettings extends \Piwik\Plugin
null,
null,
null,
- null,),
+ null),
array('UserSettings_VisitorSettings',
'UserSettings_WidgetPlugins',
@@ -92,7 +91,7 @@ class UserSettings extends \Piwik\Plugin
null,
null,
null,
- null,),
+ null),
array('UserSettings_VisitorSettings',
'UserSettings_WidgetWidescreen',
@@ -102,7 +101,7 @@ class UserSettings extends \Piwik\Plugin
null,
null,
null,
- null,),
+ null),
array('UserSettings_VisitorSettings',
'UserSettings_WidgetOperatingSystems',
@@ -112,7 +111,7 @@ class UserSettings extends \Piwik\Plugin
'operatingSystemCode',
'log_visit.config_os',
'WXP, WI7, MAC, LIN, AND, IPD, etc.',
- null,),
+ null),
array('UserSettings_VisitorSettings',
'UserSettings_WidgetGlobalVisitors',
@@ -164,7 +163,6 @@ class UserSettings extends \Piwik\Plugin
public function getListHooksRegistered()
{
$hooks = array(
- 'WidgetsList.addWidgets' => 'addWidgets',
'API.getReportMetadata' => 'getReportMetadata',
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
'ViewDataTable.configure' => 'configureViewDataTable',
@@ -378,6 +376,11 @@ class UserSettings extends \Piwik\Plugin
}
}
+ public function getRawReportMetadata()
+ {
+ return $this->reportMetadata;
+ }
+
/**
* Registers reports metadata
*
@@ -386,7 +389,7 @@ class UserSettings extends \Piwik\Plugin
public function getReportMetadata(&$reports)
{
$i = 0;
- foreach ($this->reportMetadata as $report) {
+ foreach ($this->getRawReportMetadata() as $report) {
list($category, $name, $apiModule, $apiAction, $columnName) = $report;
if ($category == false) continue;
@@ -443,17 +446,4 @@ class UserSettings extends \Piwik\Plugin
}
}
- /**
- * Adds the various User Settings widgets
- */
- function addWidgets()
- {
- // in this case, Widgets have same names as API reports
- foreach ($this->reportMetadata as $report) {
- list($category, $name, $controllerName, $controllerAction) = $report;
- if ($category == false) continue;
- WidgetsList::add($category, $name, $controllerName, $controllerAction);
- }
- }
-
}
diff --git a/plugins/UserSettings/Widgets.php b/plugins/UserSettings/Widgets.php
new file mode 100644
index 0000000000..36099b5149
--- /dev/null
+++ b/plugins/UserSettings/Widgets.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\UserSettings;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $userSettings = new UserSettings();
+
+ foreach ($userSettings->getRawReportMetadata() as $report) {
+ list($category, $name, $controllerName, $controllerAction) = $report;
+
+ if ($category == false) {
+ continue;
+ }
+
+ $widgetsList->add($category, $name, $controllerName, $controllerAction);
+ }
+ }
+
+}
diff --git a/plugins/VisitFrequency/VisitFrequency.php b/plugins/VisitFrequency/VisitFrequency.php
index dbc2346d1c..4b576413e0 100644
--- a/plugins/VisitFrequency/VisitFrequency.php
+++ b/plugins/VisitFrequency/VisitFrequency.php
@@ -9,7 +9,6 @@
namespace Piwik\Plugins\VisitFrequency;
use Piwik\Piwik;
-use Piwik\WidgetsList;
/**
*
@@ -22,7 +21,6 @@ class VisitFrequency extends \Piwik\Plugin
public function getListHooksRegistered()
{
$hooks = array(
- 'WidgetsList.addWidgets' => 'addWidgets',
'API.getReportMetadata' => 'getReportMetadata',
);
return $hooks;
@@ -52,11 +50,4 @@ class VisitFrequency extends \Piwik\Plugin
'order' => 40
);
}
-
- function addWidgets()
- {
- WidgetsList::add('General_Visitors', 'VisitFrequency_WidgetOverview', 'VisitFrequency', 'getSparklines');
- WidgetsList::add('General_Visitors', 'VisitFrequency_WidgetGraphReturning', 'VisitFrequency', 'getEvolutionGraph',
- array('columns' => array('nb_visits_returning')));
- }
}
diff --git a/plugins/VisitFrequency/Widgets.php b/plugins/VisitFrequency/Widgets.php
new file mode 100644
index 0000000000..cea4a4348d
--- /dev/null
+++ b/plugins/VisitFrequency/Widgets.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\VisitFrequency;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $category = 'General_Visitors';
+ $controller = 'VisitFrequency';
+
+ $widgetsList->add($category, 'VisitFrequency_WidgetOverview', $controller, 'getSparklines');
+ $widgetsList->add($category, 'VisitFrequency_WidgetGraphReturning', $controller, 'getEvolutionGraph',
+ array('columns' => array('nb_visits_returning')));
+ }
+
+}
diff --git a/plugins/VisitTime/VisitTime.php b/plugins/VisitTime/VisitTime.php
index f675a2599f..3d9fa7703b 100644
--- a/plugins/VisitTime/VisitTime.php
+++ b/plugins/VisitTime/VisitTime.php
@@ -17,7 +17,6 @@ use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\Graph;
use Piwik\Plugins\CoreVisualizations\Visualizations\JqplotGraph\Bar;
use Piwik\Site;
-use Piwik\WidgetsList;
/**
*
@@ -30,7 +29,6 @@ class VisitTime extends \Piwik\Plugin
public function getListHooksRegistered()
{
$hooks = array(
- 'WidgetsList.addWidgets' => 'addWidgets',
'Goals.getReportsWithGoalMetrics' => 'getReportsWithGoalMetrics',
'API.getReportMetadata' => 'getReportMetadata',
'API.getSegmentDimensionMetadata' => 'getSegmentsMetadata',
@@ -76,13 +74,6 @@ class VisitTime extends \Piwik\Plugin
);
}
- function addWidgets()
- {
- WidgetsList::add('VisitsSummary_VisitsSummary', 'VisitTime_WidgetLocalTime', 'VisitTime', 'getVisitInformationPerLocalTime');
- WidgetsList::add('VisitsSummary_VisitsSummary', 'VisitTime_WidgetServerTime', 'VisitTime', 'getVisitInformationPerServerTime');
- WidgetsList::add('VisitsSummary_VisitsSummary', 'VisitTime_VisitsByDayOfWeek', 'VisitTime', 'getByDayOfWeek');
- }
-
public function getReportsWithGoalMetrics(&$dimensions)
{
$dimensions[] = array('category' => Piwik::translate('VisitTime_ColumnServerTime'),
diff --git a/plugins/VisitTime/Widgets.php b/plugins/VisitTime/Widgets.php
new file mode 100644
index 0000000000..32541ea4f4
--- /dev/null
+++ b/plugins/VisitTime/Widgets.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\VisitTime;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $category = 'VisitsSummary_VisitsSummary';
+ $controller = 'VisitTime';
+
+ $widgetsList->add($category, 'VisitTime_WidgetLocalTime', $controller, 'getVisitInformationPerLocalTime');
+ $widgetsList->add($category, 'VisitTime_WidgetServerTime', $controller, 'getVisitInformationPerServerTime');
+ $widgetsList->add($category, 'VisitTime_VisitsByDayOfWeek', $controller, 'getByDayOfWeek');
+ }
+
+}
diff --git a/plugins/VisitorInterest/VisitorInterest.php b/plugins/VisitorInterest/VisitorInterest.php
index 67fea477e4..6daafe95d3 100644
--- a/plugins/VisitorInterest/VisitorInterest.php
+++ b/plugins/VisitorInterest/VisitorInterest.php
@@ -15,7 +15,6 @@ use Piwik\Piwik;
use Piwik\Plugin\ViewDataTable;
use Piwik\Plugins\CoreVisualizations\Visualizations\Cloud;
use Piwik\Plugins\CoreVisualizations\Visualizations\Graph;
-use Piwik\WidgetsList;
/**
*
@@ -28,7 +27,6 @@ class VisitorInterest extends \Piwik\Plugin
public function getListHooksRegistered()
{
$hooks = array(
- 'WidgetsList.addWidgets' => 'addWidgets',
'API.getReportMetadata' => 'getReportMetadata',
'ViewDataTable.configure' => 'configureViewDataTable',
'ViewDataTable.getDefaultType' => 'getDefaultTypeViewDataTable'
@@ -97,14 +95,6 @@ class VisitorInterest extends \Piwik\Plugin
);
}
- public function addWidgets()
- {
- WidgetsList::add('General_Visitors', 'VisitorInterest_WidgetLengths', 'VisitorInterest', 'getNumberOfVisitsPerVisitDuration');
- WidgetsList::add('General_Visitors', 'VisitorInterest_WidgetPages', 'VisitorInterest', 'getNumberOfVisitsPerPage');
- WidgetsList::add('General_Visitors', 'VisitorInterest_visitsByVisitCount', 'VisitorInterest', 'getNumberOfVisitsByVisitCount');
- WidgetsList::add('General_Visitors', 'VisitorInterest_WidgetVisitsByDaysSinceLast', 'VisitorInterest', 'getNumberOfVisitsByDaysSinceLast');
- }
-
function postLoad()
{
Piwik::addAction('Template.headerVisitsFrequency', array('Piwik\Plugins\VisitorInterest\VisitorInterest', 'headerVisitsFrequency'));
diff --git a/plugins/VisitorInterest/Widgets.php b/plugins/VisitorInterest/Widgets.php
new file mode 100644
index 0000000000..8aa6f12627
--- /dev/null
+++ b/plugins/VisitorInterest/Widgets.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\VisitorInterest;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $category = 'General_Visitors';
+ $controller = 'VisitorInterest';
+
+ $widgetsList->add($category, 'VisitorInterest_WidgetLengths', $controller, 'getNumberOfVisitsPerVisitDuration');
+ $widgetsList->add($category, 'VisitorInterest_WidgetPages', $controller, 'getNumberOfVisitsPerPage');
+ $widgetsList->add($category, 'VisitorInterest_visitsByVisitCount', $controller, 'getNumberOfVisitsByVisitCount');
+ $widgetsList->add($category, 'VisitorInterest_WidgetVisitsByDaysSinceLast', $controller, 'getNumberOfVisitsByDaysSinceLast');
+ }
+
+}
diff --git a/plugins/VisitsSummary/VisitsSummary.php b/plugins/VisitsSummary/VisitsSummary.php
index 11f8a3827c..dfff94ac4d 100644
--- a/plugins/VisitsSummary/VisitsSummary.php
+++ b/plugins/VisitsSummary/VisitsSummary.php
@@ -9,7 +9,6 @@
namespace Piwik\Plugins\VisitsSummary;
use Piwik\Piwik;
-use Piwik\WidgetsList;
/**
* Note: This plugin does not hook on Daily and Period Archiving like other Plugins because it reports the
@@ -27,7 +26,6 @@ class VisitsSummary extends \Piwik\Plugin
{
return array(
'API.getReportMetadata' => 'getReportMetadata',
- 'WidgetsList.addWidgets' => 'addWidgets',
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
);
}
@@ -61,13 +59,6 @@ class VisitsSummary extends \Piwik\Plugin
$stylesheets[] = "plugins/VisitsSummary/stylesheets/datatable.less";
}
- function addWidgets()
- {
- WidgetsList::add('VisitsSummary_VisitsSummary', 'VisitsSummary_WidgetLastVisits', 'VisitsSummary', 'getEvolutionGraph', array('columns' => array('nb_visits')));
- WidgetsList::add('VisitsSummary_VisitsSummary', 'VisitsSummary_WidgetVisits', 'VisitsSummary', 'getSparklines');
- WidgetsList::add('VisitsSummary_VisitsSummary', 'VisitsSummary_WidgetOverviewGraph', 'VisitsSummary', 'index');
- }
-
}
diff --git a/plugins/VisitsSummary/Widgets.php b/plugins/VisitsSummary/Widgets.php
new file mode 100644
index 0000000000..b51d855106
--- /dev/null
+++ b/plugins/VisitsSummary/Widgets.php
@@ -0,0 +1,25 @@
+<?php
+/**
+ * Piwik - Open source web analytics
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\VisitsSummary;
+
+use Piwik\WidgetsList;
+
+class Widgets extends \Piwik\Plugin\Widgets
+{
+ public function configure(WidgetsList $widgetsList)
+ {
+ $category = 'VisitsSummary_VisitsSummary';
+ $controller = 'VisitsSummary';
+
+ $widgetsList->add($category, 'VisitsSummary_WidgetLastVisits', $controller, 'getEvolutionGraph', array('columns' => array('nb_visits')));
+ $widgetsList->add($category, 'VisitsSummary_WidgetVisits', $controller, 'getSparklines');
+ $widgetsList->add($category, 'VisitsSummary_WidgetOverviewGraph', $controller, 'index');
+ }
+
+}