Beispiel #1
0
func (self *EditQuestionHandler) Post() {
	self.TplNames = "sdc/edit-question.html"

	flash := beego.NewFlash()
	tags := template.HTMLEscapeString(strings.TrimSpace(strings.ToLower(self.GetString("tags"))))

	qid, _ := self.GetInt(":qid")

	if qid_handler, err := model.GetQuestion(qid); err == nil {
		uid, _ := self.GetSession("userid").(int64)
		role, _ := self.GetSession("userrole").(int64)
		allow := bool(false)

		if qid_handler.Uid == uid && qid_handler.Id == qid {
			allow = true
		} else if role < 0 {
			allow = true
		}

		if allow {

			self.Data["question"] = *qid_handler
			self.Data["inode"], _ = model.GetNode(qid_handler.Nid)

			if tags == "" {

				flash.Error("尚未设置标签,请设定正确的标签!")
				flash.Store(&self.Controller)
				return
			} else {
				qid_title := template.HTMLEscapeString(strings.TrimSpace(self.GetString("title")))
				qid_content := template.HTMLEscapeString(strings.TrimSpace(self.GetString("content")))

				if qid_title != "" && qid_content != "" {
					tags := template.HTMLEscapeString(strings.TrimSpace(strings.ToLower(self.GetString("tags"))))

					if qs, err := model.GetQuestion(qid); qs != nil && err == nil {

						qs.Title = qid_title

						//删去用户没再使用的图片
						helper.DelLostImages(qs.Content, qid_content)
						qs.Content = qid_content

						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 cat, err := model.GetCategory(nd.Pid); err == nil {
								qs.Category = cat.Title
							}
						*/

						qs.Tags = tags
						qs.Updated = time.Now()

						if row, err := model.PutQuestion(qid, qs); row == 1 && err == nil {
							model.SetRecordforImageOnEdit(qid, qs.Uid)
							self.Redirect("/"+strconv.Itoa(int(qid))+"/", 302)
						} else {

							flash.Error("更新问题出现错误:", fmt.Sprint(err))
							flash.Store(&self.Controller)
							return
						}
					} else {
						flash.Error("无法获取根本不存在的问题!")
						flash.Store(&self.Controller)
						return
					}

				} else {

					flash.Error("问题标题或内容为空!")
					flash.Store(&self.Controller)
					return
				}
			}

		} else {

			//没有权限执行该操作则直接跳转到登录页面
			self.Redirect("/user/signin/", 302)
		}
	} else {

		flash.Error(fmt.Sprint(err))
		flash.Store(&self.Controller)
		return
	}

}
Beispiel #2
0
func (self *EditAnswerHandler) Post() {
	self.TplNames = "sdc/edit-answer.html"

	flash := beego.NewFlash()

	aid, _ := self.GetInt(":aid")

	if aid_handler, err := model.GetAnswer(aid); err == nil {
		uid, _ := self.GetSession("userid").(int64)
		role, _ := self.GetSession("userrole").(int64)
		allow := bool(false)

		if aid_handler.Uid == uid && aid_handler.Id == aid {
			allow = true
		} else if role < 0 {
			allow = true
		}

		if allow {
			self.Data["answer"] = *aid_handler
			aid_content := template.HTMLEscapeString(strings.TrimSpace(self.GetString("content")))

			if aid_content != "" {

				if anz, err := model.GetAnswer(aid); anz != nil && err == nil {

					//删去用户没再使用的图片
					helper.DelLostImages(anz.Content, aid_content)
					anz.Content = aid_content

					if s, e := helper.GetBannerThumbnail(aid_content); e == nil {
						anz.Attachment = s
					}

					/*
						if cat, err := model.GetCategory(nd.Pid); err == nil {
							anz.Category = cat.Title
						}
					*/

					anz.Updated = time.Now()

					if row, err := model.PutAnswer(aid, anz); row == 1 && err == nil {
						model.SetRecordforImageOnEdit(aid, anz.Uid)
						self.Redirect("/"+strconv.Itoa(int(anz.Pid))+"/#answer-"+strconv.Itoa(int(aid)), 302)
					} else {

						flash.Error("更新答案出现错误:", fmt.Sprint(err))
						flash.Store(&self.Controller)
						return
					}
				} else {
					flash.Error("无法获取根本不存在的答案!")
					flash.Store(&self.Controller)
					return
				}

			} else {

				flash.Error("答案内容为空!")
				flash.Store(&self.Controller)
				return
			}
		} else {
			//没有权限执行该操作则直接跳转到登录页面
			self.Redirect("/user/signin/", 302)
		}

	} else {

		flash.Error(fmt.Sprint(err))
		flash.Store(&self.Controller)
		return
	}

}