准则阅读(三层控制): - registration.show_guidelines — 弹窗/复选框模式 - registration.force_guidelines — 是否强制倒计时+滚动 - registration.guidelines_timer — 倒计时秒数 Footer 合规(8 字段,空值不显示,链接纯手写): - site.operator_name / site.icp_number / site.icp_license - site.police_number / site.wenwangwen / site.algorithm_filing - site.privacy_url / site.terms_url - 新增 safeHTML 模板函数输出不转义 HTML
32 lines
1.2 KiB
Go
32 lines
1.2 KiB
Go
package middleware
|
|
|
|
import (
|
|
"metazone.cc/mce/internal/config"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// InjectSiteInfo 注入站点展示信息到请求上下文(供 BuildPageData 使用)
|
|
// 应用于引擎级全局中间件,确保所有 SSR 页面都能读取 Framework/CopyrightStart/IsMaintenance
|
|
func InjectSiteInfo(siteSettings *config.SiteSettings) gin.HandlerFunc {
|
|
return func(c *gin.Context) {
|
|
info := siteSettings.SiteInfo()
|
|
c.Set("site_name", info.SiteName)
|
|
c.Set("site_tagline", info.SiteTagline)
|
|
c.Set("site_contact_email", info.ContactEmail)
|
|
c.Set("site_framework", info.Framework)
|
|
c.Set("site_copyright_start", info.CopyrightStart)
|
|
c.Set("site_operator_name", info.OperatorName)
|
|
c.Set("site_icp_number", info.ICPNumber)
|
|
c.Set("site_icp_license", info.ICPLicense)
|
|
c.Set("site_police_number", info.PoliceNumber)
|
|
c.Set("site_wenwangwen", info.WenWangWen)
|
|
c.Set("site_algorithm_filing", info.AlgorithmFiling)
|
|
c.Set("site_privacy_url", info.PrivacyURL)
|
|
c.Set("site_terms_url", info.TermsURL)
|
|
c.Set("is_maintenance", siteSettings.IsMaintenanceEnabled())
|
|
c.Set("registration_guidelines_timer", siteSettings.GuidelinesTimer())
|
|
c.Next()
|
|
}
|
|
}
|