-
Notifications
You must be signed in to change notification settings - Fork 1
/
bindata_none.go
118 lines (112 loc) · 4.32 KB
/
bindata_none.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//go:build !bindata
// +build !bindata
package bindata
import (
"path/filepath"
"strings"
"github.com/webx-top/echo"
"github.com/webx-top/echo/middleware"
"github.com/webx-top/echo/middleware/render/driver"
"github.com/admpub/log"
"github.com/admpub/nging/v5/application/cmd/bootconfig"
"github.com/admpub/nging/v5/application/initialize/backend"
"github.com/admpub/nging/v5/application/library/bindata"
"github.com/admpub/nging/v5/application/library/modal"
"github.com/admpub/nging/v5/application/library/ntemplate"
selfBackend "github.com/admpub/webx/application/initialize/backend"
"github.com/admpub/webx/application/initialize/frontend"
)
var (
StaticOptions = &middleware.StaticOptions{
Root: "",
Path: "/public/assets/frontend/",
MaxAge: bootconfig.HTTPCacheMaxAge,
}
NgingDir = `../nging`
WebxDir = `../webx`
BackendTemplateDirs = bindata.PathAliases //{prefix:templateDir}
FrontendTemplateDirs = ntemplate.NewPathAliases() //{prefix:templateDir}
)
func Initialize(callbacks ...func()) {
backend.AssetsDir = filepath.Join(NgingDir, `public/assets`)
backend.TemplateDir = filepath.Join(NgingDir, `template/backend`)
bindata.StaticOptions.AddFallback(filepath.Join(WebxDir, `public/assets`))
if len(callbacks) > 0 && callbacks[0] != nil {
callbacks[0]()
}
bindata.Initialize()
backendTemplateDir, err := filepath.Abs(filepath.Join(WebxDir, `template/backend`))
if err != nil {
panic(err)
}
log.Debug(`[backend] `, `Template subfolder "official" is relocated to: `, backendTemplateDir)
selfBackend.TmplPathFixers.AddDir(`official`, backendTemplateDir)
BackendTemplateDirs.Range(func(prefix, templateDir string) error {
log.Debug(`[backend] `, `Template subfolder "`+prefix+`" is relocated to: `, templateDir)
selfBackend.TmplPathFixers.AddDir(prefix, templateDir)
return nil
})
backend.RendererDo = func(renderer driver.Driver) {
selfBackend.TmplPathFixers.SetTmplDir(renderer.TmplDir()).SetHandler(func(c echo.Context, theme string, tmpl string) string {
var found bool
tmpl, found = selfBackend.TmplPathFixers.Fix(c, theme, tmpl)
if found {
return tmpl
}
return filepath.Join(renderer.TmplDir(), tmpl)
})
renderer.SetTmplPathFixer(func(c echo.Context, tmpl string) string {
var theme string
return selfBackend.TmplPathFixers.Handle(c, theme, tmpl)
})
renderer.Manager().AddWatchDir(backendTemplateDir)
for _, templateDir := range BackendTemplateDirs.TmplDirs() {
log.Debug(`[backend] `, `Watch folder: `, templateDir)
renderer.Manager().AddWatchDir(templateDir)
}
}
modal.PathFixer = func(c echo.Context, file string) string {
fileNew := strings.TrimPrefix(file, backend.TemplateDir+`/`)
newPath, found := selfBackend.TmplPathFixers.Fix(c, ``, fileNew)
if found {
return newPath
}
return file
}
//注册前台静态资源
if len(StaticOptions.Root) == 0 {
StaticOptions.Root = filepath.Join(WebxDir, `public/assets/frontend`)
}
frontend.StaticMW = middleware.Static(StaticOptions)
frontend.TemplateDir = filepath.Join(WebxDir, frontend.DefaultTemplateDir) //模板文件夹
frontend.AssetsDir = filepath.Join(WebxDir, frontend.DefaultAssetsDir) //素材文件夹
frontendTemplateDir := filepath.Join(WebxDir, `template/frontend`)
FrontendTemplateDirs.AddAllSubdir(frontendTemplateDir)
//FrontendTemplateDirs.Add(`default`, frontendTemplateDir)
FrontendTemplateDirs.Range(func(prefix, templateDir string) error {
log.Debug(`[frontend] `, `Template subfolder "`+prefix+`" is relocated to: `, templateDir)
frontend.TmplPathFixers.AddDir(prefix, templateDir)
return nil
})
frontend.RendererDo = func(renderer driver.Driver) {
frontend.TmplPathFixers.SetTmplDir(renderer.TmplDir()).SetHandler(func(c echo.Context, theme string, tmpl string) string {
var found bool
tmpl, found = frontend.TmplPathFixers.Fix(c, theme, tmpl)
if found {
return tmpl
}
if len(theme) > 0 {
tmpl = theme + `/` + tmpl
}
return filepath.Join(renderer.TmplDir(), tmpl)
})
renderer.SetTmplPathFixer(func(c echo.Context, tmpl string) string {
theme := c.Internal().String(`theme`, `default`)
return frontend.TmplPathFixers.Handle(c, theme, tmpl)
})
for _, templateDir := range FrontendTemplateDirs.TmplDirs() {
log.Debug(`[frontend] `, `Watch folder: `, templateDir)
renderer.Manager().AddWatchDir(templateDir)
}
}
}