X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FSpecialIpblocklist.php;h=ad76832cecd706b58e362151f355e60aa6b666b3;hb=39bb950f401807a71cb9e9b3d5f91d71876178bc;hp=8f1129bbd28051cc91bfe6c242c6d471f05f840a;hpb=8d3f8e8275332e69ba9855f53fb610e36e4bb3ab;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/SpecialIpblocklist.php b/includes/SpecialIpblocklist.php index 8f1129bbd2..ad76832cec 100644 --- a/includes/SpecialIpblocklist.php +++ b/includes/SpecialIpblocklist.php @@ -6,7 +6,7 @@ */ /** - * + * @todo document */ function wfSpecialIpblocklist() { global $wgUser, $wgOut, $wgRequest; @@ -20,7 +20,8 @@ function wfSpecialIpblocklist() { if ( "success" == $action ) { $msg = wfMsg( "ipusuccess", htmlspecialchars( $ip ) ); $ipu->showList( $msg ); - } else if ( "submit" == $action && $wgRequest->wasPosted() ) { + } else if ( "submit" == $action && $wgRequest->wasPosted() && + $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) { if ( ! $wgUser->isAllowed('block') ) { $wgOut->sysopRequired(); return; @@ -48,21 +49,22 @@ class IPUnblockForm { function showForm( $err ) { - global $wgOut, $wgUser, $wgLang; + global $wgOut, $wgUser, $wgLang, $wgSysopUserBans; - $wgOut->setPagetitle( wfMsg( "unblockip" ) ); - $wgOut->addWikiText( wfMsg( "unblockiptext" ) ); + $wgOut->setPagetitle( wfMsg( 'unblockip' ) ); + $wgOut->addWikiText( wfMsg( 'unblockiptext' ) ); - $ipa = wfMsg( "ipaddress" ); - $ipr = wfMsg( "ipbreason" ); - $ipus = htmlspecialchars( wfMsg( "ipusubmit" ) ); + $ipa = wfMsgHtml( $wgSysopUserBans ? 'ipadressorusername' : 'ipaddress' ); + $ipr = wfMsgHtml( 'ipbreason' ); + $ipus = wfMsgHtml( 'ipusubmit' ); $titleObj = Title::makeTitle( NS_SPECIAL, "Ipblocklist" ); $action = $titleObj->escapeLocalURL( "action=submit" ); if ( "" != $err ) { $wgOut->setSubtitle( wfMsg( "formerror" ) ); - $wgOut->addHTML( "

{$err}

\n" ); + $wgOut->addWikitext( "{$err}\n" ); } + $token = htmlspecialchars( $wgUser->editToken() ); $wgOut->addHTML( "
@@ -86,6 +88,7 @@ class IPUnblockForm { +
\n" ); } @@ -101,7 +104,7 @@ class IPUnblockForm { } else { $block->mAddress = $this->ip; } - + # Delete block (if it exists) # We should probably check for errors rather than just declaring success $block->delete(); @@ -123,57 +126,124 @@ class IPUnblockForm { if ( "" != $msg ) { $wgOut->setSubtitle( $msg ); } + global $wgRequest; + list( $this->limit, $this->offset ) = $wgRequest->getLimitOffset(); + $this->counter = 0; + + $paging = '

' . wfViewPrevNext( $this->offset, $this->limit, + Title::makeTitle( NS_SPECIAL, 'Ipblocklist' ), + 'ip=' . urlencode( $this->ip ) ) . "

\n"; + $wgOut->addHTML( $paging ); + + $search = $this->searchForm(); + $wgOut->addHTML( $search ); + $wgOut->addHTML( "\n" ); + $wgOut->addHTML( $paging ); } -} - -/** - * Callback function to output a block - */ -function wfAddRow( $block, $tag ) { - global $wgOut, $wgUser, $wgLang, $wgContLang; - - $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( $wgContLang->getNsText( Namespace::getUser() ). ":{$name}", $name ); - $formattedTime = $wgLang->timeanddate( $block->mTimestamp, true ); - if ( $block->mExpiry === "" ) { - $formattedExpiry = "indefinite"; - } else { - $formattedExpiry = $wgLang->timeanddate( $block->mExpiry, true ); + function searchForm() { + global $wgTitle; + return + wfElement( 'form', array( + 'action' => $wgTitle->getLocalUrl() ), + null ) . + wfElement( 'input', array( + 'type' => 'hidden', + 'name' => 'action', + 'value' => 'search' ) ). + wfElement( 'input', array( + 'type' => 'hidden', + 'name' => 'limit', + 'value' => $this->limit ) ). + wfElement( 'input', array( + 'name' => 'ip', + 'value' => $this->ip ) ) . + wfElement( 'input', array( + 'type' => 'submit', + 'value' => wfMsg( 'search' ) ) ) . + ''; } + + /** + * Callback function to output a block + */ + function addRow( $block, $tag ) { + global $wgOut, $wgUser, $wgLang, $wgContLang; + + if( $this->ip != '' ) { + if( $block->mAuto ) { + if( stristr( $block->mId, $this->ip ) == false ) { + return; + } + } else { + if( stristr( $block->mAddress, $this->ip ) == false ) { + return; + } + } + } + + // Loading blocks is fast; displaying them is slow. + // Quick hack for paging. + $this->counter++; + if( $this->counter <= $this->offset ) { + return; + } + if( $this->counter - $this->offset > $this->limit ) { + return; + } + + $fname = 'IPUnblockForm-addRow'; + wfProfileIn( $fname ); + + static $sk=null, $msg=null; + + if( is_null( $sk ) ) + $sk = $wgUser->getSkin(); + if( is_null( $msg ) ) { + $msg = array(); + foreach( array( 'infiniteblock', 'expiringblock', 'contribslink', 'unblocklink' ) as $key ) { + $msg[$key] = wfMsgHtml( $key ); + } + $msg['blocklistline'] = wfMsg( 'blocklistline' ); + } - $line = wfMsg( "blocklistline", $formattedTime, $ulink, $addr, $formattedExpiry ); + # Hide addresses blocked by User::spreadBlocks, for privacy + $addr = $block->mAuto ? "#{$block->mId}" : $block->mAddress; - $wgOut->addHTML( "
  • {$line}" ); - - if ( !$block->mAuto ) { - $titleObj = Title::makeTitle( NS_SPECIAL, "Contributions" ); - $clink = "escapeLocalURL( "target={$block->mAddress}" ) . "\">" . - wfMsg( "contribslink" ) . ""; - $wgOut->addHTML( " ({$clink})" ); - } - - if ( $wgUser->isAllowed('block') ) { - $titleObj = Title::makeTitle( NS_SPECIAL, "Ipblocklist" ); - $ublink = "escapeLocalURL( "action=unblock&ip=" . urlencode( $addr ) ) . "\">" . - wfMsg( "unblocklink" ) . ""; - $wgOut->addHTML( " ({$ublink})" ); - } - if ( "" != $block->mReason ) { - $wgOut->addHTML( " (" . $sk->formatComment( $block->mReason ) . - ")" ); + $name = $block->getByName(); + $ulink = $sk->makeKnownLinkObj( Title::makeTitle( NS_USER, $name ), $name ); + $formattedTime = $wgLang->timeanddate( $block->mTimestamp, true ); + + if ( $block->mExpiry === "" ) { + $formattedExpiry = $msg['infiniteblock']; + } else { + $formattedExpiry = wfMsgReplaceArgs( $msg['expiringblock'], + array( $wgLang->timeanddate( $block->mExpiry, true ) ) ); + } + + $line = wfMsgReplaceArgs( $msg['blocklistline'], array( $formattedTime, $ulink, $addr, $formattedExpiry ) ); + + $wgOut->addHTML( "
  • {$line}" ); + + if ( !$block->mAuto ) { + $titleObj = Title::makeTitle( NS_SPECIAL, "Contributions" ); + $wgOut->addHTML( ' (' . $sk->makeKnownLinkObj($titleObj, $msg['contribslink'], "target={$block->mAddress}") . ')' ); + } + + if ( $wgUser->isAllowed('block') ) { + $titleObj = Title::makeTitle( NS_SPECIAL, "Ipblocklist" ); + $wgOut->addHTML( ' (' . $sk->makeKnownLinkObj($titleObj, $msg['unblocklink'], 'action=unblock&ip=' . urlencode( $addr ) ) . ')' ); + } + $wgOut->addHTML( $sk->commentBlock( $block->mReason ) ); + $wgOut->addHTML( "
  • \n" ); + wfProfileOut( $fname ); } - $wgOut->addHTML( "\n" ); } - ?>