副标题允许为空:清空后前台不再回退显示默认文案
根因:setting() 把「空串」当成「从未配置」,于是后台删掉副标题后前台照样 显示默认的「个人网站导航」——删不掉。 改动: - config.php: setting() 改为「只有键不存在才回退 default」;空串是一等公民。 site_name() 改为唯一显式「空则回退 APP_NAME」的设置(页面不能没名字)。 - index.php: 副标题按空串读取(默认值取 ),hero 与 <title> 两处都判空; 空时不输出 <p>、不拼「·」分隔符。 - admin/index.php: 输入框回显不传默认文案(清空后不回弹),加 placeholder 与说明。
This commit is contained in:
@@ -48,6 +48,12 @@ if ($default === null) { $default = $engines[0] ?? null; }
|
||||
|
||||
$primary = setting('primary_color', '#2F6BF7');
|
||||
|
||||
// 副标题(后台「设置 → 副标题」)。
|
||||
// ⚠️ 允许为空:用户清空后就**不显示**副标题,不要回退成默认文案 ——
|
||||
// 这正是 bug 的现场(原先空串被当成「未设置」,删了照样显示)。
|
||||
// 空串原样取出(默认值取 ''),渲染处再按需判断是否输出。
|
||||
$subtitle = setting('subtitle', '');
|
||||
|
||||
function sites_of(int $gid): array
|
||||
{
|
||||
$st = db()->prepare("SELECT * FROM sites WHERE group_id=? AND is_visible=1 ORDER BY sort_order, id");
|
||||
@@ -86,7 +92,7 @@ function site_tile(array $s): void
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title><?= e(site_name()) ?> · <?= e(setting('subtitle', '个人网站导航')) ?></title>
|
||||
<title><?= e(site_name()) ?><?= $subtitle !== '' ? ' · ' . e($subtitle) : '' ?></title>
|
||||
<meta name="description" content="<?= e(site_name()) ?> —— 个人网站导航">
|
||||
<meta name="theme-color" content="<?= e($primary) ?>">
|
||||
<!-- 站点图标(favicon / apple-touch / PWA manifest):有自定义就用自定义,
|
||||
@@ -104,7 +110,9 @@ function site_tile(array $s): void
|
||||
<header class="hero" data-site-icon="<?= e(site_icon_mode()) ?>">
|
||||
<img class="logo" src="<?= e(site_icon_url('logo', 512) ?: asset('assets/img/logo.svg')) ?>" alt="<?= e(site_name()) ?>">
|
||||
<h1><?= e(site_name()) ?></h1>
|
||||
<p><?= e(setting('subtitle', '个人网站导航')) ?></p>
|
||||
<?php if ($subtitle !== ''): ?>
|
||||
<p><?= e($subtitle) ?></p>
|
||||
<?php endif; ?>
|
||||
</header>
|
||||
|
||||
<!-- 顶部搜索 -->
|
||||
|
||||
Reference in New Issue
Block a user