github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/routers/root/RCreateNode.go (about) 1 package root 2 3 import ( 4 "fmt" 5 "github.com/insionng/makross" 6 7 "strconv" 8 "github.com/insionng/yougam/helper" 9 "github.com/insionng/yougam/models" 10 ) 11 12 func RCreateNodeGetHandler(self *makross.Context) error { 13 14 15 16 TplNames := "root/create_node" 17 self.Set("catpage", "RCreateNodeHandler") 18 19 if nds, err := models.GetNodes(0, 0, "id"); nds != nil && err == nil { 20 self.Set("nodes", *nds) 21 } 22 23 if categories, err := models.GetCategories(0, 0, "id"); categories != nil && err == nil { 24 self.Set("categories", categories) 25 } 26 27 if nid := self.Param("nid").MustInt64(); nid > 0 { 28 29 if nd, err := models.GetNode(nid); nd != nil && err == nil { 30 self.Set("node", *nd) 31 } else { 32 self.Flash.Error(err.Error()) 33 return err 34 } 35 } 36 37 return self.Render(TplNames) 38 39 } 40 41 func PostRCreateNodeHandler(self *makross.Context) error { 42 43 44 45 policy := helper.ObjPolicy() 46 content := policy.Sanitize(self.FormValue("content")) 47 pid := self.Args("nodeid").MustInt64() 48 title := self.FormValue("title") 49 images := self.FormValue("images") 50 51 cid := self.Args("cid").MustInt64() 52 var uid int64 53 _usr_, okay := self.Session.Get("SignedUser").(*models.User) 54 if okay { 55 uid = _usr_.Id 56 } 57 58 if (len(title) > 0) /* && (content != "") */ && (uid > 0) { 59 60 if nid, err := models.AddNode(title, content, images, pid, cid, uid); err != nil && uid > 0 { 61 62 self.Flash.Error(fmt.Sprint("增加节点出现错误:", err)) 63 return self.Redirect("/root/create/node/") 64 65 } else { 66 67 //新增点成功后 就去统计有多少个同样分类id的节点,把统计出来的数目写入该分类的nodecount项 68 if cid > 0 { 69 if nc, e := models.GetNodesByCid(cid, 0, 0, "id"); e == nil { 70 if catz, e := models.GetCategory(cid); e == nil { 71 catz.NodeCount = int64(len(*nc)) 72 models.PutCategory(cid, catz) 73 } 74 } 75 } 76 77 self.Flash.Success("新增节点成功!") 78 return self.Redirect("/root/read/node/" + strconv.FormatInt(nid, 10) + "/") 79 80 } 81 } else { 82 self.Flash.Error("节点最低要求标题不能为空!") 83 return self.Redirect("/root/create/node/") 84 85 } 86 87 }