Skip to content

Commit c5e6313

Browse files
committed
Add category filter
1 parent fa3838a commit c5e6313

File tree

2 files changed

+22
-3
lines changed

2 files changed

+22
-3
lines changed

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

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use wcf\acp\action\LanguageItemEditAction;
66
use wcf\data\DatabaseObject;
77
use wcf\data\DatabaseObjectList;
8+
use wcf\data\language\category\LanguageCategoryList;
89
use wcf\data\language\item\LanguageItem;
910
use wcf\data\language\item\LanguageItemList;
1011
use wcf\data\language\Language;
@@ -55,6 +56,13 @@ public function render(mixed $value, DatabaseObject $row): string
5556
}
5657
)
5758
->sortable(),
59+
GridViewColumn::for('languageCategoryID')
60+
->label('wcf.global.category')
61+
->hidden()
62+
->filter(new SelectFilter(
63+
$this->getAvailableCategories(),
64+
labelLanguageItems: false
65+
)),
5866
GridViewColumn::for('languageItemValue')
5967
->label('wcf.acp.language.item.value')
6068
->valueEncoding(false)
@@ -166,4 +174,12 @@ protected function getInitializedEvent(): ?IPsr14Event
166174
{
167175
return new LanguageItemGridViewInitialized($this);
168176
}
177+
178+
private function getAvailableCategories(): array
179+
{
180+
$list = new LanguageCategoryList();
181+
$list->readObjects();
182+
183+
return \array_map(static fn($object) => $object->languageCategory, $list->getObjects());
184+
}
169185
}

wcfsetup/install/files/lib/system/gridView/filter/SelectFilter.class.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,11 @@
1717
*/
1818
class SelectFilter extends AbstractFilter
1919
{
20-
public function __construct(private readonly array $options, string $databaseColumn = '')
21-
{
20+
public function __construct(
21+
private readonly array $options,
22+
string $databaseColumn = '',
23+
private readonly bool $labelLanguageItems = true
24+
) {
2225
parent::__construct($databaseColumn);
2326
}
2427

@@ -27,7 +30,7 @@ public function getFormField(string $id, string $label): AbstractFormField
2730
{
2831
return SelectFormField::create($id)
2932
->label($label)
30-
->options($this->options);
33+
->options($this->options, labelLanguageItems: $this->labelLanguageItems);
3134
}
3235

3336
#[\Override]

0 commit comments

Comments
 (0)