|
- package mvc
-
- import (
- "github.com/astaxie/beego"
- "strings"
- )
-
- type NestInterface interface {
- NestPrepare()
- }
-
- type BaseController struct {
- beego.Controller
- }
-
- func (this *BaseController) Prepare() {
- sep := "/"
- s := this.GetRouterSlice()
- this.ViewPath = "applications/" + s[0] + sep + beego.AppConfig.String("customviewdir") + sep
- this.TplName = s[1] + sep + s[2] + ".tpl"
- if app, ok := this.AppController.(NestInterface); ok {
- app.NestPrepare()
- }
- }
-
- func (this *BaseController) RespJson(status bool, code int, msg string, data interface{}) {
- this.Data["json"] = &map[string]interface{}{"status": status, "code": code, "msg": msg, "machine": data}
- this.ServeJSON()
- }
-
- func (this *BaseController) SetLayoutEmpty() {
- this.Layout = ""
- }
-
- func (this *BaseController) StopRender() {
- this.EnableRender = false
- }
-
- func (this *BaseController) GetRouterSlice() (s []string) {
- sep := "/"
- s = strings.Split(strings.Trim(this.Ctx.Input.URL(), sep), sep)
-
- if s[0] == "" {
- s[0] = strings.TrimSpace(strings.Split(beego.AppConfig.String("custommodules"), ",")[0])
- }
-
- if len(s) < 2 {
- s = append(s, "main")
- }
-
- if len(s) < 3 {
- s = append(s, "index")
- }
-
- return
- }
|