function multiAuthLoginSetup()
{
    global $wgExtensionMessagesFiles;
    global $wgExtensionCredits;
    global $wgExtensionAliasesFiles;
    global $wgMultiAuthPlugin;
    // localization
    $wgExtensionMessagesFiles['MultiAuthSpecialLogin'] = dirname(__FILE__) . '/SpecialLogin.i18n.php';
    if (function_exists('wfLoadExtensionMessages')) {
        wfLoadExtensionMessages('MultiAuthSpecialLogin');
    }
    // pre 1.18.0
    // 	if (MwFunctions::testVersionGEq(1,18))
    // 		MwFunctions::updateMessageCache(); // Hack for post 1.18.0
    // aliases
    if (!MwFunctions::testVersionGEq(1, 18)) {
        $wgExtensionAliasesFiles['MultiAuthSpecialLogin'] = dirname(__FILE__) . '/SpecialLogin.alias.php';
    }
    $wgExtensionCredits['specialpage']['MultiAuthSpecialLogin'] = array('path' => __FILE__, 'version' => $wgMultiAuthPlugin->getVersion(), 'url' => $wgMultiAuthPlugin->getURL());
}
function deferredMultiAuthSetup()
{
    /********************************************
     *                HOOKS SETUP               *
     ********************************************/
    global $wgHooks;
    global $wgMultiAuthPlugin;
    /*
     * Hook for adding/modifying the URLs contained in the personal URL bar
     */
    $wgHooks['PersonalUrls'][] = array(&$wgMultiAuthPlugin, 'addLinkHook');
    /*
     * User authentication hook
     *
     * This is not really perfect but the best place mediwiki provides to hook
     * in the user instantiation/authentication process.
     */
    $wgHooks['UserLoadFromSession'][] = array(&$wgMultiAuthPlugin, 'userLoadFromSessionHook');
    /*
     * Hook to place own data in the session managed by mediawiki.
     * This is called every time $wgUser->setCookies() is called.
     */
    $wgHooks['UserSetCookies'][] = array(&$wgMultiAuthPlugin, 'userSetCookiesHook');
    /*
     * Hook to manage logout of a user properly (e.g. clear own session data)
     * This is called every time $wgUser->logout() is called.
     */
    $wgHooks['UserLogout'][] = array(&$wgMultiAuthPlugin, 'userLogoutHook');
    /*
     * Hook to modify aliases of special pages.
     * This is used to replace the regular login page with the MultiAuth login
     * page.
     */
    $wgHooks['LanguageGetSpecialPageAliases'][] = array(&$wgMultiAuthPlugin, 'filterSpecialPageAliasesHook');
    /*
     * Hook to modify URLs returned by calls to the getLocalURL method.
     * INFO: This is here for testing purposes.
     */
    //$wgHooks['GetLocalURL'][] = array(&$wgMultiAuthPlugin, 'getLocalURLHook');
    /********************************************
     *            LOCALISATION SETUP            *
     ********************************************/
    global $wgExtensionMessagesFiles;
    $wgExtensionMessagesFiles['MultiAuthPlugin'] = dirname(__FILE__) . '/MultiAuthPlugin.i18n.php';
    if (function_exists('wfLoadExtensionMessages')) {
        wfLoadExtensionMessages('MultiAuthPlugin');
    }
    // pre 1.18.0
    if (MwFunctions::testVersionGEq(1, 18)) {
        MwFunctions::updateMessageCache();
    }
    // Hack for post 1.18.0
    /********************************************
     *                 CREDITS                  *
     ********************************************/
    global $wgExtensionCredits;
    $wgExtensionCredits['other'][] = array('path' => __FILE__, 'name' => wfMsg('multiauth-credits_name'), 'version' => $wgMultiAuthPlugin->getVersion(), 'author' => wfMsg('multiauth-credits_author'), 'url' => $wgMultiAuthPlugin->getURL(), 'description' => wfMsg('multiauth-credits_description'));
    // Hack to reduce the updateMessageCache() calls to 1
    // TODO cleanly implement localisation!
    $wgExtensionCredits['specialpage']['MultiAuthSpecialLogin'] = array_merge($wgExtensionCredits['specialpage']['MultiAuthSpecialLogin'], array('name' => wfMsg('multiauthspeciallogin-credits_name'), 'author' => wfMsg('multiauthspeciallogin-credits_author'), 'description' => wfMsg('multiauthspeciallogin-credits_description')));
    $wgExtensionCredits['specialpage']['MultiAuthSpecialLogout'] = array_merge($wgExtensionCredits['specialpage']['MultiAuthSpecialLogout'], array('name' => wfMsg('multiauthspeciallogout-credits_name'), 'author' => wfMsg('multiauthspeciallogout-credits_author'), 'description' => wfMsg('multiauthspeciallogout-credits_description')));
    return true;
}
 * distribution for a full listing of individual contributors.
 *
 * This is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This software is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this software.  If not, write to the Free Software 
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 
 * USA, or see the FSF site: http://www.fsf.org.
 */
// Check to make sure we're actually in MediaWiki.
if (!defined('MEDIAWIKI')) {
    die('This file is part of MediaWiki. It is not a valid entry point.');
}
/**
 * Internationalisation file for MultiAuthSpecial
 */
$messages = array();
$messages['de'] = array('multiauthspeciallogin' => 'MultiAuth Anmeldeseite', 'multiauthspeciallogin-credits_name' => 'MultiAuth Anmeldeseite', 'multiauthspeciallogin-credits_author' => 'Regionales Rechenzentrum Erlangen (RRZE), Florian Löffler', 'multiauthspeciallogin-credits_description' => 'Login Spezialseite als Teil der Multi Authentifizierungserweiterung', 'multiauthspeciallogin-msg_loginSuccess' => 'Erfolgreich eingeloggt!', 'multiauthspeciallogin-msg_notAuthorized' => 'Erfolgreiche externe Authentifizierung.<br/>Sie besitzen jedoch leider keine Zugriffsberechtigung für dieses Wiki!');
$messages['en'] = array('multiauthspeciallogin' => 'MultiAuth login page', 'multiauthspeciallogin-credits_name' => 'MultiAuth login page', 'multiauthspeciallogin-credits_author' => 'Regional Computing Centre Erlangen (RRZE), Florian Löffler', 'multiauthspeciallogin-credits_description' => 'Login special page as part of the Multi Authentication Plugin', 'multiauthspeciallogin-msg_loginSuccess' => 'Successfully logged in!', 'multiauthspeciallogin-msg_notAuthorized' => 'Successful external authentication.<br/>Unfortunately you do not have the necessary rights to access this wiki.');
if (MwFunctions::testVersionGEq(1, 18)) {
    include dirname(__FILE__) . '/SpecialLogin.alias.php';
}
// Hack for post 1.18.0