forked from insionng/sdc
/
NewQuestionHandler.go
78 lines (64 loc) · 1.91 KB
/
NewQuestionHandler.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
package handler
import (
"fmt"
"github.com/astaxie/beego"
"github.com/cinience/sdc/helper"
"github.com/cinience/sdc/lib"
"github.com/cinience/sdc/model"
"html/template"
"strconv"
"strings"
"time"
)
type NewQuestionHandler struct {
lib.AuthHandler
}
func (self *NewQuestionHandler) Get() {
self.TplNames = "sdc/new-question.html"
}
func (self *NewQuestionHandler) Post() {
self.TplNames = "sdc/new-question.html"
flash := beego.NewFlash()
tags := template.HTMLEscapeString(strings.TrimSpace(strings.ToLower(self.GetString("tags"))))
if tags == "" {
flash.Error("尚未设置标签,请设定正确的标签!")
flash.Store(&self.Controller)
return
} else {
uid, _ := self.GetSession("userid").(int64)
sess_username, _ := self.GetSession("username").(string)
qid_title := template.HTMLEscapeString(strings.TrimSpace(self.GetString("title")))
qid_content := template.HTMLEscapeString(strings.TrimSpace(self.GetString("content")))
if qid_title != "" && qid_content != "" {
qs := new(model.Question)
qs.Title = qid_title
qs.Tags = tags
qs.Content = qid_content
qs.Uid = uid
qs.Author = sess_username
qs.Created = time.Now()
qs.Updated = qs.Created
if s, e := helper.GetBannerThumbnail(qid_content); e == nil {
qs.Attachment = s
}
if thumbnails, thumbnailslarge, thumbnailsmedium, thumbnailssmall, e := helper.GetThumbnails(qid_content); e == nil {
qs.Thumbnails = thumbnails
qs.ThumbnailsLarge = thumbnailslarge
qs.ThumbnailsMedium = thumbnailsmedium
qs.ThumbnailsSmall = thumbnailssmall
}
if qts, _, err := model.PostQuestion(qs); err == nil {
model.SetRecordforImageOnPost(qts.Id, uid)
self.Redirect("/"+strconv.Itoa(int(qts.Id))+"/", 302)
} else {
flash.Error(fmt.Sprint(err))
flash.Store(&self.Controller)
return
}
} else {
flash.Error("问题标题或内容为空!")
flash.Store(&self.Controller)
return
}
}
}