diff --git a/common/framework/filters/FileContentFilter.php b/common/framework/filters/FileContentFilter.php index eaf3da886..272fe3477 100644 --- a/common/framework/filters/FileContentFilter.php +++ b/common/framework/filters/FileContentFilter.php @@ -19,7 +19,7 @@ class FileContentFilter * @param string $filename Filename hint for type detection * @return bool */ - public static function check($file, $filename = null) + public static function check(?string $file = null, ?string $filename = null): bool { // Return error if the file does not exist. if (!$file || !file_exists($file)) diff --git a/common/framework/filters/FilenameFilter.php b/common/framework/filters/FilenameFilter.php index ec185ce81..a07b997b0 100644 --- a/common/framework/filters/FilenameFilter.php +++ b/common/framework/filters/FilenameFilter.php @@ -13,7 +13,7 @@ class FilenameFilter * @param string $filename * @return string */ - public static function clean($filename) + public static function clean(string $filename): string { // Replace dangerous characters with safe alternatives, maintaining meaning as much as possible. $illegal = array('\\', '/', '<', '>', '{', '}', ':', ';', '|', '"', '~', '`', '$', '%', '^', '*', '?'); @@ -57,7 +57,7 @@ class FilenameFilter * @param string $path * @return string */ - public static function cleanPath($path) + public static function cleanPath(string $path): string { // Convert relative paths to absolute paths. if (!preg_match('@^(?:/|[a-z]:[\\\\/]|\\\\|https?:)@i', $path)) @@ -97,7 +97,7 @@ class FilenameFilter * @param bool $include_multimedia (optional) * @return bool */ - public static function isDirectDownload($filename, $include_multimedia = true) + public static function isDirectDownload(string $filename, bool $include_multimedia = true): bool { $images = 'gif|jpe?g|jfif|png|webp'; $audios = 'mp3|wav|ogg|flac|aac'; diff --git a/common/framework/filters/HTMLFilter.php b/common/framework/filters/HTMLFilter.php index f9519ba55..8738c28fc 100644 --- a/common/framework/filters/HTMLFilter.php +++ b/common/framework/filters/HTMLFilter.php @@ -44,7 +44,7 @@ class HTMLFilter * @param callable $callback * @return void */ - public static function prependPreFilter($callback) + public static function prependPreFilter(callable $callback): void { array_unshift(self::$_preproc, $callback); } @@ -55,7 +55,7 @@ class HTMLFilter * @param callable $callback * @return void */ - public static function appendPreFilter($callback) + public static function appendPreFilter(callable $callback): void { self::$_preproc[] = $callback; } @@ -66,7 +66,7 @@ class HTMLFilter * @param callable $callback * @return void */ - public static function prependPostFilter($callback) + public static function prependPostFilter(callable $callback): void { array_unshift(self::$_postproc, $callback); } @@ -77,7 +77,7 @@ class HTMLFilter * @param callable $callback * @return void */ - public static function appendPostFilter($callback) + public static function appendPostFilter(callable $callback): void { self::$_postproc[] = $callback; } @@ -91,7 +91,7 @@ class HTMLFilter * @param bool $allow_widgets (optional) * @return string */ - public static function clean($input, $allow_classes = false, $allow_editor_components = true, $allow_widgets = false) + public static function clean(string $input, $allow_classes = false, bool $allow_editor_components = true, bool $allow_widgets = false): string { foreach (self::$_preproc as $callback) { @@ -166,9 +166,9 @@ class HTMLFilter * Get an instance of HTMLPurifier. * * @param array|null $allowed_classes (optional) - * @return object + * @return \HTMLPurifier */ - public static function getHTMLPurifier($allowed_classes = null) + public static function getHTMLPurifier(?array $allowed_classes = null): \HTMLPurifier { // Keep separate instances for different sets of allowed classes. if ($allowed_classes !== null) @@ -239,10 +239,10 @@ class HTMLFilter * These changes are based on https://github.com/xemlock/htmlpurifier-html5 * but modified to support even more tags and attributes. * - * @param object $config + * @param \HTMLPurifier_Config $config * @return void */ - protected static function _supportHTML5($config) + protected static function _supportHTML5(\HTMLPurifier_Config $config): void { // Get the HTML definition. $def = $config->getHTMLDefinition(true); @@ -330,10 +330,10 @@ class HTMLFilter * These changes are based on: * - https://github.com/mattiaswelander/htmlpurifier * - * @param object $config + * @param \HTMLPurifier_Config $config * @return void */ - protected static function _supportCSS3($config) + protected static function _supportCSS3(\HTMLPurifier_Config $config): void { // Initialize $info. $info = array(); @@ -484,7 +484,7 @@ class HTMLFilter * @param bool $allow_widgets (optional) * @return string */ - protected static function _preprocess($content, $allow_editor_components = true, $allow_widgets = false) + protected static function _preprocess(string $content, bool $allow_editor_components = true, bool $allow_widgets = false): string { // Encode widget and editor component properties so that they are not removed by HTMLPurifier. if ($allow_editor_components || $allow_widgets) @@ -502,7 +502,7 @@ class HTMLFilter * @param bool $allow_widgets (optional) * @return string */ - protected static function _postprocess($content, $allow_editor_components = true, $allow_widgets = false) + protected static function _postprocess(string $content, bool $allow_editor_components = true, bool $allow_widgets = false): string { // Define acts to allow and deny. $allow_acts = array('procFileDownload'); @@ -569,7 +569,7 @@ class HTMLFilter * @param bool $allow_widgets (optional) * @return string */ - protected static function _encodeWidgetsAndEditorComponents($content, $allow_editor_components = true, $allow_widgets = false) + protected static function _encodeWidgetsAndEditorComponents(string $content, bool $allow_editor_components = true, bool $allow_widgets = false): string { $regexp = array(); if ($allow_editor_components) @@ -624,7 +624,7 @@ class HTMLFilter * @param bool $allow_widgets (optional) * @return string */ - protected static function _decodeWidgetsAndEditorComponents($content, $allow_editor_components = true, $allow_widgets = false) + protected static function _decodeWidgetsAndEditorComponents(string $content, bool $allow_editor_components = true, bool $allow_widgets = false): string { if (!$allow_editor_components) { diff --git a/common/framework/filters/IpFilter.php b/common/framework/filters/IpFilter.php index ad306503d..07bfd9028 100644 --- a/common/framework/filters/IpFilter.php +++ b/common/framework/filters/IpFilter.php @@ -14,7 +14,7 @@ class IpFilter * @param string $range * @return bool */ - public static function inRange($ip, $range) + public static function inRange(string $ip, string $range): bool { // Determine the type of the IP address. if (preg_match('/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/', $ip, $matches)) @@ -73,7 +73,7 @@ class IpFilter * @param array $ranges * @return bool */ - public static function inRanges($ip, array $ranges) + public static function inRanges(string $ip, array $ranges): bool { foreach ($ranges as $range) { @@ -91,7 +91,7 @@ class IpFilter * @param string $range * @return bool */ - public static function validateRange($range) + public static function validateRange(string $range): bool { $regexes = array( '/^\d+\.\d+\.\d+\.\d+(\/\d+)?$/', @@ -116,7 +116,7 @@ class IpFilter * @param array $ranges * @return bool */ - public static function validateRanges(array $ranges) + public static function validateRanges(array $ranges): bool { foreach ($ranges as $range) { @@ -160,7 +160,7 @@ class IpFilter * @param string $range * @return bool */ - protected static function _checkIPv4CIDR($ip, $range) + protected static function _checkIPv4CIDR(string $ip, string $range): bool { if (strpos($range, '/') === false) $range .= '/32'; list($range, $mask) = explode('/', $range); @@ -178,7 +178,7 @@ class IpFilter * @param string $range * @return bool */ - protected static function _checkIPv6CIDR($ip, $range) + protected static function _checkIPv6CIDR(string $ip, string $range): bool { if (function_exists('inet_pton')) { @@ -203,7 +203,7 @@ class IpFilter * @param string $range * @return bool */ - protected static function _checkIPv4Wildcard($ip, $range) + protected static function _checkIPv4Wildcard(string $ip, string $range): bool { $count = count(explode('.', $range)); if ($count < 4) @@ -223,7 +223,7 @@ class IpFilter * @param string $range * @return bool */ - protected static function _checkIPv4Hyphen($ip, $range) + protected static function _checkIPv4Hyphen(string $ip, string $range): bool { $ip = sprintf('%u', ip2long($ip)); list($range_start, $range_end) = explode('-', $range); diff --git a/common/framework/filters/MediaFilter.php b/common/framework/filters/MediaFilter.php index dff310e17..c78df4e02 100644 --- a/common/framework/filters/MediaFilter.php +++ b/common/framework/filters/MediaFilter.php @@ -18,10 +18,10 @@ class MediaFilter * Add a prefix to the iframe whitelist. * * @param string $prefix - * @parsm bool $permanently + * @param bool $permanently * @return void */ - public static function addPrefix($prefix, $permanently = false) + public static function addPrefix(string $prefix, bool $permanently = false): void { if (!self::$_whitelist) { @@ -48,8 +48,11 @@ class MediaFilter * Add a prefix to the object whitelist. * * @deprecated + * @param string $prefix + * @param bool $permanently + * @return void */ - public static function addIframePrefix($prefix, $permanently = false) + public static function addIframePrefix(string $prefix, bool $permanently = false): void { self::addPrefix($prefix, $permanently); } @@ -58,8 +61,9 @@ class MediaFilter * Add a prefix to the object whitelist. * * @deprecated + * @return void */ - public static function addObjectPrefix() + public static function addObjectPrefix(): void { } @@ -70,7 +74,7 @@ class MediaFilter * @param string $prefix * @return string */ - public static function formatPrefix($prefix) + public static function formatPrefix(string $prefix): string { $prefix = preg_match('@^(?:https?:)?//(.*)$@i', $prefix, $matches) ? $matches[1] : $prefix; if (strpos($prefix, '/') === false) @@ -85,7 +89,7 @@ class MediaFilter * * @return array */ - public static function getWhitelist() + public static function getWhitelist(): array { if (!self::$_whitelist) { @@ -99,7 +103,7 @@ class MediaFilter * * @return string */ - public static function getWhitelistRegex() + public static function getWhitelistRegex(): string { if (!self::$_whitelist) { @@ -119,7 +123,7 @@ class MediaFilter * @param string $url * @return bool */ - public static function matchWhitelist($url) + public static function matchWhitelist(string $url): bool { return preg_match(self::getWhitelistRegex(), $url) ? true : false; } @@ -131,7 +135,7 @@ class MediaFilter * @param string $replacement * @return string */ - public static function removeEmbeddedMedia($input, $replacement = '') + public static function removeEmbeddedMedia(string $input, string $replacement = ''): string { $input = preg_replace('!]*>(.*?)?!is', $replacement, $input); $input = preg_replace('!]*>(.*?)?!is', $replacement, $input); @@ -145,14 +149,14 @@ class MediaFilter * @param array $custom_whitelist * @return void */ - protected static function _loadWhitelists($custom_whitelist = array()) + protected static function _loadWhitelists(array $custom_whitelist = []): void { $default_whitelist = (include \RX_BASEDIR . 'common/defaults/whitelist.php'); self::$_whitelist = []; if($custom_whitelist) { - if(!is_array($custom_whitelist) || !isset($custom_whitelist['iframe']) || !isset($custom_whitelist['object'])) + if(!isset($custom_whitelist['iframe']) || !isset($custom_whitelist['object'])) { $custom_whitelist = array( 'iframe' => isset($custom_whitelist->iframe) ? $custom_whitelist->iframe : array(), @@ -215,7 +219,7 @@ class MediaFilter * @deprecated * @return array */ - public static function getIframeWhitelist() + public static function getIframeWhitelist(): array { return self::getWhitelist(); } @@ -226,7 +230,7 @@ class MediaFilter * @deprecated * @return string */ - public static function getIframeWhitelistRegex() + public static function getIframeWhitelistRegex(): string { return self::getWhitelistRegex(); } @@ -238,7 +242,7 @@ class MediaFilter * @param string $url * @return bool */ - public static function matchIframeWhitelist($url) + public static function matchIframeWhitelist(string $url): bool { return self::matchWhitelist($url); } @@ -249,7 +253,7 @@ class MediaFilter * @deprecated * @return array */ - public static function getObjectWhitelist() + public static function getObjectWhitelist(): array { return self::getWhitelist(); } @@ -260,7 +264,7 @@ class MediaFilter * @deprecated * @return string */ - public static function getObjectWhitelistRegex() + public static function getObjectWhitelistRegex(): string { return self::getWhitelistRegex(); } @@ -272,7 +276,7 @@ class MediaFilter * @param string $url * @return bool */ - public static function matchObjectWhitelist($url) + public static function matchObjectWhitelist(string $url): bool { return self::matchWhitelist($url); }