Linux dpw.dpwebtech.com 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_64
Apache
: 192.232.243.69 | : 3.142.54.83
54 Domain
7.3.33
dpclient
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
home /
dpclient /
public_html /
analytics /
core /
Widget /
[ HOME SHELL ]
Name
Size
Permission
Action
Widget.php
2.3
KB
-rw-r--r--
WidgetConfig.php
10.38
KB
-rw-r--r--
WidgetContainerConfig.php
3.56
KB
-rw-r--r--
WidgetsList.php
7.71
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : WidgetsList.php
<?php /** * Matomo - free/libre analytics platform * * @link https://matomo.org * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later * */ namespace Piwik\Widget; use Piwik\Container\StaticContainer; use Piwik\Development; use Piwik\Piwik; use Piwik\Report\ReportWidgetFactory; /** * Manages the global list of reports that can be displayed as dashboard widgets. * * Widgets are added through the {@hook WidgetsList.addWidgets} and filtered through the {@hook Widgets.filterWidgets} * event. Observers for this event should call the {@link addWidget()} method to add widgets or use any of the other * methods to remove widgets. * * @api since Piwik 3.0.0 */ class WidgetsList { /** * List of widgets * * @var WidgetConfig[] */ private $widgets = array(); /** * @var WidgetContainerConfig[] */ private $container; /** * @var array */ private $containerWidgets; /** * Adds a new widget to the widget config. Please make sure the widget is enabled before adding a widget as * no such checks will be performed. * * @param WidgetConfig $widget */ public function addWidgetConfig(WidgetConfig $widget) { if ($widget instanceof WidgetContainerConfig) { $this->addContainer($widget); } elseif (Development::isEnabled()) { $this->checkIsValidWidget($widget); } $this->widgets[] = $widget; } /** * Add multiple widget configs at once. See {@link addWidgetConfig()}. * * @param WidgetConfig[] $widgets */ public function addWidgetConfigs($widgets) { foreach ($widgets as $widget) { $this->addWidgetConfig($widget); } } private function addContainer(WidgetContainerConfig $containerWidget) { $widgetId = $containerWidget->getId(); $this->container[$widgetId] = $containerWidget; // widgets were added to this container, but the container did not exist yet. if (isset($this->containerWidgets[$widgetId])) { foreach ($this->containerWidgets[$widgetId] as $widget) { $containerWidget->addWidgetConfig($widget); } unset($this->containerWidgets[$widgetId]); } } /** * Get all added widget configs. * * @return WidgetConfig[] */ public function getWidgetConfigs() { return $this->widgets; } private function checkIsValidWidget(WidgetConfig $widget) { if (!$widget->getModule()) { Development::error('No module is defined for added widget having name "' . $widget->getName()); } if (!$widget->getAction()) { Development::error('No action is defined for added widget having name "' . $widget->getName()); } } /** * Add a widget to a widget container. It doesn't matter whether the container was added to this list already * or whether the container is added later. As long as a container having the same containerId is added at * some point the widget will be added to that container. If no container having this id is added the widget * will not be recognized. * * @param string $containerId eg 'Products' or 'Contents'. See {@link WidgetContainerConfig::setId} * @param WidgetConfig $widget */ public function addToContainerWidget($containerId, WidgetConfig $widget) { if (isset($this->container[$containerId])) { $this->container[$containerId]->addWidgetConfig($widget); } else { if (!isset($this->containerWidgets[$containerId])) { $this->containerWidgets[$containerId] = array(); } $this->containerWidgets[$containerId][] = $widget; } } /** * Removes one or more widgets from the widget list. * * @param string $widgetCategoryId The widget category id. Can be a translation token eg 'General_Visits' * see {@link WidgetConfig::setCategoryId()}. * @param string|false $widgetName The name of the widget to remove eg 'VisitTime_ByServerTimeWidgetName'. * If not supplied, all widgets within that category will be removed. */ public function remove($widgetCategoryId, $widgetName = false) { foreach ($this->widgets as $index => $widget) { if ($widget->getCategoryId() === $widgetCategoryId) { if (!$widgetName || $widget->getName() === $widgetName) { unset($this->widgets[$index]); } } } } /** * Returns `true` if a widget exists in the widget list, `false` if otherwise. * * @param string $module The controller name of the widget. * @param string $action The controller action of the widget. * @return bool */ public function isDefined($module, $action) { foreach ($this->widgets as $widget) { if ($widget->getModule() === $module && $widget->getAction() === $action) { return true; } } return false; } /** * Get all widgets defined in the Piwik platform. * @ignore * @return static */ public static function get() { $list = new static; $widgets = StaticContainer::get('Piwik\Plugin\WidgetsProvider'); $widgetContainerConfigs = $widgets->getWidgetContainerConfigs(); foreach ($widgetContainerConfigs as $config) { if ($config->isEnabled()) { $list->addWidgetConfig($config); } } $widgetConfigs = $widgets->getWidgetConfigs(); foreach ($widgetConfigs as $widget) { if ($widget->isEnabled()) { $list->addWidgetConfig($widget); } } $reports = StaticContainer::get('Piwik\Plugin\ReportsProvider'); $reports = $reports->getAllReports(); foreach ($reports as $report) { if ($report->isEnabled()) { $factory = new ReportWidgetFactory($report); $report->configureWidgets($list, $factory); } } /** * Triggered to filter widgets. * * **Example** * * public function removeWidgetConfigs(Piwik\Widget\WidgetsList $list) * { * $list->remove($category='General_Visits'); // remove all widgets having this category * } * * @param WidgetsList $list An instance of the WidgetsList. You can change the list of widgets this way. */ Piwik::postEvent('Widget.filterWidgets', array($list)); return $list; } /** * CAUTION! If you ever change this method, existing updates will fail as they currently use that method! * If you change the output the uniqueId for existing widgets would not be found anymore * * Returns the unique id of an widget with the given parameters * * @param $controllerName * @param $controllerAction * @param array $customParameters * @return string */ public static function getWidgetUniqueId($controllerName, $controllerAction, $customParameters = array()) { $widgetUniqueId = 'widget' . $controllerName . $controllerAction; foreach ($customParameters as $name => $value) { if (is_array($value)) { // use 'Array' for backward compatibility; // could we switch to using $value[0]? $value = 'Array'; } $value = urlencode($value); $value = str_replace('%', '', $value); $widgetUniqueId .= $name . $value; } return $widgetUniqueId; } }
Close