Skip to content

Commit 8897a3a

Browse files
committed
Set null as monolingual langaugeID
1 parent 448aa14 commit 8897a3a

File tree

5 files changed

+16
-8
lines changed

5 files changed

+16
-8
lines changed

wcfsetup/install/files/acp/database/update_com.woltlab.wcf_6.2_step1.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@
1111
use wcf\system\database\table\column\IntDatabaseTableColumn;
1212
use wcf\system\database\table\column\MediumtextDatabaseTableColumn;
1313
use wcf\system\database\table\column\NotNullVarchar255DatabaseTableColumn;
14+
use wcf\system\database\table\column\ObjectIdDatabaseTableColumn;
1415
use wcf\system\database\table\DatabaseTable;
1516
use wcf\system\database\table\index\DatabaseTableForeignKey;
17+
use wcf\system\database\table\index\DatabaseTableIndex;
1618
use wcf\system\database\table\index\DatabaseTablePrimaryIndex;
1719
use wcf\system\database\table\PartialDatabaseTable;
1820

@@ -61,14 +63,17 @@
6163
]),
6264
DatabaseTable::create('wcf1_user_rank_content')
6365
->columns([
66+
ObjectIdDatabaseTableColumn::create('contentID'),
6467
IntDatabaseTableColumn::create('rankID')
6568
->notNull(),
66-
IntDatabaseTableColumn::create('languageID')
67-
->notNull(),
69+
IntDatabaseTableColumn::create('languageID'),
6870
NotNullVarchar255DatabaseTableColumn::create('title'),
6971
])
7072
->indices([
7173
DatabaseTablePrimaryIndex::create()
74+
->columns(['contentID']),
75+
DatabaseTableIndex::create('id')
76+
->type(DatabaseTableIndex::UNIQUE_TYPE)
7277
->columns(['rankID', 'languageID']),
7378
])
7479
->foreignKeys([

wcfsetup/install/files/lib/data/user/rank/UserRank.class.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,13 @@ protected function loadTitles(): void
9090
/**
9191
* @since 6.2
9292
*/
93-
public function setRankTitle(int $languageID, string $title): void
93+
public function setRankTitle(?int $languageID, string $title): void
9494
{
9595
if (!isset($this->titles)) {
9696
$this->titles = [];
9797
}
9898

99-
$this->titles[$languageID] = $title;
99+
$this->titles[$languageID ?: 0] = $title;
100100
}
101101

102102
/**

wcfsetup/install/files/lib/system/form/builder/field/TI18nFormField.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ function (IFormDocument $document, array $parameters) {
391391
if ($this->hasI18nValues()) {
392392
$values = $this->getValue();
393393
} else {
394-
$values[LanguageFactory::getInstance()->getDefaultLanguageID()] = $this->getValue();
394+
$values[0] = $this->getValue();
395395
}
396396

397397
$parameters[$this->getObjectProperty()] = $values;

wcfsetup/install/files/lib/system/user/rank/command/SaveContent.class.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ private function saveContent(int $rankID, array $titles): void
5252
$statement = WCF::getDB()->prepare($sql);
5353

5454
foreach ($titles as $languageID => $title) {
55-
$statement->execute([$rankID, $languageID, $title]);
55+
$statement->execute([$rankID, $languageID ?: null, $title]);
5656
}
5757
}
5858
}

wcfsetup/setup/db/install.sql

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1960,10 +1960,13 @@ CREATE TABLE wcf1_user_rank (
19601960

19611961
DROP TABLE IF EXISTS wcf1_user_rank_content;
19621962
CREATE TABLE wcf1_user_rank_content (
1963+
contentID INT(10) NOT NULL AUTO_INCREMENT,
19631964
rankID INT NOT NULL,
1964-
languageID INT NOT NULL,
1965+
languageID INT,
19651966
title VARCHAR(255) NOT NULL,
1966-
PRIMARY KEY (rankID, languageID)
1967+
1968+
PRIMARY KEY(contentID),
1969+
UNIQUE KEY id (rankID, languageID)
19671970
);
19681971

19691972
DROP TABLE IF EXISTS wcf1_user_session;

0 commit comments

Comments
 (0)