X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialLog.php;h=195d08b1c54887aec34b6803461341f2fd5ba3d7;hb=900843f7ee9131ebdbe839fafffb70b8e293a8b9;hp=a164c1e0d28bf8202d1dbd740e7f84d95c0b5cd9;hpb=7db5b40188c11a11bba84f07eea88fa17cbec94a;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialLog.php b/includes/specials/SpecialLog.php index a164c1e0d2..195d08b1c5 100644 --- a/includes/specials/SpecialLog.php +++ b/includes/specials/SpecialLog.php @@ -37,6 +37,7 @@ class SpecialLog extends SpecialPage { $this->setHeaders(); $this->outputHeader(); $this->getOutput()->addModules( 'mediawiki.userSuggest' ); + $this->addHelpLink( 'Help:Log' ); $opts = new FormOptions; $opts->add( 'type', '' ); @@ -49,6 +50,7 @@ class SpecialLog extends SpecialPage { $opts->add( 'offset', '' ); $opts->add( 'dir', '' ); $opts->add( 'offender', '' ); + $opts->add( 'subtype', '' ); // Set values $opts->fetchValuesFromRequest( $this->getRequest() ); @@ -76,25 +78,25 @@ class SpecialLog extends SpecialPage { } # Handle type-specific inputs - $qc = array(); + $qc = []; if ( $opts->getValue( 'type' ) == 'suppress' ) { $offender = User::newFromName( $opts->getValue( 'offender' ), false ); if ( $offender && $offender->getId() > 0 ) { - $qc = array( 'ls_field' => 'target_author_id', 'ls_value' => $offender->getId() ); + $qc = [ 'ls_field' => 'target_author_id', 'ls_value' => $offender->getId() ]; } elseif ( $offender && IP::isIPAddress( $offender->getName() ) ) { - $qc = array( 'ls_field' => 'target_author_ip', 'ls_value' => $offender->getName() ); + $qc = [ 'ls_field' => 'target_author_ip', 'ls_value' => $offender->getName() ]; } } else { // Allow extensions to add relations to their search types Hooks::run( 'SpecialLogAddLogSearchRelations', - array( $opts->getValue( 'type' ), $this->getRequest(), &$qc ) + [ $opts->getValue( 'type' ), $this->getRequest(), &$qc ] ); } # Some log types are only for a 'User:' title but we might have been given # only the username instead of the full title 'User:username'. This part try - # to lookup for a user by that name and eventually fix user input. See bug 1697. + # to lookup for a user by that name and eventually fix user input. See T3697. if ( in_array( $opts->getValue( 'type' ), self::getLogTypesOnUser() ) ) { # ok we have a type of log which expect a user title. $target = Title::newFromText( $opts->getValue( 'page' ) ); @@ -122,13 +124,13 @@ class SpecialLog extends SpecialPage { if ( $types !== null ) { return $types; } - $types = array( + $types = [ 'block', 'newusers', 'rights', - ); + ]; - Hooks::run( 'GetLogTypesOnUser', array( &$types ) ); + Hooks::run( 'GetLogTypesOnUser', [ &$types ] ); return $types; } @@ -146,8 +148,9 @@ class SpecialLog extends SpecialPage { private function parseParams( FormOptions $opts, $par ) { # Get parameters - $parms = explode( '/', ( $par = ( $par !== null ) ? $par : '' ) ); - $symsForAll = array( '*', 'all' ); + $par = $par !== null ? $par : ''; + $parms = explode( '/', $par ); + $symsForAll = [ '*', 'all' ]; if ( $parms[0] != '' && ( in_array( $par, $this->getConfig()->get( 'LogTypes' ) ) || in_array( $par, $symsForAll ) ) ) { @@ -167,6 +170,7 @@ class SpecialLog extends SpecialPage { null, LogEventsList::USE_CHECKBOXES ); + $pager = new LogPager( $loglist, $opts->getValue( 'type' ), @@ -176,26 +180,29 @@ class SpecialLog extends SpecialPage { $extraConds, $opts->getValue( 'year' ), $opts->getValue( 'month' ), - $opts->getValue( 'tagfilter' ) + $opts->getValue( 'tagfilter' ), + $opts->getValue( 'subtype' ) ); $this->addHeader( $opts->getValue( 'type' ) ); # Set relevant user if ( $pager->getPerformer() ) { - $this->getSkin()->setRelevantUser( User::newFromName( $pager->getPerformer() ) ); + $performerUser = User::newFromName( $pager->getPerformer(), false ); + $this->getSkin()->setRelevantUser( $performerUser ); } # Show form options $loglist->showOptions( $pager->getType(), - $opts->getValue( 'user' ), + $pager->getPerformer(), $pager->getPage(), $pager->getPattern(), $pager->getYear(), $pager->getMonth(), $pager->getFilterParams(), - $opts->getValue( 'tagfilter' ) + $pager->getTagFilter(), + $pager->getAction() ); # Insert list @@ -228,7 +235,7 @@ class SpecialLog extends SpecialPage { # Show button to hide log entries and/or edit change tags $s = Html::openElement( 'form', - array( 'action' => wfScript(), 'id' => 'mw-log-deleterevision-submit' ) + [ 'action' => wfScript(), 'id' => 'mw-log-deleterevision-submit' ] ) . "\n"; $s .= Html::hidden( 'action', 'historysubmit' ) . "\n"; $s .= Html::hidden( 'type', 'logging' ) . "\n"; @@ -237,53 +244,29 @@ class SpecialLog extends SpecialPage { if ( $canRevDelete ) { $buttons .= Html::element( 'button', - array( + [ 'type' => 'submit', 'name' => 'revisiondelete', 'value' => '1', 'class' => "deleterevision-log-submit mw-log-deleterevision-button" - ), + ], $this->msg( 'showhideselectedlogentries' )->text() ) . "\n"; } if ( $showTagEditUI ) { $buttons .= Html::element( 'button', - array( + [ 'type' => 'submit', 'name' => 'editchangetags', 'value' => '1', 'class' => "editchangetags-log-submit mw-log-editchangetags-button" - ), + ], $this->msg( 'log-edit-tags' )->text() ) . "\n"; } - // Select: All, None, Invert - $links = array(); - $links[] = Html::element( - 'a', array( 'href' => '#', 'class' => 'mw-checkbox-all' ), - $this->msg( 'checkbox-all' )->text() - ); - $links[] = Html::element( - 'a', array( 'href' => '#', 'class' => 'mw-checkbox-none' ), - $this->msg( 'checkbox-none' )->text() - ); - $links[] = Html::element( - 'a', array( 'href' => '#', 'class' => 'mw-checkbox-invert' ), - $this->msg( 'checkbox-invert' )->text() - ); - - $buttons .= Html::rawElement( 'p', - array( - 'class' => "mw-checkbox-toggle-controls" - ), - $this->msg( 'checkbox-select' ) - ->rawParams( $this->getLanguage()->commaList( $links ) )->escaped() - ); - - $this->getOutput()->addModules( 'mediawiki.checkboxtoggle' ); - $this->getOutput()->addModuleStyles( 'mediawiki.checkboxtoggle.styles' ); + $buttons .= ( new ListToggle( $this->getOutput() ) )->getHTML(); $s .= $buttons . $formcontents . $buttons; $s .= Html::closeElement( 'form' );