Merge branch '5.5'
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / bootstrap / com.woltlab.wcf.php
1 <?php
2
3 use wcf\system\cronjob\CronjobScheduler;
4 use wcf\system\event\EventHandler;
5 use wcf\system\event\listener\PhraseChangedPreloadListener;
6 use wcf\system\event\listener\PipSyncedPhrasePreloadListener;
7 use wcf\system\event\listener\PreloadPhrasesCollectingListener;
8 use wcf\system\event\listener\UserLoginCancelLostPasswordListener;
9 use wcf\system\event\listener\UsernameValidatingCheckCharactersListener;
10 use wcf\system\language\event\LanguageImported;
11 use wcf\system\language\event\PhraseChanged;
12 use wcf\system\language\LanguageFactory;
13 use wcf\system\language\preload\command\ResetPreloadCache;
14 use wcf\system\language\preload\event\PreloadPhrasesCollecting;
15 use wcf\system\language\preload\PhrasePreloader;
16 use wcf\system\package\event\PackageInstallationPluginSynced;
17 use wcf\system\package\event\PackageListChanged;
18 use wcf\system\user\authentication\event\UserLoggedIn;
19 use wcf\system\user\event\UsernameValidating;
20 use wcf\system\WCF;
21 use wcf\system\worker\event\RebuildWorkerCollecting;
22
23 return static function (): void {
24 $eventHandler = EventHandler::getInstance();
25
26 WCF::getTPL()->assign(
27 'executeCronjobs',
28 CronjobScheduler::getInstance()->getNextExec() < TIME_NOW && \defined('OFFLINE') && !OFFLINE
29 );
30
31 $eventHandler->register(UserLoggedIn::class, UserLoginCancelLostPasswordListener::class);
32
33 $eventHandler->register(UsernameValidating::class, UsernameValidatingCheckCharactersListener::class);
34
35 $eventHandler->register(PackageListChanged::class, static function () {
36 foreach (LanguageFactory::getInstance()->getLanguages() as $language) {
37 $command = new ResetPreloadCache($language);
38 $command();
39 }
40 });
41 $eventHandler->register(LanguageImported::class, static function (LanguageImported $event) {
42 $command = new ResetPreloadCache($event->language);
43 $command();
44 });
45 $eventHandler->register(PhraseChanged::class, PhraseChangedPreloadListener::class);
46 $eventHandler->register(PackageInstallationPluginSynced::class, PipSyncedPhrasePreloadListener::class);
47 WCF::getTPL()->assign('phrasePreloader', new PhrasePreloader());
48 $eventHandler->register(PreloadPhrasesCollecting::class, PreloadPhrasesCollectingListener::class);
49
50 $eventHandler->register(RebuildWorkerCollecting::class, static function (RebuildWorkerCollecting $event) {
51 $event->register(\wcf\system\worker\LikeRebuildDataWorker::class, -100);
52 $event->register(\wcf\system\worker\ArticleRebuildDataWorker::class, 50);
53 $event->register(\wcf\system\worker\PageRebuildDataWorker::class, 50);
54 $event->register(\wcf\system\worker\PollRebuildDataWorker::class, 60);
55 $event->register(\wcf\system\worker\UserActivityPointUpdateEventsWorker::class, 65);
56 $event->register(\wcf\system\worker\UserRebuildDataWorker::class, 70);
57 $event->register(\wcf\system\worker\UserActivityPointItemsRebuildDataWorker::class, 75);
58 $event->register(\wcf\system\worker\CommentRebuildDataWorker::class, 120);
59 $event->register(\wcf\system\worker\CommentResponseRebuildDataWorker::class, 121);
60 $event->register(\wcf\system\worker\AttachmentRebuildDataWorker::class, 450);
61 $event->register(\wcf\system\worker\MediaRebuildDataWorker::class, 450);
62 $event->register(\wcf\system\worker\SitemapRebuildWorker::class, 500);
63 $event->register(\wcf\system\worker\StatDailyRebuildDataWorker::class, 800);
64 });
65 };