showList( $msg ); } else if ( "submit" == $action ) { if ( ! $wgUser->isSysop() ) { $wgOut->sysopRequired(); return; } $ipu->doSubmit(); } else if ( "unblock" == $action ) { $ipu->showForm( "" ); } else { $ipu->showList( "" ); } } class IPUnblockForm { function showForm( $err ) { global $wgOut, $wgUser, $wgLang; global $ip, $wpUnblockAddress; $wgOut->setPagetitle( wfMsg( "unblockip" ) ); $wgOut->addWikiText( wfMsg( "unblockiptext" ) ); if ( ! $wpUnblockAddress ) { $wpUnblockAddress = $ip; } $ipa = wfMsg( "ipaddress" ); $ipus = wfMsg( "ipusubmit" ); $action = wfLocalUrlE( $wgLang->specialPage( "Ipblocklist" ), "action=submit" ); if ( "" != $err ) { $wgOut->setSubtitle( wfMsg( "formerror" ) ); $wgOut->addHTML( "

{$err}\n" ); } $wgOut->addHTML( "

{$ipa}:
 
\n" ); } function doSubmit() { global $wgOut, $wgUser, $wgLang; global $ip, $wpUnblockAddress; $fname = "IPUnblockForm::doSubmit"; if ( ! preg_match( "/\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}/", $wpUnblockAddress ) ) { $this->showForm( wfMsg( "badipaddress" ) ); return; } $sql = "DELETE FROM ipblocks WHERE ipb_address='{$wpUnblockAddress}'"; wfQuery( $sql, $fname ); $success = wfLocalUrl( $wgLang->specialPage( "Ipblocklist" ), "action=success&ip={$wpUnblockAddress}" ); $wgOut->redirect( $success ); } function showList( $msg ) { global $wgOut, $wgUser, $wgLang; global $ip; $wgOut->setPagetitle( wfMsg( "ipblocklist" ) ); if ( "" != $msg ) { $wgOut->setSubtitle( $msg ); } $sql = "SELECT ipb_timestamp,ipb_address,ipb_user,ipb_by,ipb_reason " . "FROM ipblocks ORDER BY ipb_timestamp"; $res = wfQuery( $sql, "IPUnblockForm::showList" ); $wgOut->addHTML( "\n" ); } } ?>