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/diva/src/Validation/ |
<?php /** * Provides URL validation. * * @package AMP * @since 2.1 */ namespace AmpProject\AmpWP\Validation; use AmpProject\AmpWP\Infrastructure\Service; use AMP_Validation_Error_Taxonomy; use AMP_Validation_Manager; use WP_Error; /** * URLValidationProvider class. * * @since 2.1 * @internal */ final class URLValidationProvider implements Service { /** * The total number of validation errors, regardless of whether they were accepted. * * @var int */ private $total_errors = 0; /** * The total number of unaccepted validation errors. * * If an error has been accepted in the /wp-admin validation UI, * it won't count toward this. * * @var int */ private $unaccepted_errors = 0; /** * The number of URLs crawled, regardless of whether they have validation errors. * * @var int */ private $number_validated = 0; /** * The validation counts by type, like template or post type. * * @var array[] { * Validity by type. * * @type array $type { * @type int $valid The number of valid URLs for this type. * @type int $total The total number of URLs for this type, valid or invalid. * } * } */ private $validity_by_type = []; /** * Provides the total number of validation errors found. * * @return int */ public function get_total_errors() { return $this->total_errors; } /** * Provides the total number of unaccepted errors. * * @return int */ public function get_unaccepted_errors() { return $this->unaccepted_errors; } /** * Provides the number of URLs that have been checked. * * @return int */ public function get_number_validated() { return $this->number_validated; } /** * Provides the validity counts by type. * * @return array[] */ public function get_validity_by_type() { return $this->validity_by_type; } /** * Validates a URL, stores the results, and increments the counts. * * @see AMP_Validation_Manager::validate_url_and_store() * * @param string $url The URL to validate. * @param string $type The type of template, post, or taxonomy. * @return array|WP_Error Associative array containing validity result or a WP_Error on failure. */ public function get_url_validation( $url, $type ) { $validity = AMP_Validation_Manager::validate_url_and_store( $url ); if ( is_wp_error( $validity ) ) { return $validity; } $this->update_state_from_validity( $validity, $type ); return $validity; } /** * Increments crawl counts from a validation result. * * @param array $validity Validity results. * @param string $type The URL type. */ private function update_state_from_validity( $validity, $type ) { $validation_errors = wp_list_pluck( $validity['results'], 'error' ); $unaccepted_error_count = count( array_filter( $validation_errors, static function( $error ) { $validation_status = AMP_Validation_Error_Taxonomy::get_validation_error_sanitization( $error ); return ( AMP_Validation_Error_Taxonomy::VALIDATION_ERROR_ACK_ACCEPTED_STATUS !== $validation_status['term_status'] && AMP_Validation_Error_Taxonomy::VALIDATION_ERROR_NEW_ACCEPTED_STATUS !== $validation_status['term_status'] ); } ) ); if ( count( $validation_errors ) > 0 ) { $this->total_errors++; } if ( $unaccepted_error_count > 0 ) { $this->unaccepted_errors++; } $this->number_validated++; if ( ! isset( $this->validity_by_type[ $type ] ) ) { $this->validity_by_type[ $type ] = [ 'valid' => 0, 'total' => 0, ]; } $this->validity_by_type[ $type ]['total']++; if ( 0 === $unaccepted_error_count ) { $this->validity_by_type[ $type ]['valid']++; } } }