Server : Apache System : Linux pod-100823:apache2_74:v0.5.7 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33.7 Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system Directory : /nas/content/live/attorneyexperi/wp-content/plugins/imagify/classes/CDN/ |
<?php declare(strict_types=1); namespace Imagify\CDN; use Imagify\EventManagement\SubscriberInterface; /** * CDN subscriber */ class CDN implements SubscriberInterface { /** * Array of events this subscriber listens to * * @return array */ public static function get_subscribed_events() { return [ 'imagify_cdn_source_url' => 'get_cdn_source', ]; } /** * Get the CDN "source". * * @since 1.9.3 * * @param string $option_url An URL to use instead of the one stored in the option. It is used only if no constant/filter. * * @return array { * @type string $source Where does it come from? Possible values are 'constant', 'filter', or 'option'. * @type string $name Who? Can be a constant name, a plugin name, or an empty string. * @type string $url The CDN URL, with a trailing slash. An empty string if no URL is set. * } */ public function get_cdn_source( $option_url = '' ) { if ( defined( 'IMAGIFY_CDN_URL' ) && IMAGIFY_CDN_URL && is_string( IMAGIFY_CDN_URL ) ) { // Use a constant. $source = [ 'source' => 'constant', 'name' => 'IMAGIFY_CDN_URL', 'url' => IMAGIFY_CDN_URL, ]; } else { // Maybe use a filter. $filter_source = [ 'name' => null, 'url' => null, ]; /** * Provide a custom CDN source. * * @since 1.9.3 * * @param array $filter_source { * @type $name string The name of which provides the URL (plugin name, etc). * @type $url string The CDN URL. * } */ $filter_source = apply_filters( 'imagify_cdn_source', $filter_source ); if ( ! empty( $filter_source['url'] ) ) { $source = [ 'source' => 'filter', 'name' => ! empty( $filter_source['name'] ) ? $filter_source['name'] : '', 'url' => $filter_source['url'], ]; } } if ( empty( $source['url'] ) ) { // No constant, no filter: use the option. $source = [ 'source' => 'option', 'name' => '', 'url' => $option_url && is_string( $option_url ) ? $option_url : get_imagify_option( 'cdn_url' ), ]; } if ( empty( $source['url'] ) ) { // Nothing set. return [ 'source' => 'option', 'name' => '', 'url' => '', ]; } $source['url'] = $this->sanitize_cdn_url( $source['url'] ); if ( empty( $source['url'] ) ) { // Not an URL. return [ 'source' => 'option', 'name' => '', 'url' => '', ]; } return $source; } /** * Sanitize the CDN URL value. * * @since 1.9.3 * * @param string $url The URL to sanitize. * * @return string */ public function sanitize_cdn_url( $url ) { $url = sanitize_text_field( $url ); if ( ! $url || ! preg_match( '@^https?://.+\.[^.]+@i', $url ) ) { // Not an URL. return ''; } return trailingslashit( $url ); } }