标题位置修正:顶栏即「XX反馈系统」,内容区只留图标+软件名

用户指出三处问题:
1. 最上面标题应显示「同步日历反馈系统」,而不是光秃秃的「同步日历」
2. 内容区那个重复的「同步日历反馈系统」不要再要了,
   那里只要「图标 + 同步日历」
3. 内容区下面多了一个裸露的 ?> 字符
4. 图标和标题文字都要再大一点

改动:
- 顶栏改为 fb_software_badge(sw, brand, fb_software_site_title(sw))
  图标 56px、文字 26px,成为页面唯一主标题
- 删除内容区的 h1.page-h1-sw(重复标题)
- 内容区改为 badge(lg):图标 40px + 文字 30px
- 清除 index.php 里多余的 ?> (上次编辑留下的残渣)
- badge 新增 brand 尺寸档与  参数,可覆盖显示文字
- 顶栏高度 72->84px 容纳更大的图标;窄屏仍有降级

验证:顶栏 title/文字正确、已无 page-h1-sw、
无裸露 ?>、内容区只显示「同步日历」、5 处图标全走 media.php
且均为有效 PNG、三个软件页与全部路由 200。
This commit is contained in:
2026-11-03 08:34:03 +08:00
parent 669ab9e43e
commit 82484298e4
6 changed files with 46 additions and 30 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ if (!defined('FB_ROOT')) {
define('FB_ROOT', dirname(__DIR__));
// 静态资源版本号:改 assets/ 下的 css/js 后把这个数字 +1,
// 让浏览器与 CDN 缓存失效。全站只此一处,别再往页面里写死数字。
if (!defined('FB_ASSET_V')) { define('FB_ASSET_V', 20); }
if (!defined('FB_ASSET_V')) { define('FB_ASSET_V', 21); }
}
/* ------------------------------------------------------------------
+6 -5
View File
@@ -52,14 +52,15 @@ function fb_layout_head($title, array $opt = []) {
<header class="topbar">
<div class="wrap">
<?php
/* 顶栏品牌位:当前在哪個软件下,就显示那个软件的「图标 + 名字」,
* 而不是一直挂着站点大标题 —— 多软件共用一套反馈系统,
* 用户要一眼看清「我现在是在给哪个软件提问题」。 */
/* 顶栏品牌位:当前在哪个软件下,就显示「图标 + XX 反馈系统」。
* 这是页面唯一的主标题 —— 多软件共用一套反馈系统,
* 用户要一眼看清「我现在是在给哪个软件的反馈系统提问题」。
* 内容区不再重复一遍同样的文字,只保留「图标 + 软件名」。 */
$curSw = isset($opt['software']) && is_array($opt['software']) ? $opt['software'] : null;
?>
<?php if ($curSw): ?>
<a class="brand-mini" href="./" title="<?php echo e($site); ?>">
<?php echo fb_software_badge($curSw, 'md'); ?>
<a class="brand-mini" href="./" title="<?php echo e(fb_software_site_title($curSw)); ?>">
<?php echo fb_software_badge($curSw, 'brand', fb_software_site_title($curSw)); ?>
</a>
<?php else: ?>
<a class="brand-mini" href="./" title="<?php echo e($site); ?>">
+13 -9
View File
@@ -326,19 +326,23 @@ function fb_software_icon($software) {
* 🔴 不要背景色:图标本身就是一张图/一个 emoji,再垫一个色块反而糊在一起。
* 直接「图标 + 文字」并排,识别度最高(用户 2026-11-03 明确要求)。
*
* @param array $sw 软件行
* @param string $size 'sm' | 'md' | 'lg'
* @param array $sw 软件行
* @param string $size 'sm' | 'md' | 'lg' | 'brand'(brand = 顶栏主标题)
* @param string $label 覆盖显示文字(默认=软件名)。顶栏用它传「XX 反馈系统」。
*/
function fb_software_badge($software, $size = 'md') {
function fb_software_badge($software, $size = 'md', $label = '') {
if (!is_array($software) || empty($software['name'])) { return ''; }
$icon = fb_software_icon($software);
$name = (string)$software['name'];
$name = $label !== '' ? (string)$label : (string)$software['name'];
/* md 用于页头副行,要跟上方 26px 的标题文字视觉匹配,所以比 sm 明显大一档;
* lg 只在大标题位置用(现在标题是纯文字,暂时没用到,留着备用)。 */
$px = ['sm' => 18, 'md' => 28, 'lg' => 40];
$fs = ['sm' => 14, 'md' => 19, 'lg' => 30];
$box = isset($px[$size]) ? $px[$size] : 28;
/* 尺寸档位:
* sm 软件选择器里的小标签
* md 一般位置
* lg 内容区「图标 + 软件名」
* brand 顶栏主标题,要显著大于正文,图标与「XX 反馈系统」一起放大 */
$px = ['sm' => 18, 'md' => 26, 'lg' => 38, 'brand' => 46];
$fs = ['sm' => 14, 'md' => 19, 'lg' => 28, 'brand' => 32];
$box = isset($px[$size]) ? $px[$size] : 26;
$fnt = isset($fs[$size]) ? $fs[$size] : 19;
/* 有上传的图标图片就用图片(管理员自己传的 logo),没有才用字符。