-
- $this->addWhereRange('log_timestamp', $params['dir'], $params['start'], $params['end']);
+
+ if ( !is_null( $params['tag'] ) ) {
+ $this->addTables( 'change_tag' );
+ $this->addJoinConds( array( 'change_tag' => array( 'INNER JOIN', array( 'log_id=ct_log_id' ) ) ) );
+ $this->addWhereFld( 'ct_tag', $params['tag'] );
+ global $wgOldChangeTagsIndex;
+ $index['change_tag'] = $wgOldChangeTagsIndex ? 'ct_tag' : 'change_tag_tag_id';
+ }
+
+ if ( !is_null( $params['action'] ) ) {
+ list( $type, $action ) = explode( '/', $params['action'] );
+ $this->addWhereFld( 'log_type', $type );
+ $this->addWhereFld( 'log_action', $action );
+ }
+ else if ( !is_null( $params['type'] ) ) {
+ $this->addWhereFld( 'log_type', $params['type'] );
+ $index['logging'] = 'type_time';
+ }
+
+ $this->addWhereRange( 'log_timestamp', $params['dir'], $params['start'], $params['end'] );