diff options
Diffstat (limited to 'www/wiki/extensions/Translate/utils/MessageGroupStatsRebuildJob.php')
-rw-r--r-- | www/wiki/extensions/Translate/utils/MessageGroupStatsRebuildJob.php | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/www/wiki/extensions/Translate/utils/MessageGroupStatsRebuildJob.php b/www/wiki/extensions/Translate/utils/MessageGroupStatsRebuildJob.php new file mode 100644 index 00000000..d6d3b448 --- /dev/null +++ b/www/wiki/extensions/Translate/utils/MessageGroupStatsRebuildJob.php @@ -0,0 +1,50 @@ +<?php +/** + * Contains class with job for rebuilding message group stats. + * + * @file + * @author Niklas Laxström + * @license GPL-2.0-or-later + */ + +/** + * Job for rebuilding message index. + * + * @ingroup JobQueue + */ +class MessageGroupStatsRebuildJob extends Job { + /** + * @param array $params + * @return self + */ + public static function newJob( $params ) { + $job = new self( Title::newMainPage(), $params ); + return $job; + } + + /** + * @param Title $title + * @param array $params + */ + public function __construct( $title, $params = [] ) { + parent::__construct( __CLASS__, $title, $params ); + } + + public function run() { + $params = $this->params; + $flags = 0; + + if ( isset( $params[ 'purge' ] ) && $params[ 'purge' ] ) { + $flags |= MessageGroupStats::FLAG_NO_CACHE; + } + + if ( isset( $params[ 'groupid' ] ) ) { + MessageGroupStats::forGroup( $params[ 'groupid' ], $flags ); + } + if ( isset( $params[ 'languagecode' ] ) ) { + MessageGroupStats::forGroup( $params[ 'languagecode' ], $flags ); + } + + return true; + } +} |