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( "

{$ipa}:
{$ipr}:
 
\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( "\n" ); } } # Callback function to output a block function wfAddRow( $block, $tag ) { global $wgOut, $wgUser, $wgLang, $ip; $sk = $wgUser->getSkin(); # Hide addresses blocked by User::spreadBlocks, for privacy $addr = $block->mAuto ? "#{$block->mId}" : $block->mAddress; $name = User::whoIs( $block->mBy ); $ulink = $sk->makeKnownLink( $wgLang->getNsText( Namespace::getUser() ). ":{$name}", $name ); $d = $wgLang->timeanddate( $block->mTimestamp, true ); $line = wfMsg( "blocklistline", $d, $ulink, $addr ); $wgOut->addHTML( "
  • {$line}" ); if ( !$block->mAuto ) { $clink = "specialPage( "Contributions" ), "target={$block->mAddress}" ) . "\">" . wfMsg( "contribslink" ) . ""; $wgOut->addHTML( " ({$clink})" ); } if ( $wgUser->isSysop() ) { $ublink = "specialPage( "Ipblocklist" ), "action=unblock&ip=" . urlencode( $addr ) ) . "\">" . wfMsg( "unblocklink" ) . ""; $wgOut->addHTML( " ({$ublink})" ); } if ( "" != $block->mReason ) { $wgOut->addHTML( " (" . wfEscapeHTML( $block->mReason ) . ")" ); } $wgOut->addHTML( "
  • \n" ); } ?>