fix(user): align badge entry with medal settings

This commit is contained in:
2026-08-11 19:32:52 +08:00
parent e1dc9ab277
commit 51b52affae
7 changed files with 143 additions and 25 deletions
+16 -3
View File
@@ -168,7 +168,7 @@ class Badges {
return false;
}
$settings = \AKSRT\Settings\Settings::get_user_identity_settings();
return !empty($settings['badge']['enabled']);
return !empty($settings['medal']['enabled']);
}
public static function public_display(): bool {
@@ -176,7 +176,7 @@ class Badges {
return false;
}
$settings = \AKSRT\Settings\Settings::get_user_identity_settings();
return !empty($settings['badge']['enabled']) && !empty($settings['badge']['public_display']);
return !empty($settings['medal']['enabled']) && !empty($settings['medal']['public_display']);
}
/**
@@ -190,7 +190,20 @@ class Badges {
return self::$dictionary_cache = [];
}
$settings = \AKSRT\Settings\Settings::get_user_identity_settings();
$dict = is_array($settings['badge']['dictionary'] ?? null) ? $settings['badge']['dictionary'] : [];
$medal = is_array($settings['medal'] ?? null) ? $settings['medal'] : [];
$dict = [];
foreach ((array) ($medal['items_by_slug'] ?? []) as $item) {
if (!is_array($item)) {
continue;
}
$dict[] = [
'slug' => sanitize_key((string) ($item['slug'] ?? '')),
'label' => (string) ($item['name'] ?? $item['slug'] ?? ''),
'tone' => 'neutral',
'desc' => (string) ($item['desc'] ?? ''),
'icon_url' => (string) ($item['icon'] ?? ''),
];
}
$out = [];
foreach ($dict as $item) {
$slug = sanitize_key((string) ($item['slug'] ?? ''));
+2 -2
View File
@@ -161,8 +161,8 @@ class Home {
}
}
if (!empty($settings['badge']['enabled']) && !empty($settings['badge']['public_display'])) {
$limit = max(1, (int) ($settings['badge']['limit'] ?? 3));
if (!empty($settings['medal']['enabled']) && !empty($settings['medal']['public_display'])) {
$limit = max(1, (int) ($settings['medal']['limit'] ?? 3));
if (class_exists('AKSRT\\User\\Badges')) {
$list = Badges::list_for_user($user_id);
$badge_count = 0;