Skip to content

Commit 830765e

Browse files
committed
Fix the WCFSetup
1 parent 221ef0f commit 830765e

4 files changed

Lines changed: 25 additions & 25 deletions

File tree

wcfsetup/install/files/lib/bootstrap/com.woltlab.wcf.php

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@
1616
return static function (): void {
1717
$eventHandler = EventHandler::getInstance();
1818

19-
WCF::getTPL()->assign(
20-
'executeCronjobs',
21-
CronjobScheduler::getInstance()->getNextExec() < TIME_NOW && \defined('OFFLINE') && !OFFLINE
22-
);
19+
$cronjobNextExec = CronjobScheduler::getInstance()->getNextExec();
20+
if ($cronjobNextExec !== null) {
21+
WCF::getTPL()->assign(
22+
'executeCronjobs',
23+
$cronjobNextExec < TIME_NOW && \defined('OFFLINE') && !OFFLINE
24+
);
25+
}
2326

2427
$eventHandler->register(
2528
\wcf\event\user\authentication\UserLoggedIn::class,
@@ -259,7 +262,8 @@ static function (\wcf\event\endpoint\ControllerCollecting $event) {
259262
}
260263
);
261264

262-
if (MODULE_CONTACT_FORM) {
265+
// The options are not available while the WCFSetup process has not yet completed.
266+
if (defined('MODULE_CONTACT_FORM') && MODULE_CONTACT_FORM) {
263267
$eventHandler->register(ItemCollecting::class, static function (ItemCollecting $event) {
264268
if (!WCF::getSession()->getPermission("admin.contact.canManageContactForm")) {
265269
return;

wcfsetup/install/files/lib/system/WCFSetup.class.php

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -769,16 +769,22 @@ protected function installLanguage(): ResponseInterface
769769
LanguageEditor::importFromXML($xml, 1);
770770
}
771771

772-
// set default language
773-
$language = LanguageFactory::getInstance()->getLanguageByCode(
774-
\in_array(
775-
self::$selectedLanguageCode,
776-
$languageCodes
777-
) ? self::$selectedLanguageCode : $languageCodes[0]
778-
);
779-
LanguageFactory::getInstance()->makeDefault($language->languageID);
772+
$defaultLanguageCode = \in_array(
773+
self::$selectedLanguageCode,
774+
$languageCodes
775+
) ? self::$selectedLanguageCode : $languageCodes[0];
776+
777+
$sql = "UPDATE wcf1_language
778+
SET isDefault = ?
779+
WHERE languageCode = ?";
780+
$statement = WCF::getDB()->prepare($sql);
781+
$statement->execute([
782+
1,
783+
$defaultLanguageCode,
784+
]);
785+
786+
\assert($statement->getAffectedRows() === 1);
780787

781-
// rebuild language cache
782788
(new LanguageCache())->rebuild();
783789

784790
return $this->gotoNextStep('createUser');

wcfsetup/install/files/lib/system/cronjob/CronjobScheduler.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ public function executeCronjobs(): void
107107
/**
108108
* Returns the next execution time.
109109
*/
110-
public function getNextExec(): int
110+
public function getNextExec(): ?int
111111
{
112112
return $this->cache['nextExec'];
113113
}

wcfsetup/install/files/lib/system/language/LanguageFactory.class.php

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,6 @@ public function getUserLanguage(?int $languageID = null): Language
7272
*/
7373
public function getLanguageByCode(string $languageCode): ?Language
7474
{
75-
if ($this->cache->codes === []) {
76-
// called within WCFSetup
77-
$sql = "SELECT *
78-
FROM wcf1_language
79-
WHERE languageCode = ?";
80-
$statement = WCF::getDB()->prepare($sql);
81-
$statement->execute([$languageCode]);
82-
return $statement->fetchObject(Language::class);
83-
}
84-
8575
return $this->cache->getLanguageByCode($languageCode);
8676
}
8777

0 commit comments

Comments
 (0)