function wfSpecialIpblocklist() { global $wgUser, $wgOut, $action, $ip; $fields = array( "wpUnblockAddress" ); wfCleanFormFields( $fields ); $ipu = new IPUnblockForm(); if ( "success" == $action ) { $msg = wfMsg( "ipusuccess", $ip ); $ipu->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" ); $ipr = wfMsg( "ipbreason" ); $ipus = wfMsg( "ipusubmit" ); $action = wfLocalUrlE( $wgLang->specialPage( "Ipblocklist" ), "action=submit" ); if ( "" != $err ) { $wgOut->setSubtitle( wfMsg( "formerror" ) ); $wgOut->addHTML( "
{$err}\n" ); } $wgOut->addHTML( "
\n" ); } function doSubmit() { global $wgOut, $wgUser, $wgLang; global $wpUnblockAddress, $wpUnblockReason; $block = new Block(); $wpUnblockAddress = trim( $wpUnblockAddress ); if ( $wpUnblockAddress{0} == "#" ) { $block->mId = substr( $wpUnblockAddress, 1 ); } else { $block->mAddress = $wpUnblockAddress; } # Delete block (if it exists) # We should probably check for errors rather than just declaring success $block->delete(); # Make log entry $log = new LogPage( wfMsg( "blocklogpage" ), wfMsg( "blocklogtext" ) ); $action = wfMsg( "unblocklogentry", $wpUnblockAddress ); $log->addEntry( $action, $wpUnblockReason ); # Report to the user $success = wfLocalUrl( $wgLang->specialPage( "Ipblocklist" ), "action=success&ip=" . urlencode($wpUnblockAddress) ); $wgOut->redirect( $success ); } function showList( $msg ) { global $wgOut; $wgOut->setPagetitle( wfMsg( "ipblocklist" ) ); if ( "" != $msg ) { $wgOut->setSubtitle( $msg ); } $wgOut->addHTML( "