Updating minified JavaScript files
[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;
cefdae5a 5use wcf\system\language\LanguageFactory;
72b14b62 6use wcf\system\language\preload\command\ResetPreloadCache;
67dd12f1 7use wcf\system\language\preload\PhrasePreloader;
0f5abeda 8use wcf\system\package\license\LicenseApi;
ac3f9f47 9use wcf\system\user\authentication\LoginRedirect;
a87f05e3 10use wcf\system\WCF;
921a5a56 11
2bdb96d3 12return static function (): void {
252f3bc2
TD
13 $eventHandler = EventHandler::getInstance();
14
a87f05e3
TD
15 WCF::getTPL()->assign(
16 'executeCronjobs',
17 CronjobScheduler::getInstance()->getNextExec() < TIME_NOW && \defined('OFFLINE') && !OFFLINE
18 );
cbb6cd3a 19
b4ae02cc
MW
20 $eventHandler->register(
21 \wcf\event\user\authentication\UserLoggedIn::class,
22 \wcf\system\event\listener\UserLoginCancelLostPasswordListener::class
23 );
24 $eventHandler->register(
25 \wcf\event\session\PreserveVariablesCollecting::class,
26 static function (\wcf\event\session\PreserveVariablesCollecting $event) {
27 $event->keys[] = LoginRedirect::SESSION_VAR_KEY;
28 }
29 );
cbad026e 30
b4ae02cc
MW
31 $eventHandler->register(
32 \wcf\event\user\UsernameValidating::class,
33 \wcf\system\event\listener\UsernameValidatingCheckCharactersListener::class
34 );
d93e2f9b 35
367d4d78
MW
36 $eventHandler->register(
37 \wcf\event\user\RegistrationSpamChecking::class,
38 \wcf\system\event\listener\RegistrationSpamCheckingSfsListener::class
39 );
8f77557a
MW
40 $eventHandler->register(
41 \wcf\event\page\ContactFormSpamChecking::class,
42 \wcf\system\event\listener\ContactFormSpamCheckingSfsListener::class
43 );
55d03611
MW
44 $eventHandler->register(
45 \wcf\event\message\MessageSpamChecking::class,
46 \wcf\system\event\listener\MessageSpamCheckingSfsListener::class
47 );
367d4d78 48
b4ae02cc
MW
49 $eventHandler->register(
50 \wcf\event\package\PackageListChanged::class,
51 static function () {
52 foreach (LanguageFactory::getInstance()->getLanguages() as $language) {
53 $command = new ResetPreloadCache($language);
54 $command();
55 }
56 }
57 );
58 $eventHandler->register(
59 \wcf\event\language\LanguageImported::class,
60 static function (\wcf\event\language\LanguageImported $event) {
61 $command = new ResetPreloadCache($event->language);
cefdae5a
AE
62 $command();
63 }
b4ae02cc
MW
64 );
65 $eventHandler->register(
66 \wcf\event\language\PhraseChanged::class,
67 \wcf\system\event\listener\PhraseChangedPreloadListener::class
68 );
69 $eventHandler->register(
70 \wcf\event\package\PackageInstallationPluginSynced::class,
71 \wcf\system\event\listener\PipSyncedPhrasePreloadListener::class
72 );
67dd12f1 73 WCF::getTPL()->assign('phrasePreloader', new PhrasePreloader());
b4ae02cc
MW
74 $eventHandler->register(
75 \wcf\event\language\PreloadPhrasesCollecting::class,
76 \wcf\system\event\listener\PreloadPhrasesCollectingListener::class
77 );
73df173e 78
b4ae02cc
MW
79 $eventHandler->register(
80 \wcf\event\worker\RebuildWorkerCollecting::class,
81 static function (\wcf\event\worker\RebuildWorkerCollecting $event) {
82 $event->register(\wcf\system\worker\LikeRebuildDataWorker::class, -100);
83 $event->register(\wcf\system\worker\ArticleRebuildDataWorker::class, 50);
84 $event->register(\wcf\system\worker\PageRebuildDataWorker::class, 50);
85 $event->register(\wcf\system\worker\PollRebuildDataWorker::class, 60);
86 $event->register(\wcf\system\worker\UserActivityPointUpdateEventsWorker::class, 65);
87 $event->register(\wcf\system\worker\UserRebuildDataWorker::class, 70);
88 $event->register(\wcf\system\worker\UserActivityPointItemsRebuildDataWorker::class, 75);
89 $event->register(\wcf\system\worker\CommentRebuildDataWorker::class, 120);
90 $event->register(\wcf\system\worker\CommentResponseRebuildDataWorker::class, 121);
91 $event->register(\wcf\system\worker\AttachmentRebuildDataWorker::class, 450);
92 $event->register(\wcf\system\worker\MediaRebuildDataWorker::class, 450);
2b727435 93 $event->register(\wcf\system\worker\FileRebuildDataWorker::class, 475);
b4ae02cc
MW
94 $event->register(\wcf\system\worker\SitemapRebuildWorker::class, 500);
95 $event->register(\wcf\system\worker\StatDailyRebuildDataWorker::class, 800);
96 }
97 );
0f5abeda 98
b4ae02cc
MW
99 $eventHandler->register(
100 \wcf\event\package\PackageUpdateListChanged::class,
101 \wcf\system\event\listener\PackageUpdateListChangedLicenseListener::class
102 );
e2c606e2 103
b4ae02cc
MW
104 $eventHandler->register(
105 \wcf\event\acp\dashboard\box\BoxCollecting::class,
106 static function (\wcf\event\acp\dashboard\box\BoxCollecting $event) {
107 $event->register(new \wcf\system\acp\dashboard\box\NewsAcpDashboardBox());
108 $event->register(new \wcf\system\acp\dashboard\box\StatusMessageAcpDashboardBox());
109 $event->register(new \wcf\system\acp\dashboard\box\ExpiringLicensesAcpDashboardBox());
110 $event->register(new \wcf\system\acp\dashboard\box\UsersAwaitingApprovalAcpDashboardBox());
111 $event->register(new \wcf\system\acp\dashboard\box\SystemInfoAcpDashboardBox());
112 $event->register(new \wcf\system\acp\dashboard\box\CreditsAcpDashboardBox());
113 }
114 );
e4e0b1e5 115
b4ae02cc
MW
116 $eventHandler->register(
117 \wcf\event\endpoint\ControllerCollecting::class,
118 static function (\wcf\event\endpoint\ControllerCollecting $event) {
83a5e848 119 $event->register(new \wcf\system\endpoint\controller\core\files\DeleteFile);
9e196bca
AE
120 $event->register(new \wcf\system\endpoint\controller\core\files\GenerateThumbnails);
121 $event->register(new \wcf\system\endpoint\controller\core\files\PrepareUpload);
122 $event->register(new \wcf\system\endpoint\controller\core\files\upload\SaveChunk);
38b74960
MW
123 $event->register(new \wcf\system\endpoint\controller\core\comments\CreateComment);
124 $event->register(new \wcf\system\endpoint\controller\core\comments\DeleteComment);
125 $event->register(new \wcf\system\endpoint\controller\core\comments\EditComment);
126 $event->register(new \wcf\system\endpoint\controller\core\comments\EnableComment);
127 $event->register(new \wcf\system\endpoint\controller\core\comments\RenderComments);
128 $event->register(new \wcf\system\endpoint\controller\core\comments\RenderComment);
129 $event->register(new \wcf\system\endpoint\controller\core\comments\UpdateComment);
130 $event->register(new \wcf\system\endpoint\controller\core\comments\responses\CreateResponse);
131 $event->register(new \wcf\system\endpoint\controller\core\comments\responses\DeleteResponse);
132 $event->register(new \wcf\system\endpoint\controller\core\comments\responses\EditResponse);
133 $event->register(new \wcf\system\endpoint\controller\core\comments\responses\EnableResponse);
134 $event->register(new \wcf\system\endpoint\controller\core\comments\responses\RenderResponse);
135 $event->register(new \wcf\system\endpoint\controller\core\comments\responses\RenderResponses);
136 $event->register(new \wcf\system\endpoint\controller\core\comments\responses\UpdateResponse);
b4ae02cc
MW
137 $event->register(new \wcf\system\endpoint\controller\core\messages\GetMentionSuggestions);
138 $event->register(new \wcf\system\endpoint\controller\core\sessions\DeleteSession);
139 }
140 );
156ca27e 141
0f5abeda 142 try {
895acf5e
TD
143 $licenseApi = new LicenseApi();
144 $licenseData = $licenseApi->readFromFile();
19781b8e 145 if ($licenseData !== null) {
974f0363
TD
146 $brandingFree = $licenseData->woltlab['com.woltlab.brandingFree'] ?? '0.0';
147 $expiresAt = $licenseData->license['expiryDates']['com.woltlab.brandingFree'] ?? \TIME_NOW;
5a018069 148 if ($brandingFree !== '0.0' && ($expiresAt === -1 || $expiresAt >= \TIME_NOW)) {
0f5abeda
AE
149 define('WOLTLAB_BRANDING', false);
150 }
9fa3273f
TD
151
152 // Expire the cached license data after 60 days.
153 if ($licenseData->creationDate->getTimestamp() < \TIME_NOW - 86400 * 60) {
154 $licenseApi->clearLicenseFile();
155 }
0f5abeda
AE
156 }
157 } catch (\Throwable) {
158 // Reading the license file must never cause any errors.
159 }
160
161 if (!defined('WOLTLAB_BRANDING')) {
162 define('WOLTLAB_BRANDING', true);
163 }
921a5a56 164};