mirror of
https://github.com/mindoc-org/mindoc.git
synced 2025-12-17 18:31:21 +08:00
1、实现富文本编辑器
2、实现文档转换为PDF、MOBI、EPUB、Word格式 3、实现登录后跳转到来源地址
This commit is contained in:
@@ -1,53 +1,52 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
|
||||
"bytes"
|
||||
|
||||
"github.com/lifei6671/mindoc/models"
|
||||
"github.com/lifei6671/mindoc/conf"
|
||||
"github.com/astaxie/beego"
|
||||
"strings"
|
||||
"encoding/json"
|
||||
"github.com/astaxie/beego"
|
||||
"github.com/lifei6671/mindoc/conf"
|
||||
"github.com/lifei6671/mindoc/models"
|
||||
"io"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
||||
type BaseController struct {
|
||||
beego.Controller
|
||||
Member *models.Member
|
||||
Option map[string]string
|
||||
EnableAnonymous bool
|
||||
Member *models.Member
|
||||
Option map[string]string
|
||||
EnableAnonymous bool
|
||||
EnableDocumentHistory bool
|
||||
}
|
||||
|
||||
// Prepare 预处理.
|
||||
func (c *BaseController) Prepare (){
|
||||
func (c *BaseController) Prepare() {
|
||||
c.Data["SiteName"] = "MinDoc"
|
||||
c.Data["Member"] = models.Member{}
|
||||
c.EnableAnonymous = false
|
||||
c.EnableDocumentHistory = false
|
||||
|
||||
if member,ok := c.GetSession(conf.LoginSessionName).(models.Member); ok && member.MemberId > 0{
|
||||
if member, ok := c.GetSession(conf.LoginSessionName).(models.Member); ok && member.MemberId > 0 {
|
||||
|
||||
c.Member = &member
|
||||
c.Data["Member"] = c.Member
|
||||
}else{
|
||||
} else {
|
||||
//c.Member = models.NewMember()
|
||||
//c.Member.Find(1)
|
||||
//c.Data["Member"] = *c.Member
|
||||
}
|
||||
c.Data["BaseUrl"] = c.Ctx.Input.Scheme() + "://" + c.Ctx.Request.Host
|
||||
conf.BaseUrl = c.BaseUrl()
|
||||
c.Data["BaseUrl"] = c.BaseUrl()
|
||||
|
||||
if options,err := models.NewOption().All();err == nil {
|
||||
c.Option = make(map[string]string,len(options))
|
||||
for _,item := range options {
|
||||
if options, err := models.NewOption().All(); err == nil {
|
||||
c.Option = make(map[string]string, len(options))
|
||||
for _, item := range options {
|
||||
c.Data[item.OptionName] = item.OptionValue
|
||||
c.Option[item.OptionName] = item.OptionValue
|
||||
if strings.EqualFold(item.OptionName,"ENABLE_ANONYMOUS") && item.OptionValue == "true" {
|
||||
if strings.EqualFold(item.OptionName, "ENABLE_ANONYMOUS") && item.OptionValue == "true" {
|
||||
c.EnableAnonymous = true
|
||||
}
|
||||
if strings.EqualFold(item.OptionName,"ENABLE_DOCUMENT_HISTORY") && item.OptionValue == "true" {
|
||||
if strings.EqualFold(item.OptionName, "ENABLE_DOCUMENT_HISTORY") && item.OptionValue == "true" {
|
||||
c.EnableDocumentHistory = true
|
||||
}
|
||||
}
|
||||
@@ -68,13 +67,13 @@ func (c *BaseController) SetMember(member models.Member) {
|
||||
}
|
||||
|
||||
// JsonResult 响应 json 结果
|
||||
func (c *BaseController) JsonResult(errCode int,errMsg string,data ...interface{}){
|
||||
jsonData := make(map[string]interface{},3)
|
||||
func (c *BaseController) JsonResult(errCode int, errMsg string, data ...interface{}) {
|
||||
jsonData := make(map[string]interface{}, 3)
|
||||
|
||||
jsonData["errcode"] = errCode
|
||||
jsonData["message"] = errMsg
|
||||
|
||||
if len(data) > 0 && data[0] != nil{
|
||||
if len(data) > 0 && data[0] != nil {
|
||||
jsonData["data"] = data[0]
|
||||
}
|
||||
|
||||
@@ -86,13 +85,13 @@ func (c *BaseController) JsonResult(errCode int,errMsg string,data ...interface{
|
||||
|
||||
c.Ctx.ResponseWriter.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||
|
||||
io.WriteString(c.Ctx.ResponseWriter,string(returnJSON))
|
||||
io.WriteString(c.Ctx.ResponseWriter, string(returnJSON))
|
||||
|
||||
c.StopRun()
|
||||
}
|
||||
|
||||
// ExecuteViewPathTemplate 执行指定的模板并返回执行结果.
|
||||
func (c *BaseController) ExecuteViewPathTemplate(tplName string,data interface{}) (string,error){
|
||||
func (c *BaseController) ExecuteViewPathTemplate(tplName string, data interface{}) (string, error) {
|
||||
var buf bytes.Buffer
|
||||
|
||||
viewPath := c.ViewPath
|
||||
@@ -102,28 +101,28 @@ func (c *BaseController) ExecuteViewPathTemplate(tplName string,data interface{}
|
||||
|
||||
}
|
||||
|
||||
if err := beego.ExecuteViewPathTemplate(&buf,tplName,viewPath,data); err != nil {
|
||||
return "",err
|
||||
if err := beego.ExecuteViewPathTemplate(&buf, tplName, viewPath, data); err != nil {
|
||||
return "", err
|
||||
}
|
||||
return buf.String(),nil
|
||||
return buf.String(), nil
|
||||
}
|
||||
|
||||
func (c *BaseController) BaseUrl() string {
|
||||
baseUrl := beego.AppConfig.DefaultString("baseurl","")
|
||||
baseUrl := beego.AppConfig.DefaultString("baseurl", "")
|
||||
if baseUrl != "" {
|
||||
if strings.HasSuffix(baseUrl,"/"){
|
||||
baseUrl = strings.TrimSuffix(baseUrl,"/")
|
||||
if strings.HasSuffix(baseUrl, "/") {
|
||||
baseUrl = strings.TrimSuffix(baseUrl, "/")
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
baseUrl = c.Ctx.Input.Scheme() + "://" + c.Ctx.Request.Host
|
||||
}
|
||||
return baseUrl
|
||||
}
|
||||
|
||||
//显示错误信息页面.
|
||||
func (c *BaseController) ShowErrorPage(errCode int,errMsg string) {
|
||||
func (c *BaseController) ShowErrorPage(errCode int, errMsg string) {
|
||||
c.TplName = "errors/error.tpl"
|
||||
c.Data["ErrorMessage"] = errMsg
|
||||
c.Data["ErrorCode"] = errCode
|
||||
c.StopRun()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user