$subject : subject of the new section
&$text : text of the new section
+'PostLoginRedirect': Modify the post login redirect behavior.
+Occurs after signing up or logging in, allows for interception of redirect.
+&$returnTo: The page name to return to, as a string
+&$returnToQuery: array of url parameters, mapping parameter names to values
+&$type: type of login redirect as string;
+ error: display a return to link ignoring $wgRedirectOnLogin
+ signup: display a return to link using $wgRedirectOnLogin if needed
+ success: display a return to link using $wgRedirectOnLogin if needed
+ successredirect: send an HTTP redirect using $wgRedirectOnLogin if needed
+
'PreferencesGetLegend': Override the text used for the <legend> of a
preferences section.
$form: the PreferencesForm object. This is a ContextSource as well
wfRunHooks( 'UserLoginComplete', array( &$currentUser, &$injected_html ) );
if ( $injected_html !== '' ) {
- $this->displaySuccessfulAction( $this->msg( 'loginsuccesstitle' ),
+ $this->displaySuccessfulAction( 'success', $this->msg( 'loginsuccesstitle' ),
'loginsuccess', $injected_html );
} else {
$this->executeReturnTo( 'successredirect' );
*/
wfRunHooks( 'BeforeWelcomeCreation', array( &$welcome_creation_msg, &$injected_html ) );
- $this->displaySuccessfulAction( $this->msg( 'welcomeuser', $this->getUser()->getName() ),
- $welcome_creation_msg, $injected_html );
+ $this->displaySuccessfulAction(
+ 'signup',
+ $this->msg( 'welcomeuser', $this->getUser()->getName() ),
+ $welcome_creation_msg, $injected_html
+ );
}
/**
- * Display an "successful action" page.
+ * Display a "successful action" page.
*
+ * @param string $type condition of return to; see `executeReturnTo`
* @param string|Message $title Page's title
* @param string $msgname
* @param string $injected_html
*/
- private function displaySuccessfulAction( $title, $msgname, $injected_html ) {
+ private function displaySuccessfulAction( $type, $title, $msgname, $injected_html ) {
$out = $this->getOutput();
$out->setPageTitle( $title );
if ( $msgname ) {
$out->addHTML( $injected_html );
- $this->executeReturnTo( 'success' );
+ $this->executeReturnTo( $type );
}
/**
*
* @param string $type One of the following:
* - error: display a return to link ignoring $wgRedirectOnLogin
+ * - signup: display a return to link using $wgRedirectOnLogin if needed
* - success: display a return to link using $wgRedirectOnLogin if needed
* - successredirect: send an HTTP redirect using $wgRedirectOnLogin if needed
* @param string $returnTo
*
* @param string $type One of the following:
* - error: display a return to link ignoring $wgRedirectOnLogin
+ * - signup: display a return to link using $wgRedirectOnLogin if needed
* - success: display a return to link using $wgRedirectOnLogin if needed
* - successredirect: send an HTTP redirect using $wgRedirectOnLogin if needed
*/
$returnToQuery = wfCgiToArray( $this->mReturnToQuery );
}
+ // Allow modification of redirect behavior
+ wfRunHooks( 'PostLoginRedirect', array( &$returnTo, &$returnToQuery, &$type ) );
+
$returnToTitle = Title::newFromText( $returnTo );
if ( !$returnToTitle ) {
$returnToTitle = Title::newMainPage();