} elseif ( $this->section == 'new' ) {
// Nothing *to* preview for new sections
return false;
- } elseif ( ( $request->getVal( 'preload' ) !== null || $this->mTitle->exists() )
+ } elseif ( ( $request->getCheck( 'preload' ) || $this->mTitle->exists() )
&& $this->context->getUser()->getOption( 'previewonfirst' )
) {
// Standard preference behavior
$this->scrolltop = $request->getIntOrNull( 'wpScrolltop' );
- if ( $this->textbox1 === '' && $request->getVal( 'wpTextbox1' ) === null ) {
+ if ( $this->textbox1 === '' && !$request->getCheck( 'wpTextbox1' ) ) {
// wpTextbox1 field is missing, possibly due to being "too big"
// according to some filter rules such as Suhosin's setting for
// suhosin.request.max_value_length (d'oh)
case self::AS_SUCCESS_NEW_ARTICLE:
$query = $resultDetails['redirect'] ? 'redirect=no' : '';
if ( $extraQueryRedirect ) {
- if ( $query === '' ) {
- $query = $extraQueryRedirect;
- } else {
- $query = $query . '&' . $extraQueryRedirect;
+ if ( $query !== '' ) {
+ $query .= '&';
}
+ $query .= $extraQueryRedirect;
}
$anchor = $resultDetails['sectionanchor'] ?? '';
$out->redirect( $this->mTitle->getFullURL( $query ) . $anchor );
);
if ( $resultDetails['redirect'] ) {
- if ( $extraQuery == '' ) {
- $extraQuery = 'redirect=no';
- } else {
- $extraQuery = 'redirect=no&' . $extraQuery;
+ if ( $extraQuery !== '' ) {
+ $extraQuery = '&' . $extraQuery;
}
+ $extraQuery = 'redirect=no' . $extraQuery;
}
if ( $extraQueryRedirect ) {
- if ( $extraQuery === '' ) {
- $extraQuery = $extraQueryRedirect;
- } else {
- $extraQuery = $extraQuery . '&' . $extraQueryRedirect;
+ if ( $extraQuery !== '' ) {
+ $extraQuery .= '&';
}
+ $extraQuery .= $extraQueryRedirect;
}
$out->redirect( $this->mTitle->getFullURL( $extraQuery ) . $sectionanchor );
return $wgParser->guessLegacySectionNameFromWikiText( $text );
}
// Meanwhile, real browsers get real anchors
- return $wgParser->guessSectionNameFromWikiText( $text );
+ $name = $wgParser->guessSectionNameFromWikiText( $text );
+ // With one little caveat: per T216029, fragments in HTTP redirects need to be urlencoded,
+ // otherwise Chrome double-escapes the rest of the URL.
+ return '#' . urlencode( mb_substr( $name, 1 ) );
}
/**