# not for special pages or file pages AND only when viewing AND if the page exists
# (or is in MW namespace, because that has default content)
if ( !in_array( $title->getNamespace(), array( NS_SPECIAL, NS_FILE ) ) &&
- in_array( $request->getVal( 'action', 'view' ), array( 'view', 'historysubmit' ) ) &&
+ Action::getActionName( $this ) === 'view' &&
( $title->exists() || $title->getNamespace() == NS_MEDIAWIKI ) ) {
$pageLang = $title->getPageViewLanguage();
$realBodyAttribs['lang'] = $pageLang->getHtmlCode();
# $this->getTitle() will just give Special:Badtitle, which is
# not especially useful as a returnto parameter. Use the title
# from the request instead, if there was one.
- $page = Title::newFromURL( $request->getVal( 'title', '' ) );
+ if ( $this->getUser()->isAllowed( 'read' ) ) {
+ $page = $this->getTitle();
+ } else {
+ $page = Title::newFromText( $request->getVal( 'title', '' ) );
+ }
$page = $request->getVal( 'returnto', $page );
$a = array();
if ( strval( $page ) !== '' ) {
$attrs['class'] .= ' active';
$attrs['class'] = trim( $attrs['class'] );
}
+
+ // A special case for the talk link in personal tools.
+ // See bug 41672 and 42337.
+ if ( $key === 'mytalk' ) {
+ $html = $this->getMsg( 'parentheses' )->rawParams( $html )->escaped();
+ }
+
return Html::rawElement( isset( $options['tag'] ) ? $options['tag'] : 'li', $attrs, $html );
}