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
;
21 use wcf\system\worker\event\RebuildWorkerCollecting
;
23 return static function (): void
{
24 $eventHandler = EventHandler
::getInstance();
26 WCF
::getTPL()->assign(
28 CronjobScheduler
::getInstance()->getNextExec() < TIME_NOW
&& \
defined('OFFLINE') && !OFFLINE
31 $eventHandler->register(UserLoggedIn
::class, UserLoginCancelLostPasswordListener
::class);
33 $eventHandler->register(UsernameValidating
::class, UsernameValidatingCheckCharactersListener
::class);
35 $eventHandler->register(PackageListChanged
::class, static function () {
36 foreach (LanguageFactory
::getInstance()->getLanguages() as $language) {
37 $command = new ResetPreloadCache($language);
41 $eventHandler->register(LanguageImported
::class, static function (LanguageImported
$event) {
42 $command = new ResetPreloadCache($event->language
);
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);
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);