'UserloginHTTPS', 'author' => 'Magnus Kristiansen', 'url' => 'http://www.mediawiki.org/wiki/Extension:UserloginHTTPS', 'description' => 'Redirect Special:Userlogin to HTTPS if accessed via HTTP', 'descriptionmsg' => 'userloginhttps-desc', 'version' => '1.0.0', ); $wgHooks['SpecialPage_initList'][] = 'ulh_overrideUserlogin'; function ulh_overrideUserlogin(&$list) { global $ulh_originalData; $ulh_originalData = $list['Userlogin']; $list['Userlogin'] = array('SpecialPage', 'Userlogin', '', true, 'ulh_SpecialUserlogin', __FILE__); return true; } function ulh_SpecialUserlogin($par) { global $wgRequest, $wgOut, $ulh_originalData; $url = $wgRequest->getFullRequestURL(); if (substr($url, 0, 5) == 'http:') { $new_url = 'https:' . substr($url, 5); $wgOut->redirect($new_url); return; } $rec = $ulh_originalData; if ( is_string( $rec ) ) { $className = $rec; $sp = new $className; } elseif ( is_array( $rec ) ) { $className = array_shift( $rec ); $sp = wfCreateObject( $className, $rec ); } else { $wgOut->showErrorPage('Internal error', 'Error in Userlogin override.'); return; } require_once($sp->getFile()); wfSpecialUserlogin($par); } ?>