X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Flogging%2FDeleteLogFormatter.php;h=f0598aa74981c53bddf36e6794c8df91927c9815;hb=298e55a5b7de57f129735f0c103e4d951c550a39;hp=4f13d37de65b94abb524c7b18864ae3f3bc330ff;hpb=badc035712ded02e8ec7ee4c5e8a0fe09e2811d2;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/logging/DeleteLogFormatter.php b/includes/logging/DeleteLogFormatter.php index 4f13d37de6..f0598aa749 100644 --- a/includes/logging/DeleteLogFormatter.php +++ b/includes/logging/DeleteLogFormatter.php @@ -196,6 +196,9 @@ class DeleteLogFormatter extends LogFormatter { } // This is a CSV of the IDs $query = $params[3]; + if ( is_array( $query ) ) { + $query = implode( ',', $query ); + } // Link to each hidden object ID, $params[1] is the url param $revert = Linker::linkKnown( SpecialPage::getTitleFor( 'Revisiondelete' ), @@ -213,4 +216,67 @@ class DeleteLogFormatter extends LogFormatter { return ''; } } + + protected function getParametersForApi() { + $entry = $this->entry; + $params = array(); + + $subtype = $this->entry->getSubtype(); + if ( in_array( $subtype, array( 'event', 'revision' ) ) ) { + $rawParams = $entry->getParameters(); + if ( $subtype === 'event' ) { + array_unshift( $rawParams, 'logging' ); + } + + static $map = array( + '4::type', + '5::ids', + '6::ofield', + '7::nfield', + '4::ids' => '5::ids', + '5::ofield' => '6::ofield', + '6::nfield' => '7::nfield', + ); + foreach ( $map as $index => $key ) { + if ( isset( $rawParams[$index] ) ) { + $rawParams[$key] = $rawParams[$index]; + unset( $rawParams[$index] ); + } + } + + $old = $this->parseBitField( $rawParams['6::ofield'] ); + $new = $this->parseBitField( $rawParams['7::nfield'] ); + if ( !is_array( $rawParams['5::ids'] ) ) { + $rawParams['5::ids'] = explode( ',', $rawParams['5::ids'] ); + } + + $params = array( + '::type' => $rawParams['4::type'], + ':array:ids' => $rawParams['5::ids'], + ':assoc:old' => array( 'bitmask' => $old ), + ':assoc:new' => array( 'bitmask' => $new ), + ); + + static $fields = array( + Revision::DELETED_TEXT => 'content', + Revision::DELETED_COMMENT => 'comment', + Revision::DELETED_USER => 'user', + Revision::DELETED_RESTRICTED => 'restricted', + ); + foreach ( $fields as $bit => $key ) { + $params[':assoc:old'][$key] = (bool)( $old & $bit ); + $params[':assoc:new'][$key] = (bool)( $new & $bit ); + } + } + + return $params; + } + + public function formatParametersForApi() { + $ret = parent::formatParametersForApi(); + if ( isset( $ret['ids'] ) ) { + ApiResult::setIndexedTagName( $ret['ids'], 'id' ); + } + return $ret; + } }