PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 1.3.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v1.3.1
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Widget / Widget.php
matomo / app / core / Widget Last commit date
Widget.php 6 years ago WidgetConfig.php 6 years ago WidgetContainerConfig.php 6 years ago WidgetsList.php 6 years ago
Widget.php
78 lines
1 <?php
2 /**
3 * Piwik - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9 namespace Piwik\Widget;
10 use Piwik\View;
11
12 /**
13 * Defines a new widget. You can create a new widget using the console command `./console generate:widget`.
14 * The generated widget will guide you through the creation of a widget.
15 *
16 * For an example, see {@link https://github.com/piwik/piwik/blob/master/plugins/ExamplePlugin/Widgets/MyExampleWidget.php}
17 *
18 * @api since Piwik 3.0.0
19 */
20 class Widget
21 {
22 /**
23 * @param WidgetConfig $config
24 * @api
25 */
26 public static function configure(WidgetConfig $config)
27 {
28 }
29
30 /**
31 * @return string
32 */
33 public function render()
34 {
35 return '';
36 }
37
38 /**
39 * Assigns the given variables to the template and renders it.
40 *
41 * Example:
42 *
43 * public function myControllerAction () {
44 * return $this->renderTemplate('index', array(
45 * 'answerToLife' => '42'
46 * ));
47 * }
48 *
49 * This will render the 'index.twig' file within the plugin templates folder and assign the view variable
50 * `answerToLife` to `42`.
51 *
52 * @param string $template The name of the template file. If only a name is given it will automatically use
53 * the template within the plugin folder. For instance 'myTemplate' will result in
54 * '@$pluginName/myTemplate.twig'. Alternatively you can include the full path:
55 * '@anyOtherFolder/otherTemplate'. The trailing '.twig' is not needed.
56 * @param array $variables For instance array('myViewVar' => 'myValue'). In template you can use {{ myViewVar }}
57 * @return string
58 * @api
59 */
60 protected function renderTemplate($template, array $variables = array())
61 {
62 if (false === strpos($template, '@') || false === strpos($template, '/')) {
63 $aPluginName = explode('\\', get_class($this));
64 $aPluginName = $aPluginName[2];
65 $template = '@' . $aPluginName . '/' . $template;
66 }
67
68 $view = new View($template);
69
70 foreach ($variables as $key => $value) {
71 $view->$key = $value;
72 }
73
74 return $view->render();
75 }
76
77 }
78