PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.0.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.0.1
5.13.0 5.12.1 5.12.0 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 2 years ago WidgetConfig.php 2 years ago WidgetContainerConfig.php 2 years ago WidgetsList.php 2 years ago
Widget.php
73 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 *
9 */
10 namespace Piwik\Widget;
11
12 use Piwik\View;
13 /**
14 * Defines a new widget. You can create a new widget using the console command `./console generate:widget`.
15 * The generated widget will guide you through the creation of a widget.
16 *
17 * For an example, see {@link https://github.com/piwik/piwik/blob/master/plugins/ExamplePlugin/Widgets/MyExampleWidget.php}
18 *
19 * @api since Piwik 3.0.0
20 */
21 class Widget
22 {
23 /**
24 * @param WidgetConfig $config
25 * @api
26 */
27 public static function configure(\Piwik\Widget\WidgetConfig $config)
28 {
29 }
30 /**
31 * @return string
32 */
33 public function render()
34 {
35 return '';
36 }
37 /**
38 * Assigns the given variables to the template and renders it.
39 *
40 * Example:
41 *
42 * public function myControllerAction () {
43 * return $this->renderTemplate('index', array(
44 * 'answerToLife' => '42'
45 * ));
46 * }
47 *
48 * This will render the 'index.twig' file within the plugin templates folder and assign the view variable
49 * `answerToLife` to `42`.
50 *
51 * @param string $template The name of the template file. If only a name is given it will automatically use
52 * the template within the plugin folder. For instance 'myTemplate' will result in
53 * '@$pluginName/myTemplate.twig'. Alternatively you can include the full path:
54 * '@anyOtherFolder/otherTemplate'. The trailing '.twig' is not needed.
55 * @param array $variables For instance array('myViewVar' => 'myValue'). In template you can use {{ myViewVar }}
56 * @return string
57 * @api
58 */
59 protected function renderTemplate($template, array $variables = array())
60 {
61 if (false === strpos($template, '@') || false === strpos($template, '/')) {
62 $aPluginName = explode('\\', get_class($this));
63 $aPluginName = $aPluginName[2];
64 $template = '@' . $aPluginName . '/' . $template;
65 }
66 $view = new View($template);
67 foreach ($variables as $key => $value) {
68 $view->{$key} = $value;
69 }
70 return $view->render();
71 }
72 }
73