You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
go-fly/tmpl/common.go

93 lines
2.3 KiB

package tmpl
import (
"github.com/gin-gonic/gin"
"github.com/taoshihan1991/imaptool/config"
"github.com/taoshihan1991/imaptool/models"
"github.com/taoshihan1991/imaptool/tools"
"html"
"html/template"
"net/http"
)
type CommonHtml struct {
Header template.HTML
Nav template.HTML
Left template.HTML
Bottom template.HTML
Rw http.ResponseWriter
}
func NewRender(rw http.ResponseWriter) *CommonHtml {
obj := new(CommonHtml)
obj.Rw = rw
header := tools.FileGetContent("html/header.html")
nav := tools.FileGetContent("html/nav.html")
obj.Header = template.HTML(header)
obj.Nav = template.HTML(nav)
return obj
}
func (obj *CommonHtml) SetLeft(file string) {
leftStr := tools.FileGetContent("html/" + file + ".html")
obj.Left = template.HTML(leftStr)
}
func (obj *CommonHtml) SetBottom(file string) {
str := tools.FileGetContent("html/" + file + ".html")
obj.Bottom = template.HTML(str)
}
func (obj *CommonHtml) Display(file string, data interface{}) {
if data == nil {
data = obj
}
main := tools.FileGetContent("html/" + file + ".html")
t, _ := template.New(file).Parse(main)
t.Execute(obj.Rw, data)
}
//首页
func PageIndex(c *gin.Context) {
if c.Request.RequestURI == "/favicon.ico" {
return
}
lang, _ := c.Get("lang")
language := config.CreateLanguage(lang.(string))
about := models.FindAboutByPageLanguage("index", lang.(string))
cssJs := html.UnescapeString(about.CssJs)
title := about.TitleCn
keywords := about.KeywordsCn
desc := html.UnescapeString(about.DescCn)
content := html.UnescapeString(about.HtmlCn)
if lang == "en" {
title = about.TitleEn
keywords = about.KeywordsEn
desc = html.UnescapeString(about.DescEn)
content = html.UnescapeString(about.HtmlEn)
}
c.HTML(http.StatusOK, "index.html", gin.H{
"OnlineChat": language.IndexOnlineChat,
"Notice": language.Notice,
"NowAsk": language.NowAsk,
"LaterAsk": language.LaterAsk,
"Lang": lang,
"Title": title,
"Keywords": keywords,
"Desc": desc,
"Content": template.HTML(content),
"CssJs": template.HTML(cssJs),
})
}
//登陆界面
func PageMain(c *gin.Context) {
nav := tools.FileGetContent("html/nav.html")
c.HTML(http.StatusOK, "main.html", gin.H{
"Nav": template.HTML(nav),
})
}
//客服界面
func PageChatMain(c *gin.Context) {
c.HTML(http.StatusOK, "chat_main.html", nil)
}