- 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 化(后端+前端)
173 lines
9.0 KiB
HTML
173 lines
9.0 KiB
HTML
{{template "admin/layout/base.html" .}}
|
||
<div class="page-header">
|
||
<h1>站点设置</h1>
|
||
<p class="page-desc">管理站点基本配置、维护开关、审核开关与注册策略</p>
|
||
</div>
|
||
|
||
<!-- 基本设置 -->
|
||
<div class="settings-section">
|
||
<div class="section-title">基本设置</div>
|
||
<div class="section-body">
|
||
<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-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}}">
|
||
<button class="btn btn-sm btn-primary btn-save" data-key="site.framework" data-input="setting-site-framework">保存</button>
|
||
</div>
|
||
</div>
|
||
<div class="setting-item">
|
||
<div class="setting-info">
|
||
<span class="setting-label">版权起始年份</span>
|
||
<span class="setting-desc">页脚版权标起始年(如 2024 → © 2024-当前年)</span>
|
||
</div>
|
||
<div class="setting-input-wrap">
|
||
<input type="text" id="setting-site-copyright" class="setting-input" placeholder="2024" value="{{.CopyrightStart}}">
|
||
<button class="btn btn-sm btn-primary btn-save" data-key="site.copyright_start" data-input="setting-site-copyright">保存</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 维护设置 -->
|
||
<div class="settings-section">
|
||
<div class="section-title">维护设置</div>
|
||
<div class="section-body">
|
||
<div class="setting-item">
|
||
<div class="setting-info">
|
||
<span class="setting-label">启用维护模式</span>
|
||
<span class="setting-desc">开启后仅站长可登录和访问,其他用户将看到维护提示</span>
|
||
</div>
|
||
<label class="toggle-switch">
|
||
<input type="checkbox" id="maintenance-enabled" data-key="maintenance.enabled">
|
||
<span class="toggle-slider"></span>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 注册设置 -->
|
||
<div class="settings-section">
|
||
<div class="section-title">注册设置</div>
|
||
<div class="section-body">
|
||
<div class="setting-item">
|
||
<div class="setting-info">
|
||
<span class="setting-label">允许注册</span>
|
||
<span class="setting-desc">关闭后,新用户将无法注册</span>
|
||
</div>
|
||
<label class="toggle-switch">
|
||
<input type="checkbox" id="registration-enabled" data-key="registration.enabled">
|
||
<span class="toggle-slider"></span>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 审核设置 -->
|
||
<div class="settings-section">
|
||
<div class="section-title">审核设置</div>
|
||
<div class="section-body">
|
||
<div class="setting-item">
|
||
<div class="setting-info">
|
||
<span class="setting-label">启用审核系统</span>
|
||
<span class="setting-desc">启用后,用户名、头像、签名修改将进入审核流程</span>
|
||
</div>
|
||
<label class="toggle-switch">
|
||
<input type="checkbox" id="audit-enabled" data-key="audit.enabled">
|
||
<span class="toggle-slider"></span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="setting-item">
|
||
<div class="setting-info">
|
||
<span class="setting-label">用户名审核</span>
|
||
<span class="setting-desc">更改用户名需要管理员审核</span>
|
||
</div>
|
||
<label class="toggle-switch">
|
||
<input type="checkbox" id="audit-username" data-key="audit.username_audit">
|
||
<span class="toggle-slider"></span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="setting-item">
|
||
<div class="setting-info">
|
||
<span class="setting-label">头像审核</span>
|
||
<span class="setting-desc">更改头像需要管理员审核</span>
|
||
</div>
|
||
<label class="toggle-switch">
|
||
<input type="checkbox" id="audit-avatar" data-key="audit.avatar_audit">
|
||
<span class="toggle-slider"></span>
|
||
</label>
|
||
</div>
|
||
|
||
<div class="setting-item">
|
||
<div class="setting-info">
|
||
<span class="setting-label">签名审核</span>
|
||
<span class="setting-desc">更改个人签名需要管理员审核</span>
|
||
</div>
|
||
<label class="toggle-switch">
|
||
<input type="checkbox" id="audit-bio" data-key="audit.bio_audit">
|
||
<span class="toggle-slider"></span>
|
||
</label>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 内容管理 -->
|
||
<div class="settings-section">
|
||
<div class="section-title">内容管理</div>
|
||
<div class="section-body">
|
||
<div class="setting-item setting-item-vertical">
|
||
<div class="setting-info">
|
||
<span class="setting-label">社区准则</span>
|
||
<span class="setting-desc">注册时需用户阅读并同意,支持 HTML 格式</span>
|
||
</div>
|
||
<div class="setting-input-block">
|
||
<textarea id="setting-site-guidelines" class="setting-textarea" rows="12" placeholder="留空则使用默认准则文件"></textarea>
|
||
<button class="btn btn-sm btn-primary btn-save-block" data-key="site.guidelines" data-input="setting-site-guidelines">保存准则</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 通用设置 -->
|
||
<div class="settings-section">
|
||
<div class="section-title">其他设置</div>
|
||
<div class="section-body" id="general-settings">
|
||
<div class="settings-empty" id="settings-empty">加载中...</div>
|
||
</div>
|
||
</div>
|
||
{{template "admin/layout/footer.html" .}}
|