修复图标显示不出来;标题改XX反馈系统;图标去掉背景色

一、图标显示不出来(根因)
用户上传图标时用的是修复前的代码,数据库里 icon_key 存的是
icons/2026/11/xxx.png —— 没有 local/ 也没有 oss.prefix 前缀。
上一轮我把键校验收紧成「必须带存储前缀」,于是这些键被判非法,
fb_icon_url() 返回空字符串,图标自然显示不出来。
而三个文件其实都真实存在于 OSS 上(13KB / 391KB / 379KB)。

修法两层:
1. fb_icon_key_ok / fb_icon_is_key 兼容历史无前缀形态,
   这些是有效资产,不能因为键格式不规范就让图标消失
2. 数据迁移:把对象复制到 feedlite/icons/… 并把数据库键改成规范形态,
   已对三个软件全部执行并验证(新键 200,大小与源文件一致)

二、标题改为「XX 反馈系统」
- 页头大标题 = 同步日历反馈系统(之前只有「同步日历」)
- 浏览器标签同步改
- 软件名本身含「反馈」时不叠加,避免「轻反馈反馈系统」

三、图标不要背景色
- 去掉色块底衬与圆角投影,直接「图标 + 文字」并排
- 前端 badge、提交页上下文条、邮件头部三处同步
- md 尺寸调到 28px,与 26px 标题文字视觉匹配

验证:三个软件页标题正确、图标全部 200 image/png、
全部页面 200、迁移后新键可读且大小一致。
This commit is contained in:
2026-11-03 08:27:03 +08:00
parent 872baf4153
commit 669ab9e43e
6 changed files with 81 additions and 43 deletions
+11 -3
View File
@@ -76,14 +76,18 @@ $attImgs = $tids ? fb_attach_map_images($pdo, $tids, 3) : [];
$attCount = $tids ? fb_attach_count_map($pdo, $tids) : [];
$siteName = (string)fb_cfg('site_name');
$headTitle = $siteName !== '' ? $siteName . ' · 问题反馈' : '问题反馈';
fb_layout_head($sw ? ((string)$sw['name']) : $headTitle, ['software' => $sw]);
/* 页面标题(浏览器标签 / 页面大标题):
* 选中某个软件时用「XX 反馈系统」,让用户一眼确认自己在这个软件的反馈区;
* 没选软件时退回站点名。 */
$headTitle = $sw ? fb_software_site_title($sw)
: ($siteName !== '' ? $siteName . ' · 问题反馈' : '问题反馈');
fb_layout_head($sw ? fb_software_site_title($sw) : $headTitle, ['software' => $sw]);
?>
<div class="page-head">
<div>
<?php if ($sw): ?>
<h1 class="page-h1-sw"><?php echo fb_software_badge($sw, 'lg'); ?></h1>
<h1 class="page-h1-sw"><?php echo e(fb_software_site_title($sw)); ?></h1>
<?php else: ?>
<h1>全部问题</h1>
<?php endif; ?>
@@ -91,6 +95,10 @@ fb_layout_head($sw ? ((string)$sw['name']) : $headTitle, ['software' => $sw]);
$siteDesc = (string)fb_cfg('site_desc');
$swNote = ($sw && !empty($sw['note'])) ? (string)$sw['note'] : '';
?>
<?php if ($sw): ?>
<div class="page-sw-id"><?php echo fb_software_badge($sw, 'md'); ?></div>
<?php endif; ?>
?>
<?php if ($siteDesc !== ''): ?><p class="muted"><?php echo e($siteDesc); ?></p><?php endif; ?>
<?php if ($swNote !== ''): ?><p class="muted small" style="margin:2px 0 0"><?php echo e($swNote); ?></p><?php endif; ?>
</div>