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.21.105.222
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 /
[ HOME SHELL ]
Name
Size
Permission
Action
API
[ DIR ]
drwxr-xr-x
Access
[ DIR ]
drwxr-xr-x
Application
[ DIR ]
drwxr-xr-x
Archive
[ DIR ]
drwxr-xr-x
ArchiveProcessor
[ DIR ]
drwxr-xr-x
Archiver
[ DIR ]
drwxr-xr-x
AssetManager
[ DIR ]
drwxr-xr-x
Auth
[ DIR ]
drwxr-xr-x
Category
[ DIR ]
drwxr-xr-x
Changes
[ DIR ]
drwxr-xr-x
CliMulti
[ DIR ]
drwxr-xr-x
Columns
[ DIR ]
drwxr-xr-x
Concurrency
[ DIR ]
drwxr-xr-x
Config
[ DIR ]
drwxr-xr-x
Container
[ DIR ]
drwxr-xr-x
CronArchive
[ DIR ]
drwxr-xr-x
DataAccess
[ DIR ]
drwxr-xr-x
DataFiles
[ DIR ]
drwxr-xr-x
DataTable
[ DIR ]
drwxr-xr-x
Db
[ DIR ]
drwxr-xr-x
DeviceDetector
[ DIR ]
drwxr-xr-x
Email
[ DIR ]
drwxr-xr-x
Exception
[ DIR ]
drwxr-xr-x
Http
[ DIR ]
drwxr-xr-x
Intl
[ DIR ]
drwxr-xr-x
Mail
[ DIR ]
drwxr-xr-x
Measurable
[ DIR ]
drwxr-xr-x
Menu
[ DIR ]
drwxr-xr-x
Metrics
[ DIR ]
drwxr-xr-x
Notification
[ DIR ]
drwxr-xr-x
Period
[ DIR ]
drwxr-xr-x
Plugin
[ DIR ]
drwxr-xr-x
ProfessionalServices
[ DIR ]
drwxr-xr-x
Report
[ DIR ]
drwxr-xr-x
ReportRenderer
[ DIR ]
drwxr-xr-x
Scheduler
[ DIR ]
drwxr-xr-x
Segment
[ DIR ]
drwxr-xr-x
Session
[ DIR ]
drwxr-xr-x
Settings
[ DIR ]
drwxr-xr-x
Tracker
[ DIR ]
drwxr-xr-x
Translation
[ DIR ]
drwxr-xr-x
UpdateCheck
[ DIR ]
drwxr-xr-x
Updater
[ DIR ]
drwxr-xr-x
Updates
[ DIR ]
drwxr-xr-x
Validators
[ DIR ]
drwxr-xr-x
View
[ DIR ]
drwxr-xr-x
ViewDataTable
[ DIR ]
drwxr-xr-x
Visualization
[ DIR ]
drwxr-xr-x
Widget
[ DIR ]
drwxr-xr-x
.htaccess
545
B
-rw-r--r--
Access.php
24.89
KB
-rw-r--r--
Archive.php
35.4
KB
-rw-r--r--
ArchiveProcessor.php
26.97
KB
-rw-r--r--
AssetManager.php
15.48
KB
-rw-r--r--
Auth.php
4.03
KB
-rw-r--r--
AuthResult.php
2.13
KB
-rw-r--r--
BaseFactory.php
1.77
KB
-rw-r--r--
Cache.php
3.51
KB
-rw-r--r--
CacheId.php
2.53
KB
-rw-r--r--
CliMulti.php
14.98
KB
-rw-r--r--
Common.php
39.79
KB
-rw-r--r--
Config.php
14.69
KB
-rw-r--r--
Console.php
10.09
KB
-rw-r--r--
Context.php
3.42
KB
-rw-r--r--
Cookie.php
15.12
KB
-rw-r--r--
CronArchive.php
50.69
KB
-rw-r--r--
DataArray.php
17.97
KB
-rw-r--r--
DataTable.php
69.61
KB
-rw-r--r--
Date.php
35.04
KB
-rw-r--r--
Db.php
29.43
KB
-rw-r--r--
DbHelper.php
10.84
KB
-rw-r--r--
Development.php
6.67
KB
-rw-r--r--
ErrorHandler.php
7.55
KB
-rw-r--r--
EventDispatcher.php
6.79
KB
-rw-r--r--
ExceptionHandler.php
7.06
KB
-rw-r--r--
FileIntegrity.php
15.8
KB
-rw-r--r--
Filechecks.php
8.79
KB
-rw-r--r--
Filesystem.php
18.74
KB
-rw-r--r--
FrontController.php
29.31
KB
-rw-r--r--
Http.php
44.42
KB
-rw-r--r--
IP.php
5.08
KB
-rw-r--r--
Log.php
8.14
KB
-rw-r--r--
LogDeleter.php
3.81
KB
-rw-r--r--
Mail.php
9.32
KB
-rw-r--r--
Metrics.php
20.76
KB
-rw-r--r--
NoAccessException.php
398
B
-rw-r--r--
Nonce.php
8.25
KB
-rw-r--r--
Notification.php
5.72
KB
-rw-r--r--
NumberFormatter.php
10
KB
-rw-r--r--
Option.php
8.25
KB
-rw-r--r--
Period.php
13.52
KB
-rw-r--r--
Piwik.php
27.95
KB
-rw-r--r--
Plugin.php
21.52
KB
-rw-r--r--
Profiler.php
13.32
KB
-rw-r--r--
ProxyHeaders.php
2.16
KB
-rw-r--r--
ProxyHttp.php
11.94
KB
-rw-r--r--
QuickForm2.php
3.94
KB
-rw-r--r--
RankingQuery.php
13.06
KB
-rw-r--r--
ReportRenderer.php
8.59
KB
-rw-r--r--
Segment.php
24.24
KB
-rw-r--r--
Sequence.php
3.11
KB
-rw-r--r--
Session.php
8.04
KB
-rw-r--r--
SettingsPiwik.php
18.07
KB
-rw-r--r--
SettingsServer.php
7.58
KB
-rw-r--r--
Singleton.php
1.46
KB
-rw-r--r--
Site.php
17.86
KB
-rw-r--r--
SiteContentDetector.php
14.22
KB
-rw-r--r--
SupportedBrowser.php
2.25
KB
-rw-r--r--
TCPDF.php
1.87
KB
-rw-r--r--
Theme.php
4.93
KB
-rw-r--r--
Timer.php
2.57
KB
-rw-r--r--
Tracker.php
11.79
KB
-rw-r--r--
Twig.php
19.74
KB
-rw-r--r--
Unzip.php
1.28
KB
-rw-r--r--
UpdateCheck.php
3.34
KB
-rw-r--r--
Updater.php
25.08
KB
-rw-r--r--
UpdaterErrorException.php
304
B
-rw-r--r--
Updates.php
3.86
KB
-rw-r--r--
Url.php
25.67
KB
-rw-r--r--
UrlHelper.php
11.24
KB
-rw-r--r--
Version.php
806
B
-rw-r--r--
View.php
18.2
KB
-rw-r--r--
bootstrap.php
2.03
KB
-rw-r--r--
dispatch.php
928
B
-rw-r--r--
testMinimumPhpVersion.php
10.82
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : EventDispatcher.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; use Piwik\Container\StaticContainer; /** * This class allows code to post events from anywhere in Piwik and for * plugins to associate callbacks to be executed when events are posted. */ class EventDispatcher { /** * @return EventDispatcher */ public static function getInstance() { return StaticContainer::get('Piwik\EventDispatcher'); } // implementation details for postEvent const EVENT_CALLBACK_GROUP_FIRST = 0; const EVENT_CALLBACK_GROUP_SECOND = 1; const EVENT_CALLBACK_GROUP_THIRD = 2; /** * Array of observers (callbacks attached to events) that are not methods * of plugin classes. * * @var array */ private $extraObservers = array(); /** * Array storing information for all pending events. Each item in the array * will be an array w/ two elements: * * array( * 'Event.Name', // the event name * array('event', 'parameters') // the parameters to pass to event observers * ) * * @var array */ private $pendingEvents = array(); /** * Plugin\Manager instance used to get list of loaded plugins. * * @var \Piwik\Plugin\Manager */ private $pluginManager; private $pluginHooks = array(); public static $_SKIP_EVENTS_IN_TESTS = false; /** * Constructor. */ public function __construct(Plugin\Manager $pluginManager, array $observers = array()) { $this->pluginManager = $pluginManager; foreach ($observers as $observerInfo) { list($eventName, $callback) = $observerInfo; $this->extraObservers[$eventName][] = $callback; } } /** * Triggers an event, executing all callbacks associated with it. * * @param string $eventName The name of the event, ie, API.getReportMetadata. * @param array $params The parameters to pass to each callback when executing. * @param bool $pending Whether this event should be posted again for plugins * loaded after the event is fired. * @param array|null $plugins The plugins to post events to. If null, the event * is posted to all plugins. The elements of this array * can be either the Plugin objects themselves * or their string names. */ public function postEvent($eventName, $params, $pending = false, $plugins = null) { if (self::$_SKIP_EVENTS_IN_TESTS) { return; } if ($pending) { $this->pendingEvents[] = array($eventName, $params); } $manager = $this->pluginManager; if (empty($plugins)) { $plugins = $manager->getPluginsLoadedAndActivated(); } $callbacks = array(); // collect all callbacks to execute foreach ($plugins as $pluginName) { if (!is_string($pluginName)) { $pluginName = $pluginName->getPluginName(); } if (!isset($this->pluginHooks[$pluginName])) { $plugin = $manager->getLoadedPlugin($pluginName); $this->pluginHooks[$pluginName] = $plugin->registerEvents(); } $hooks = $this->pluginHooks[$pluginName]; if (isset($hooks[$eventName])) { list($pluginFunction, $callbackGroup) = $this->getCallbackFunctionAndGroupNumber($hooks[$eventName]); if (is_string($pluginFunction)) { $plugin = $manager->getLoadedPlugin($pluginName); $callbacks[$callbackGroup][] = array($plugin, $pluginFunction) ; } else { $callbacks[$callbackGroup][] = $pluginFunction; } } } if (isset($this->extraObservers[$eventName])) { foreach ($this->extraObservers[$eventName] as $callbackInfo) { list($callback, $callbackGroup) = $this->getCallbackFunctionAndGroupNumber($callbackInfo); $callbacks[$callbackGroup][] = $callback; } } // sort callbacks by their importance ksort($callbacks); // execute callbacks in order foreach ($callbacks as $callbackGroup) { foreach ($callbackGroup as $callback) { call_user_func_array($callback, $params); } } } /** * Associates a callback that is not a plugin class method with an event * name. * * @param string $eventName * @param array|callable $callback This can be a normal PHP callback or an array * that looks like this: * array( * 'function' => $callback, * 'before' => true * ) * or this: * array( * 'function' => $callback, * 'after' => true * ) * If 'before' is set, the callback will be executed * before normal & 'after' ones. If 'after' then it * will be executed after normal ones. */ public function addObserver($eventName, $callback) { $this->extraObservers[$eventName][] = $callback; } /** * Re-posts all pending events to the given plugin. * * @param Plugin $plugin */ public function postPendingEventsTo($plugin) { foreach ($this->pendingEvents as $eventInfo) { [$eventName, $eventParams] = $eventInfo; $this->postEvent($eventName, $eventParams, $pending = false, array($plugin)); } } /** * @internal For testing purpose only */ public function clearCache() { $this->pluginHooks = []; } private function getCallbackFunctionAndGroupNumber($hookInfo) { if (is_array($hookInfo) && !empty($hookInfo['function']) ) { $pluginFunction = $hookInfo['function']; if (!empty($hookInfo['before'])) { $callbackGroup = self::EVENT_CALLBACK_GROUP_FIRST; } elseif (!empty($hookInfo['after'])) { $callbackGroup = self::EVENT_CALLBACK_GROUP_THIRD; } else { $callbackGroup = self::EVENT_CALLBACK_GROUP_SECOND; } } else { $pluginFunction = $hookInfo; $callbackGroup = self::EVENT_CALLBACK_GROUP_SECOND; } return array($pluginFunction, $callbackGroup); } }
Close