Submit
Path:
~
/
home
/
getwphos
/
public_html
/
srlgroup
/
wp-content
/
plugins
/
duplicator
/
src
/
Utils
/
UsageStatistics
/
File Content:
StatsUtil.php
<?php namespace Duplicator\Utils\UsageStatistics; use DUP_Archive_Build_Mode; use DUP_DB; use DUP_Settings; use Duplicator\Libs\Snap\SnapUtil; use Duplicator\Libs\Snap\SnapWP; use Exception; class StatsUtil { /** * Get server type * * @return string */ public static function getServerType() { if (empty($_SERVER['SERVER_SOFTWARE'])) { return 'unknown'; } return SnapUtil::sanitizeNSCharsNewlineTrim(wp_unslash($_SERVER['SERVER_SOFTWARE'])); } /** * Get db mode * * @return string */ public static function getDbBuildMode() { switch (DUP_DB::getBuildMode()) { case DUP_DB::BUILD_MODE_MYSQLDUMP: return 'mysqldump'; case DUP_DB::BUILD_MODE_PHP_SINGLE_THREAD: return 'php-single'; default: throw new Exception('Unknown db build mode'); } } /** * Get archive mode * * @return string */ public static function getArchiveBuildMode() { if (DUP_Settings::Get('archive_build_mode') == DUP_Archive_Build_Mode::ZipArchive) { return 'zip-single'; } else { return 'dup'; } } /** * Return license types * * @param ?int $type License type, if null will use current license type * * @return string */ public static function getLicenseType($type = null) { return 'unlicensed'; } /** * Return license status * * @return string */ public static function getLicenseStatus() { return 'invalid'; } /** * Get install type * * @param int $type Install type * * @return string */ public static function getInstallType($type) { switch ($type) { case -1: return 'single'; case 4: return 'single_on_subdomain'; case 5: return 'single_on_subfolder'; case 8: return 'rbackup_single'; default: return 'not_set'; } } /** * Get stats components * * @param string[] $components Components * * @return string */ public static function getStatsComponents($components) { $result = array(); foreach ($components as $component) { switch ($component) { case 'package_component_db': $result[] = 'db'; break; case 'package_component_core': $result[] = 'core'; break; case 'package_component_plugins': $result[] = 'plugins'; break; case 'package_component_plugins_active': $result[] = 'plugins_active'; break; case 'package_component_themes': $result[] = 'themes'; break; case 'package_component_themes_active': $result[] = 'themes_active'; break; case 'package_component_uploads': $result[] = 'uploads'; break; case 'package_component_other': $result[] = 'other'; break; } } return implode(',', $result); } /** * Get am family plugins * * @return string */ public static function getAmFamily() { $result = array(); $result[] = 'dup-pro'; if (SnapWP::isPluginInstalled('duplicator/duplicator.php')) { $result[] = 'dup-lite'; } return implode(',', $result); } /** * Get logic modes * * @param string[] $modes Logic modes * * @return string */ public static function getLogicModes($modes) { $result = array(); foreach ($modes as $mode) { switch ($mode) { case 'CLASSIC': $result[] = 'CLASSIC'; break; case 'OVERWRITE': $result[] = 'OVERWRITE'; break; case 'RESTORE_BACKUP': $result[] = 'RESTORE'; break; } } return implode(',', $result); } /** * Get template * * @param string $template Template * * @return string */ public static function getTemplate($template) { switch ($template) { case 'base': return 'CLASSIC_BASE'; case 'import-base': return 'IMPORT_BASE'; case 'import-advanced': return 'IMPORT_ADV'; case 'recovery': return 'RECOVERY'; case 'default': default: return 'CLASSIC_ADV'; } } /** * Sanitize fields with rule string * [nullable][type][|max:number] * - ?string|max:25 * - int * * @param array<string, mixed> $data Data * @param array<string, string> $rules Rules * * @return array<string, mixed> */ public static function sanitizeFields($data, $rules) { foreach ($data as $key => $val) { if (!isset($rules[$key])) { continue; } $matches = null; if (preg_match('/(\??)(int|float|bool|string)(?:\|max:(\d+))?/', $rules[$key], $matches) !== 1) { throw new Exception("Invalid sanitize rule: {$rules[$key]}"); } $nullable = $matches[1] === '?'; $type = $matches[2]; $max = isset($matches[3]) ? (int) $matches[3] : PHP_INT_MAX; if ($nullable && $val === null) { continue; } switch ($type) { case 'int': $data[$key] = (int) $val; break; case 'float': $data[$key] = (float) $val; break; case 'bool': $data[$key] = (bool) $val; break; case 'string': $data[$key] = substr((string) $val, 0, $max); break; default: throw new Exception("Unknown sanitize rule: {$rules[$key]}"); } } return $data; } }
Edit
Rename
Chmod
Delete
FILE
FOLDER
Name
Size
Permission
Action
CommStats.php
4773 bytes
0644
InstallerData.php
2739 bytes
0644
PluginData.php
11660 bytes
0644
StatsBootstrap.php
3818 bytes
0644
StatsUtil.php
6650 bytes
0644
N4ST4R_ID | Naxtarrr