X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fspecials%2Fpagers%2FBlockListPager.php;h=51e446d593091de7d9ea4515c306108e68747303;hp=d8229761b749f3e643c466e0dd71da255ad5e1d6;hb=f7e1770fb832aa77bf4e16ce8cc815f2b24dd10d;hpb=90f599a5a2b46794a3002ee2f2563fc456a2fddb diff --git a/includes/specials/pagers/BlockListPager.php b/includes/specials/pagers/BlockListPager.php index d8229761b7..51e446d593 100644 --- a/includes/specials/pagers/BlockListPager.php +++ b/includes/specials/pagers/BlockListPager.php @@ -22,6 +22,9 @@ /** * @ingroup Pager */ +use MediaWiki\MediaWikiServices; +use Wikimedia\Rdbms\ResultWrapper; + class BlockListPager extends TablePager { protected $conds; @@ -72,7 +75,7 @@ class BlockListPager extends TablePager { ]; foreach ( $keys as $key ) { - $msg[$key] = $this->msg( $key )->escaped(); + $msg[$key] = $this->msg( $key )->text(); } } @@ -83,6 +86,8 @@ class BlockListPager extends TablePager { $formatted = ''; + $linkRenderer = MediaWikiServices::getInstance()->getLinkRenderer(); + switch ( $name ) { case 'ipb_timestamp': $formatted = htmlspecialchars( $language->userTimeAndDate( $value, $this->getUser() ) ); @@ -117,18 +122,18 @@ class BlockListPager extends TablePager { ) ); if ( $this->getUser()->isAllowed( 'block' ) ) { if ( $row->ipb_auto ) { - $links[] = Linker::linkKnown( + $links[] = $linkRenderer->makeKnownLink( SpecialPage::getTitleFor( 'Unblock' ), $msg['unblocklink'], [], [ 'wpTarget' => "#{$row->ipb_id}" ] ); } else { - $links[] = Linker::linkKnown( + $links[] = $linkRenderer->makeKnownLink( SpecialPage::getTitleFor( 'Unblock', $row->ipb_address ), $msg['unblocklink'] ); - $links[] = Linker::linkKnown( + $links[] = $linkRenderer->makeKnownLink( SpecialPage::getTitleFor( 'Block', $row->ipb_address ), $msg['change-blocklink'] ); @@ -174,21 +179,21 @@ class BlockListPager extends TablePager { case 'ipb_params': $properties = []; if ( $row->ipb_anon_only ) { - $properties[] = $msg['anononlyblock']; + $properties[] = htmlspecialchars( $msg['anononlyblock'] ); } if ( $row->ipb_create_account ) { - $properties[] = $msg['createaccountblock']; + $properties[] = htmlspecialchars( $msg['createaccountblock'] ); } if ( $row->ipb_user && !$row->ipb_enable_autoblock ) { - $properties[] = $msg['noautoblockblock']; + $properties[] = htmlspecialchars( $msg['noautoblockblock'] ); } if ( $row->ipb_block_email ) { - $properties[] = $msg['emailblock']; + $properties[] = htmlspecialchars( $msg['emailblock'] ); } if ( !$row->ipb_allow_usertalk ) { - $properties[] = $msg['blocklist-nousertalk']; + $properties[] = htmlspecialchars( $msg['blocklist-nousertalk'] ); } $formatted = $language->commaList( $properties ); @@ -241,6 +246,26 @@ class BlockListPager extends TablePager { return $info; } + /** + * Get total number of autoblocks at any given time + * + * @return int Total number of unexpired active autoblocks + */ + function getTotalAutoblocks() { + $dbr = $this->getDatabase(); + $res = $dbr->selectField( 'ipblocks', + [ 'COUNT(*) AS totalautoblocks' ], + [ + 'ipb_auto' => '1', + 'ipb_expiry >= ' . $dbr->addQuotes( $dbr->timestamp() ), + ] + ); + if ( $res ) { + return $res; + } + return 0; // We found nothing + } + protected function getTableClass() { return parent::getTableClass() . ' mw-blocklist'; }