feat: 品牌CMS配置化 + cookie_secure配置

- config.yaml 新增 server.cookie_secure 配置项
- site_settings 新增 site_name/site_tagline/contact_email 站点信息
- SiteInfo 结构体扩展,支持运行时从 DB 读取站点品牌信息
- cookie.go 使用 cfg.Server.CookieSecure 替代 Mode!=debug 判断
- SetSessionCookie/ClearSessionCookie 支持 siteSettings 运行时覆盖
- 模板替换硬编码 MetaLab → {{.SiteName}}(nav/header/footer/home/login/register/guidelines/admin,12+处)
- 管理后台站点设置页新增站点名称/标语/联系邮箱输入项
- 页脚版权年份改为动态 CurrentYear
- 注册成功消息 CMS 化(后端+前端)
This commit is contained in:
2026-06-21 23:12:18 +08:00
parent 7b5856e0ba
commit 0014bdb9ff
21 changed files with 106 additions and 35 deletions

View File

@ -10,8 +10,38 @@
<div class="section-body">
<div class="setting-item">
<div class="setting-info">
<span class="setting-label">版权信息</span>
<span class="setting-desc">页脚附加信息,留空则隐藏(如 "Framework: MetaZone"</span>
<span class="setting-label">站点名称</span>
<span class="setting-desc">全站品牌名(导航栏、标题、页脚等位置</span>
</div>
<div class="setting-input-wrap">
<input type="text" id="setting-site-name" class="setting-input" placeholder="MetaLab" value="{{.SiteName}}">
<button class="btn btn-sm btn-primary btn-save" data-key="site.name" data-input="setting-site-name">保存</button>
</div>
</div>
<div class="setting-item">
<div class="setting-info">
<span class="setting-label">站点标语</span>
<span class="setting-desc">首页 Hero 区域的副标题</span>
</div>
<div class="setting-input-wrap">
<input type="text" id="setting-site-tagline" class="setting-input" placeholder="下一代开发者社区" value="{{.SiteTagline}}">
<button class="btn btn-sm btn-primary btn-save" data-key="site.tagline" data-input="setting-site-tagline">保存</button>
</div>
</div>
<div class="setting-item">
<div class="setting-info">
<span class="setting-label">联系邮箱</span>
<span class="setting-desc">申诉/联系邮箱,显示在社区准则等页面</span>
</div>
<div class="setting-input-wrap">
<input type="text" id="setting-site-email" class="setting-input" placeholder="metazone@foxmail.com" value="{{.ContactEmail}}">
<button class="btn btn-sm btn-primary btn-save" data-key="site.contact_email" data-input="setting-site-email">保存</button>
</div>
</div>
<div class="setting-item">
<div class="setting-info">
<span class="setting-label">附加信息</span>
<span class="setting-desc">页脚附加信息,留空则隐藏(如 "Framework: MetaGenesis"</span>
</div>
<div class="setting-input-wrap">
<input type="text" id="setting-site-framework" class="setting-input" placeholder="留空则不显示" value="{{.Framework}}">