Allow programmatically collecting rebuild workers
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / bootstrap / com.woltlab.wcf.php
CommitLineData
921a5a56
TD
1<?php
2
a87f05e3 3use wcf\system\cronjob\CronjobScheduler;
cbb6cd3a 4use wcf\system\event\EventHandler;
72b14b62 5use wcf\system\event\listener\PhraseChangedPreloadListener;
3476fff9 6use wcf\system\event\listener\PipSyncedPhrasePreloadListener;
a66ffe10 7use wcf\system\event\listener\PreloadPhrasesCollectingListener;
cbb6cd3a 8use wcf\system\event\listener\UserLoginCancelLostPasswordListener;
e25082fb 9use wcf\system\language\event\LanguageImported;
72b14b62 10use wcf\system\language\event\PhraseChanged;
cefdae5a 11use wcf\system\language\LanguageFactory;
72b14b62 12use wcf\system\language\preload\command\ResetPreloadCache;
5492c8f9 13use wcf\system\language\preload\event\PreloadPhrasesCollecting;
67dd12f1 14use wcf\system\language\preload\PhrasePreloader;
3476fff9 15use wcf\system\package\event\PackageInstallationPluginSynced;
cefdae5a 16use wcf\system\package\event\PackageListChanged;
cbb6cd3a 17use wcf\system\user\authentication\event\UserLoggedIn;
a87f05e3 18use wcf\system\WCF;
921a5a56 19
2bdb96d3 20return static function (): void {
a87f05e3
TD
21 WCF::getTPL()->assign(
22 'executeCronjobs',
23 CronjobScheduler::getInstance()->getNextExec() < TIME_NOW && \defined('OFFLINE') && !OFFLINE
24 );
cbb6cd3a
TD
25
26 EventHandler::getInstance()->register(UserLoggedIn::class, UserLoginCancelLostPasswordListener::class);
cbad026e 27
e25082fb 28 EventHandler::getInstance()->register(PackageListChanged::class, static function () {
cefdae5a 29 foreach (LanguageFactory::getInstance()->getLanguages() as $language) {
72b14b62 30 $command = new ResetPreloadCache($language);
cefdae5a
AE
31 $command();
32 }
33 });
e25082fb
AE
34 EventHandler::getInstance()->register(LanguageImported::class, static function (LanguageImported $event) {
35 $command = new ResetPreloadCache($event->language);
36 $command();
37 });
72b14b62 38 EventHandler::getInstance()->register(PhraseChanged::class, PhraseChangedPreloadListener::class);
3476fff9 39 EventHandler::getInstance()->register(PackageInstallationPluginSynced::class, PipSyncedPhrasePreloadListener::class);
67dd12f1 40 WCF::getTPL()->assign('phrasePreloader', new PhrasePreloader());
a66ffe10 41 EventHandler::getInstance()->register(PreloadPhrasesCollecting::class, PreloadPhrasesCollectingListener::class);
921a5a56 42};