* @return string
*/
private function getExtraInputs( $types ) {
- $offender = $this->getRequest()->getVal( 'offender' );
- $user = User::newFromName( $offender, false );
- if ( !$user || ( $user->getId() == 0 && !IP::isIPAddress( $offender ) ) ) {
- $offender = ''; // Blank field if invalid
- }
- if ( count( $types ) == 1 && $types[0] == 'suppress' ) {
- return Xml::inputLabel( $this->msg( 'revdelete-offender' )->text(), 'offender',
- 'mw-log-offender', 20, $offender );
+ if ( count( $types ) == 1 ) {
+ if ( $types[0] == 'suppress' ) {
+ $offender = $this->getRequest()->getVal( 'offender' );
+ $user = User::newFromName( $offender, false );
+ if ( !$user || ( $user->getId() == 0 && !IP::isIPAddress( $offender ) ) ) {
+ $offender = ''; // Blank field if invalid
+ }
+ return Xml::inputLabel( $this->msg( 'revdelete-offender' )->text(), 'offender',
+ 'mw-log-offender', 20, $offender );
+ } else {
+ // Allow extensions to add their own extra inputs
+ $input = '';
+ Hooks::run( 'LogEventsListGetExtraInputs', array( $types[0], $this, &$input ) );
+ return $input;
+ }
}
return '';
$pager->mLimit = $lim;
}
- $logBody = $pager->getBody();
+ $knownEmptyResult = false;
+ // Check if we can avoid the DB query all together
+ if ( $page !== '' && !$param['useMaster'] ) {
+ $title = ( $page instanceof Title ) ? $page : Title::newFromText( $page );
+ if ( $title ) {
+ $member = $title->getNamespace() . ':' . $title->getDBkey();
+ if ( !BloomCache::get( 'main' )->check( wfWikiId(), 'TitleHasLogs', $member ) ) {
+ $knownEmptyResult = true;
+ }
+ } else {
+ $knownEmptyResult = true;
+ }
+ }
+
+ // Fetch the log rows and build the HTML if needed
+ if ( $knownEmptyResult ) {
+ $logBody = '';
+ $numRows = 0;
+ } else {
+ $logBody = $pager->getBody();
+ $numRows = $pager->getNumRows();
+ }
+
$s = '';
if ( $logBody ) {
if ( $msgKey[0] ) {
$dir = $context->getLanguage()->getDir();
- $lang = $context->getLanguage()->getCode();
+ $lang = $context->getLanguage()->getHtmlCode();
$s = Xml::openElement( 'div', array(
'class' => "mw-warning-with-logexcerpt mw-content-$dir",
$context->msg( 'logempty' )->parse() );
}
- if ( $pager->getNumRows() > $pager->mLimit ) { # Show "Full log" link
+ if ( $numRows > $pager->mLimit ) { # Show "Full log" link
$urlParam = array();
if ( $page instanceof Title ) {
$urlParam['page'] = $page->getPrefixedDBkey();
}
/* hook can return false, if we don't want the message to be emitted (Wikia BugId:7093) */
- if ( wfRunHooks( 'LogEventsListShowLogExtract', array( &$s, $types, $page, $user, $param ) ) ) {
+ if ( Hooks::run( 'LogEventsListShowLogExtract', array( &$s, $types, $page, $user, $param ) ) ) {
// $out can be either an OutputPage object or a String-by-reference
if ( $out instanceof OutputPage ) {
$out->addHTML( $s );
}
}
- return $pager->getNumRows();
+ return $numRows;
}
/**