Skip to content

Commit cad3d60

Browse files
committed
Sorting my langauge value or monolingual value
1 parent c6026b3 commit cad3d60

File tree

2 files changed

+30
-4
lines changed

2 files changed

+30
-4
lines changed

wcfsetup/install/files/lib/system/gridView/admin/ContactOptionGridView.class.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public function __construct()
4747
->renderer(new PhraseColumnRenderer())
4848
->filter(new I18nTextFilter())
4949
->titleColumn()
50-
->sortable(),
50+
->sortable(sortByDatabaseColumn: $this->subqueryOptionTitle()),
5151
GridViewColumn::for("optionType")
5252
->label("wcf.acp.customOption.optionType")
5353
->filter(new SelectFilter(FormOptionHandler::getInstance()->getSortedOptionTypes()))
@@ -82,10 +82,23 @@ public function isAccessible(): bool
8282
#[\Override]
8383
protected function createObjectList(): ContactOptionList
8484
{
85-
// TODO 18n list
8685
return new ContactOptionList();
8786
}
8887

88+
private function subqueryOptionTitle(): string
89+
{
90+
$languageID = WCF::getLanguage()->languageID;
91+
92+
return "
93+
COALESCE((
94+
SELECT languageItemValue
95+
FROM wcf1_language_item
96+
WHERE languageItem = contact_option.optionTitle
97+
AND languageID = {$languageID}
98+
), contact_option.optionTitle)
99+
";
100+
}
101+
89102
#[\Override]
90103
protected function getInitializedEvent(): ContactOptionGridViewInitialized
91104
{

wcfsetup/install/files/lib/system/gridView/admin/ContactRecipientGridView.class.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public function __construct()
4646
->filter(new I18nTextFilter())
4747
->titleColumn()
4848
->renderer(new PhraseColumnRenderer())
49-
->sortable(),
49+
->sortable(sortByDatabaseColumn: $this->subqueryName()),
5050
GridViewColumn::for("email")
5151
->label("wcf.user.email")
5252
->renderer(new EmailColumnRenderer())
@@ -81,10 +81,23 @@ public function isAccessible(): bool
8181
#[\Override]
8282
protected function createObjectList(): ContactRecipientList
8383
{
84-
// TODO 18n list
8584
return new ContactRecipientList();
8685
}
8786

87+
private function subqueryName(): string
88+
{
89+
$languageID = WCF::getLanguage()->languageID;
90+
91+
return "
92+
COALESCE((
93+
SELECT languageItemValue
94+
FROM wcf1_language_item
95+
WHERE languageItem = contact_recipient.name
96+
AND languageID = {$languageID}
97+
), contact_recipient.name)
98+
";
99+
}
100+
88101
#[\Override]
89102
protected function getInitializedEvent(): ContactRecipientGridViewInitialized
90103
{

0 commit comments

Comments
 (0)