+ $work = new PoolCounterWorkViaCallback( 'SpecialContributions', $poolKey, [
+ 'doWork' => function () use ( $pager, $out ) {
+ # Show a message about replica DB lag, if applicable
+ $lag = $pager->getDatabase()->getSessionLagStatus()['lag'];
+ if ( $lag > 0 ) {
+ $out->showLagWarning( $lag );
+ }
+
+ $output = $pager->getBody();
+ if ( !$this->including() ) {
+ $output = $pager->getNavigationBar() .
+ $output .
+ $pager->getNavigationBar();
+ }
+ $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();