X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fparser%2FParser.php;h=b2d8511de867992199510fa3ff13584873b779d8;hp=078de3c601f0bb1f79ffe93fe27864e296a14c93;hb=11ee7f78da9776db26098642a151a288f98bea14;hpb=5d743b03814d2e36abc45f0d9e048d6390b01084 diff --git a/includes/parser/Parser.php b/includes/parser/Parser.php index 078de3c601..b2d8511de8 100644 --- a/includes/parser/Parser.php +++ b/includes/parser/Parser.php @@ -96,10 +96,9 @@ class Parser { # at least one character of a host name (embeds EXT_LINK_URL_CLASS) const EXT_LINK_ADDR = '(?:[0-9.]+|\\[(?i:[0-9a-f:.]+)\\]|[^][<>"\\x00-\\x20\\x7F\p{Zs}\x{FFFD}])'; # RegExp to make image URLs (embeds IPv6 part of EXT_LINK_ADDR) - // @codingStandardsIgnoreStart Generic.Files.LineLength + // phpcs:ignore Generic.Files.LineLength const EXT_IMAGE_REGEX = '/^(http:\/\/|https:\/\/)((?:\\[(?i:[0-9a-f:.]+)\\])?[^][<>"\\x00-\\x20\\x7F\p{Zs}\x{FFFD}]+) \\/([A-Za-z0-9_.,~%\\-+&;#*?!=()@\\x80-\\xFF]+)\\.((?i)gif|png|jpg|jpeg)$/Sxu'; - // @codingStandardsIgnoreEnd # Regular expression for a non-newline space const SPACE_NOT_NL = '(?:\t| |&\#0*160;|&\#[Xx]0*[Aa]0;|\p{Zs})'; @@ -271,15 +270,15 @@ class Parser { $this->mPreprocessorClass = $conf['preprocessorClass']; } elseif ( defined( 'HPHP_VERSION' ) ) { # Preprocessor_Hash is much faster than Preprocessor_DOM under HipHop - $this->mPreprocessorClass = 'Preprocessor_Hash'; + $this->mPreprocessorClass = Preprocessor_Hash::class; } elseif ( extension_loaded( 'domxml' ) ) { # PECL extension that conflicts with the core DOM extension (T15770) wfDebug( "Warning: you have the obsolete domxml extension for PHP. Please remove it!\n" ); - $this->mPreprocessorClass = 'Preprocessor_Hash'; + $this->mPreprocessorClass = Preprocessor_Hash::class; } elseif ( extension_loaded( 'dom' ) ) { - $this->mPreprocessorClass = 'Preprocessor_DOM'; + $this->mPreprocessorClass = Preprocessor_DOM::class; } else { - $this->mPreprocessorClass = 'Preprocessor_Hash'; + $this->mPreprocessorClass = Preprocessor_Hash::class; } wfDebug( __CLASS__ . ": using preprocessor: {$this->mPreprocessorClass}\n" ); } @@ -2139,11 +2138,8 @@ class Parser { $useSubpages = $this->areSubpagesAllowed(); - // @codingStandardsIgnoreStart Squiz.WhiteSpace.SemicolonSpacing.Incorrect # Loop for each link for ( ; $line !== false && $line !== null; $a->next(), $line = $a->current() ) { - // @codingStandardsIgnoreEnd - # Check for excessive memory usage if ( $holders->isBig() ) { # Too big @@ -3115,6 +3111,9 @@ class Parser { } // Extract any forwarded flags + if ( isset( $result['title'] ) ) { + $title = $result['title']; + } if ( isset( $result['found'] ) ) { $found = $result['found']; } @@ -3574,9 +3573,8 @@ class Parser { $deps = []; # Loop to fetch the article, with up to 1 redirect - // @codingStandardsIgnoreStart Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed + // phpcs:ignore Generic.CodeAnalysis.ForLoopWithTestFunctionCall for ( $i = 0; $i < 2 && is_object( $title ); $i++ ) { - // @codingStandardsIgnoreEnd # Give extensions a chance to select the revision instead $id = false; # Assume current Hooks::run( 'BeforeParserFetchTemplateAndtitle', @@ -4250,9 +4248,8 @@ class Parser { $anchor = $safeHeadline; $fallbackAnchor = $fallbackHeadline; if ( isset( $refers[$arrayKey] ) ) { - // @codingStandardsIgnoreStart + // phpcs:ignore Generic.CodeAnalysis.ForLoopWithTestFunctionCall,Generic.Formatting.DisallowMultipleStatements for ( $i = 2; isset( $refers["${arrayKey}_$i"] ); ++$i ); - // @codingStandardsIgnoreEnd $anchor .= "_$i"; $linkAnchor .= "_$i"; $refers["${arrayKey}_$i"] = true; @@ -4260,9 +4257,8 @@ class Parser { $refers[$arrayKey] = true; } if ( $fallbackHeadline !== false && isset( $refers[$fallbackArrayKey] ) ) { - // @codingStandardsIgnoreStart + // phpcs:ignore Generic.CodeAnalysis.ForLoopWithTestFunctionCall,Generic.Formatting.DisallowMultipleStatements for ( $i = 2; isset( $refers["${fallbackArrayKey}_$i"] ); ++$i ); - // @codingStandardsIgnoreEnd $fallbackAnchor .= "_$i"; $refers["${fallbackArrayKey}_$i"] = true; } else { @@ -4683,7 +4679,7 @@ class Parser { * Wrapper for preprocess() * * @param string $text The text to preprocess - * @param ParserOptions $options Options + * @param ParserOptions $options * @param Title|null $title Title object or null to use $wgTitle * @return string */ @@ -5214,7 +5210,7 @@ class Parser { # Special case; width and height come in one variable together if ( $type === 'handler' && $paramName === 'width' ) { - $parsedWidthParam = $this->parseWidthParam( $value ); + $parsedWidthParam = self::parseWidthParam( $value ); if ( isset( $parsedWidthParam['width'] ) ) { $width = $parsedWidthParam['width']; if ( $handler->validateParam( 'width', $width ) ) { @@ -5791,9 +5787,9 @@ class Parser { global $wgFragmentMode; if ( isset( $wgFragmentMode[1] ) && $wgFragmentMode[1] === 'legacy' ) { // ForAttribute() and ForLink() are the same for legacy encoding - $id = Sanitizer::escapeIdForAttribute( $text, Sanitizer::ID_FALLBACK ); + $id = Sanitizer::escapeIdForAttribute( $sectionName, Sanitizer::ID_FALLBACK ); } else { - $id = Sanitizer::escapeIdForLink( $text ); + $id = Sanitizer::escapeIdForLink( $sectionName ); } return "#$id"; @@ -5976,7 +5972,7 @@ class Parser { /** * Remove any strip markers found in the given text. * - * @param string $text Input string + * @param string $text * @return string */ public function killMarkers( $text ) { @@ -6057,11 +6053,12 @@ class Parser { * Parsed a width param of imagelink like 300px or 200x300px * * @param string $value + * @param bool $parseHeight * * @return array * @since 1.20 */ - public function parseWidthParam( $value ) { + public static function parseWidthParam( $value, $parseHeight = true ) { $parsedWidthParam = []; if ( $value === '' ) { return $parsedWidthParam; @@ -6069,7 +6066,7 @@ class Parser { $m = []; # (T15500) In both cases (width/height and width only), # permit trailing "px" for backward compatibility. - if ( preg_match( '/^([0-9]*)x([0-9]*)\s*(?:px)?\s*$/', $value, $m ) ) { + if ( $parseHeight && preg_match( '/^([0-9]*)x([0-9]*)\s*(?:px)?\s*$/', $value, $m ) ) { $width = intval( $m[1] ); $height = intval( $m[2] ); $parsedWidthParam['width'] = $width;