+ $work = new PoolCounterWorkViaCallback( 'SpecialContributions', $poolKey, [
+ 'doWork' => function () use ( $pager, $out ) {
+ # Show a message about replica DB lag, if applicable
+ $lb = MediaWikiServices::getInstance()->getDBLoadBalancer();
+ $lag = $lb->safeGetLag( $pager->getDatabase() );
+ if ( $lag > 0 ) {
+ $out->showLagWarning( $lag );
+ }
+
+ $output = $pager->getBody();
+ if ( !$this->including() ) {
+ $output = '<p>' . $pager->getNavigationBar() . '</p>' .
+ $output .
+ '<p>' . $pager->getNavigationBar() . '</p>';
+ }
+ $out->addHTML( $output );
+ },
+ 'error' => function () use ( $out ) {
+ $msg = $this->getUser()->isAnon()
+ ? 'sp-contributions-concurrency-ip'
+ : 'sp-contributions-concurrency-user';
+ $out->wrapWikiMsg( "<div class='errorbox'>\n$1\n</div>", $msg );
+ }
+ ] );
+ $work->execute();