新增 4 项可配置站点设置(DB持久化+内存缓存,即时生效): - site.brand 品牌名(页面标题/页脚/管理面板,默认 MetaLab) - site.framework 框架名(页脚标识,默认 MetaZone) - site.copyright_start 版权起始年(页脚,默认 2024) - registration.enabled 注册开关(关闭后禁止新用户注册,默认 true) 实现方式: - InjectSiteInfo 中间件:全局注入 Brand/Framework/CopyrightStart 到 gin.Context - BuildPageData 读取 context,所有 SSR 页面自动获取站点信息 - AuthService.Register 最先检查 IsRegistrationEnabled() - 管理后台新增「基本设置」+「注册设置」区块,文本输入手动保存 + Toggle 即时生效
119 lines
5.8 KiB
HTML
119 lines
5.8 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-brand" class="setting-input" placeholder="MetaLab" value="{{.Brand}}">
|
|
<button class="btn btn-sm btn-primary btn-save" data-key="site.brand" data-input="setting-site-brand">保存</button>
|
|
</div>
|
|
</div>
|
|
<div class="setting-item">
|
|
<div class="setting-info">
|
|
<span class="setting-label">框架名称</span>
|
|
<span class="setting-desc">显示在页脚 Framework 标识中</span>
|
|
</div>
|
|
<div class="setting-input-wrap">
|
|
<input type="text" id="setting-site-framework" class="setting-input" placeholder="MetaZone" 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="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" id="general-settings">
|
|
<div class="settings-empty" id="settings-empty">加载中...</div>
|
|
</div>
|
|
</div>
|
|
{{template "admin/layout/footer.html" .}}
|