blob: a3d503fb3793c4aa4d1a9cd65db557bfc6048259 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
<?php
/**
* Piwik - 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\ExamplePlugin\Widgets;
use Piwik\Widget\Widget;
use Piwik\Widget\WidgetConfig;
use Piwik\View;
/**
* This class allows you to add your own widget to the Piwik platform. In case you want to remove widgets from another
* plugin please have a look at the "configureWidgetsList()" method.
* To configure a widget simply call the corresponding methods as described in the API-Reference:
* http://developer.piwik.org/api-reference/Piwik/Plugin\Widget
*/
class MyExampleWidget extends Widget
{
public static function configure(WidgetConfig $config)
{
/**
* Set the category the widget belongs to. You can reuse any existing widget category or define
* your own category.
*/
$config->setCategoryId('About Matomo');
/**
* Set the subcategory the widget belongs to. If a subcategory is set, the widget will be shown in the UI.
*/
// $config->setSubcategoryId('General_Overview');
/**
* Set the name of the widget belongs to.
*/
$config->setName('Example Widget Name');
/**
* Set the order of the widget. The lower the number, the earlier the widget will be listed within a category.
*/
$config->setOrder(99);
/**
* Optionally set URL parameters that will be used when this widget is requested.
* $config->setParameters(array('myparam' => 'myvalue'));
*/
/**
* Define whether a widget is enabled or not. For instance some widgets might not be available to every user or
* might depend on a setting (such as Ecommerce) of a site. In such a case you can perform any checks and then
* set `true` or `false`. If your widget is only available to users having super user access you can do the
* following:
*
* $config->setIsEnabled(\Piwik\Piwik::hasUserSuperUserAccess());
* or
* if (!\Piwik\Piwik::hasUserSuperUserAccess())
* $config->disable();
*/
}
/**
* This method renders the widget. It's on you how to generate the content of the widget.
* As long as you return a string everything is fine. You can use for instance a "Piwik\View" to render a
* twig template. In such a case don't forget to create a twig template (eg. myViewTemplate.twig) in the
* "templates" directory of your plugin.
*
* @return string
*/
public function render()
{
// or: return $this->renderTemplate('myViewTemplate', array(...view variables...));
return '<div class="widgetBody">My Widget Text</div>';
}
}
|