-
Notifications
You must be signed in to change notification settings - Fork 147
Expand file tree
/
Copy pathcom.woltlab.wcf.php
More file actions
200 lines (186 loc) · 11.6 KB
/
com.woltlab.wcf.php
File metadata and controls
200 lines (186 loc) · 11.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<?php
use wcf\system\cronjob\CronjobScheduler;
use wcf\system\event\EventHandler;
use wcf\system\language\LanguageFactory;
use wcf\system\language\preload\command\ResetPreloadCache;
use wcf\system\language\preload\PhrasePreloader;
use wcf\system\package\license\LicenseApi;
use wcf\system\user\authentication\LoginRedirect;
use wcf\system\WCF;
return static function (): void {
$eventHandler = EventHandler::getInstance();
WCF::getTPL()->assign(
'executeCronjobs',
CronjobScheduler::getInstance()->getNextExec() < TIME_NOW && \defined('OFFLINE') && !OFFLINE
);
$eventHandler->register(
\wcf\event\user\authentication\UserLoggedIn::class,
\wcf\system\event\listener\UserLoginCancelLostPasswordListener::class
);
$eventHandler->register(
\wcf\event\session\PreserveVariablesCollecting::class,
static function (\wcf\event\session\PreserveVariablesCollecting $event) {
$event->keys[] = LoginRedirect::SESSION_VAR_KEY;
}
);
$eventHandler->register(
\wcf\event\user\UsernameValidating::class,
\wcf\system\event\listener\UsernameValidatingCheckCharactersListener::class
);
$eventHandler->register(
\wcf\event\user\RegistrationSpamChecking::class,
\wcf\system\event\listener\RegistrationSpamCheckingSfsListener::class
);
$eventHandler->register(
\wcf\event\page\ContactFormSpamChecking::class,
\wcf\system\event\listener\ContactFormSpamCheckingSfsListener::class
);
$eventHandler->register(
\wcf\event\message\MessageSpamChecking::class,
\wcf\system\event\listener\MessageSpamCheckingSfsListener::class
);
$eventHandler->register(
\wcf\event\package\PackageListChanged::class,
static function () {
foreach (LanguageFactory::getInstance()->getLanguages() as $language) {
$command = new ResetPreloadCache($language);
$command();
}
}
);
$eventHandler->register(
\wcf\event\language\LanguageImported::class,
static function (\wcf\event\language\LanguageImported $event) {
$command = new ResetPreloadCache($event->language);
$command();
}
);
$eventHandler->register(
\wcf\event\language\PhraseChanged::class,
\wcf\system\event\listener\PhraseChangedPreloadListener::class
);
$eventHandler->register(
\wcf\event\package\PackageInstallationPluginSynced::class,
\wcf\system\event\listener\PipSyncedPhrasePreloadListener::class
);
WCF::getTPL()->assign('phrasePreloader', new PhrasePreloader());
$eventHandler->register(
\wcf\event\language\PreloadPhrasesCollecting::class,
\wcf\system\event\listener\PreloadPhrasesCollectingListener::class
);
$eventHandler->register(
\wcf\event\worker\RebuildWorkerCollecting::class,
static function (\wcf\event\worker\RebuildWorkerCollecting $event) {
$event->register(\wcf\system\worker\LikeRebuildDataWorker::class, -100);
$event->register(\wcf\system\worker\ArticleRebuildDataWorker::class, 50);
$event->register(\wcf\system\worker\PageRebuildDataWorker::class, 50);
$event->register(\wcf\system\worker\PollRebuildDataWorker::class, 60);
$event->register(\wcf\system\worker\UserActivityPointUpdateEventsWorker::class, 65);
$event->register(\wcf\system\worker\UserRebuildDataWorker::class, 70);
$event->register(\wcf\system\worker\UserActivityPointItemsRebuildDataWorker::class, 75);
$event->register(\wcf\system\worker\CommentRebuildDataWorker::class, 120);
$event->register(\wcf\system\worker\CommentResponseRebuildDataWorker::class, 121);
$event->register(\wcf\system\worker\AttachmentRebuildDataWorker::class, 450);
$event->register(\wcf\system\worker\MediaRebuildDataWorker::class, 450);
$event->register(\wcf\system\worker\UnfurlUrlRebuildDataWorker::class, 450);
$event->register(\wcf\system\worker\FileRebuildDataWorker::class, 475);
$event->register(\wcf\system\worker\SitemapRebuildWorker::class, 500);
$event->register(\wcf\system\worker\StatDailyRebuildDataWorker::class, 800);
}
);
$eventHandler->register(
\wcf\event\package\PackageUpdateListChanged::class,
\wcf\system\event\listener\PackageUpdateListChangedLicenseListener::class
);
$eventHandler->register(
\wcf\event\acp\dashboard\box\BoxCollecting::class,
static function (\wcf\event\acp\dashboard\box\BoxCollecting $event) {
$event->register(new \wcf\system\acp\dashboard\box\NewsAcpDashboardBox());
$event->register(new \wcf\system\acp\dashboard\box\StatusMessageAcpDashboardBox());
$event->register(new \wcf\system\acp\dashboard\box\ExpiringLicensesAcpDashboardBox());
$event->register(new \wcf\system\acp\dashboard\box\UsersAwaitingApprovalAcpDashboardBox());
$event->register(new \wcf\system\acp\dashboard\box\SystemInfoAcpDashboardBox());
$event->register(new \wcf\system\acp\dashboard\box\CreditsAcpDashboardBox());
}
);
$eventHandler->register(
\wcf\event\endpoint\ControllerCollecting::class,
static function (\wcf\event\endpoint\ControllerCollecting $event) {
$event->register(new \wcf\system\endpoint\controller\core\articles\GetArticlePopover());
$event->register(new \wcf\system\endpoint\controller\core\files\DeleteFile());
$event->register(new \wcf\system\endpoint\controller\core\files\GenerateThumbnails());
$event->register(new \wcf\system\endpoint\controller\core\files\PrepareUpload());
$event->register(new \wcf\system\endpoint\controller\core\files\upload\SaveChunk());
$event->register(new \wcf\system\endpoint\controller\core\comments\CreateComment());
$event->register(new \wcf\system\endpoint\controller\core\comments\DeleteComment());
$event->register(new \wcf\system\endpoint\controller\core\comments\EditComment());
$event->register(new \wcf\system\endpoint\controller\core\comments\EnableComment());
$event->register(new \wcf\system\endpoint\controller\core\comments\RenderComments());
$event->register(new \wcf\system\endpoint\controller\core\comments\RenderComment());
$event->register(new \wcf\system\endpoint\controller\core\comments\UpdateComment());
$event->register(new \wcf\system\endpoint\controller\core\comments\responses\CreateResponse());
$event->register(new \wcf\system\endpoint\controller\core\comments\responses\DeleteResponse());
$event->register(new \wcf\system\endpoint\controller\core\comments\responses\EditResponse());
$event->register(new \wcf\system\endpoint\controller\core\comments\responses\EnableResponse());
$event->register(new \wcf\system\endpoint\controller\core\comments\responses\RenderResponse());
$event->register(new \wcf\system\endpoint\controller\core\comments\responses\RenderResponses());
$event->register(new \wcf\system\endpoint\controller\core\comments\responses\UpdateResponse());
$event->register(new \wcf\system\endpoint\controller\core\exceptions\RenderException());
$event->register(new \wcf\system\endpoint\controller\core\gridViews\GetRows());
$event->register(new \wcf\system\endpoint\controller\core\gridViews\GetRow());
$event->register(new \wcf\system\endpoint\controller\core\cronjobs\logs\ClearLogs());
$event->register(new \wcf\system\endpoint\controller\core\messages\GetMentionSuggestions());
$event->register(new \wcf\system\endpoint\controller\core\messages\RenderQuote());
$event->register(new \wcf\system\endpoint\controller\core\messages\GetMessageAuthor());
$event->register(new \wcf\system\endpoint\controller\core\messages\ResetRemovalQuotes());
$event->register(new \wcf\system\endpoint\controller\core\sessions\DeleteSession());
$event->register(new \wcf\system\endpoint\controller\core\versionTrackers\RevertVersion());
$event->register(new \wcf\system\endpoint\controller\core\moderationQueues\ChangeJustifiedStatus());
$event->register(new \wcf\system\endpoint\controller\core\moderationQueues\CloseReport());
$event->register(new \wcf\system\endpoint\controller\core\moderationQueues\DeleteContent());
$event->register(new \wcf\system\endpoint\controller\core\moderationQueues\EnableContent());
$event->register(new \wcf\system\endpoint\controller\core\users\options\DeleteOption());
$event->register(new \wcf\system\endpoint\controller\core\users\options\DisableOption());
$event->register(new \wcf\system\endpoint\controller\core\users\options\EnableOption());
$event->register(new \wcf\system\endpoint\controller\core\users\ranks\DeleteUserRank());
$event->register(new \wcf\system\endpoint\controller\core\interactions\GetBulkContextMenuOptions());
$event->register(new \wcf\system\endpoint\controller\core\interactions\GetContextMenuOptions());
$event->register(new \wcf\system\endpoint\controller\core\articles\DeleteArticle());
$event->register(new \wcf\system\endpoint\controller\core\articles\TrashArticle());
$event->register(new \wcf\system\endpoint\controller\core\articles\RestoreArticle());
$event->register(new \wcf\system\endpoint\controller\core\articles\PublishArticle());
$event->register(new \wcf\system\endpoint\controller\core\articles\UnpublishArticle());
$event->register(new \wcf\system\endpoint\controller\core\attachments\DeleteAttachment());
$event->register(new \wcf\system\endpoint\controller\core\cronjobs\EnableCronjob());
$event->register(new \wcf\system\endpoint\controller\core\cronjobs\DisableCronjob());
$event->register(new \wcf\system\endpoint\controller\core\cronjobs\DeleteCronjob());
$event->register(new \wcf\system\endpoint\controller\core\cronjobs\ExecuteCronjob());
$event->register(new \wcf\system\endpoint\controller\core\captchas\questions\EnableQuestion());
$event->register(new \wcf\system\endpoint\controller\core\captchas\questions\DisableQuestion());
$event->register(new \wcf\system\endpoint\controller\core\captchas\questions\DeleteQuestion());
$event->register(new \wcf\system\endpoint\controller\core\boxes\DisableBox());
$event->register(new \wcf\system\endpoint\controller\core\boxes\EnableBox());
$event->register(new \wcf\system\endpoint\controller\core\boxes\DeleteBox());
}
);
try {
$licenseApi = new LicenseApi();
$licenseData = $licenseApi->readFromFile();
if ($licenseData !== null) {
$brandingFree = $licenseData->woltlab['com.woltlab.brandingFree'] ?? '0.0';
$expiresAt = $licenseData->license['expiryDates']['com.woltlab.brandingFree'] ?? \TIME_NOW;
if ($brandingFree !== '0.0' && ($expiresAt === -1 || $expiresAt >= \TIME_NOW)) {
define('WOLTLAB_BRANDING', false);
}
// Expire the cached license data after 60 days.
if ($licenseData->creationDate->getTimestamp() < \TIME_NOW - 86400 * 60) {
$licenseApi->clearLicenseFile();
}
}
} catch (\Throwable) {
// Reading the license file must never cause any errors.
}
if (!defined('WOLTLAB_BRANDING')) {
define('WOLTLAB_BRANDING', true);
}
};