func PeopleUcenter(rw http.ResponseWriter, req *http.Request) { people := isLogin(req) idpeople := hgForm.GetInt64(req, "idpeople", 0) tmpl := template.New("people-ucenter") tmpl.Funcs(template.FuncMap{"StringEqual": hgTemplate.StringEqual, "Int64Equal": hgTemplate.Int64Equal}) tmpl.ParseFiles( "template/front/header.tmpl", "template/front/people-ucenter.tmpl", "template/front/footer.tmpl", "template/front/people-ucenter-sidebar.tmpl") tmplInfo := hgTemplate.TmplInfo{} tmplInfo.AddData("people", people) if idpeople != 0 { vpeople := peopleModel.Find(idpeople) tmplInfo.AddData("vpeople", vpeople) } else { tmplInfo.AddData("vpeople", people) } tmplInfo.Js = []string{ "js/jquery.validate.js"} tmpl.ExecuteTemplate(rw, "people-ucenter", map[string]interface{}{"tmplInfo": tmplInfo}) }
/* * 创建文章 */ func PostCreate(rw http.ResponseWriter, req *http.Request) { postClasses := postClassModel.FindAll() people := isLogin(req) if req.Method == "GET" { postClass := postClassModel.FindAll() tmpl := template.New("post-createView") tmpl.Funcs(template.FuncMap{"StringEqual": hgTemplate.StringEqual, "Int64Equal": hgTemplate.Int64Equal}) tmpl.ParseFiles( "template/front/header.tmpl", "template/front/post-create.tmpl", "template/front/footer.tmpl", "template/front/sidebar.tmpl") tmplInfo := hgTemplate.TmplInfo{} tmplInfo.Js = []string{ "ckeditor/ckeditor.js"} tmplInfo.CurrentNav = "none" tmplInfo.Title = "Hello Golang -新建文章" tmplInfo.Description = "开源Go语言爱好者交流平台" tmplInfo.AddData("people", people) tmplInfo.AddData("postClass", postClass) tmplInfo.AddData("postClasses", postClasses) tmpl.ExecuteTemplate(rw, "post-create", map[string]interface{}{"tmplInfo": tmplInfo}) tmpl.Execute(rw, nil) } else if req.Method == "POST" { req.ParseForm() people := isLogin(req) var err error var post model.Post post.Class.IdpostClass, err = strconv.ParseInt(req.FormValue("post_class"), 10, 64) post.Content = req.FormValue("content") post.ReprintFrom = req.FormValue("reprint_from") post.ReprintUrl = req.FormValue("reprint_url") post.Title = req.FormValue("title") post.Author.Idpeople = people.Idpeople post.ReadNum = 0 post.ReplyNum = 0 postModel.Insert(post) http.Redirect(rw, req, "/post/?cat="+req.FormValue("post_class"), http.StatusFound) if err != nil { fmt.Println(err) } else { people = peopleModel.Find(people.Idpeople) people.Postnum++ peopleModel.Update(*people) } } }
func PeopleAvatarEdit(rw http.ResponseWriter, req *http.Request) { people := isLogin(req) if people == nil { errorMessage(rw, req) return } if req.Method == "GET" { tmpl := template.New("people-ucenter-avatar") tmpl.Funcs(template.FuncMap{"StringEqual": hgTemplate.StringEqual, "Int64Equal": hgTemplate.Int64Equal}) tmpl.ParseFiles( "template/front/header.tmpl", "template/front/people-ucenter-avatar.tmpl", "template/front/footer.tmpl", "template/front/people-ucenter-sidebar.tmpl") tmplInfo := hgTemplate.TmplInfo{} tmplInfo.AddData("people", people) tmplInfo.Js = []string{ "js/jquery.validate.js"} tmpl.ExecuteTemplate(rw, "people-ucenter-avatar", map[string]interface{}{"tmplInfo": tmplInfo}) } else if req.Method == "POST" { req.ParseMultipartForm(32 << 20) file, handler, err := req.FormFile("uploadfile") if err != nil { fmt.Println(err) return } defer file.Close() f, err := os.OpenFile("tmp/"+handler.Filename, os.O_RDWR|os.O_CREATE, 0777) if err != nil { fmt.Println(err) return } defer f.Close() io.Copy(f, file) f.Seek(0, 0) ext := hgQiniu.GetExt(handler.Filename) fk := hgQiniu.GetFk(people.Idpeople) err = hgQiniu.UploadAvatar(f, fk+"."+ext) if err == nil { people.Avatar = "http://hellogolang.qiniudn.com/" + fk + "." + ext peopleModel.Update(*people) http.Redirect(rw, req, "/people/ucenter/", http.StatusFound) } else { fmt.Println(err) return } } }
func errorMessage(rw http.ResponseWriter, req *http.Request) { tmpl := template.New("error-message") tmpl.Funcs(template.FuncMap{"StringEqual": hgTemplate.StringEqual, "Int64Equal": hgTemplate.Int64Equal}) tmpl.ParseFiles( "template/front/header.tmpl", "template/front/error-message.tmpl", "template/front/footer.tmpl") tmplInfo := hgTemplate.TmplInfo{} tmplInfo.Js = []string{ "js/jquery.validate.js"} tmpl.ExecuteTemplate(rw, "error-message", map[string]interface{}{"tmplInfo": tmplInfo}) }
func Index(rw http.ResponseWriter, req *http.Request) { postClasses := postClassModel.FindAll() people := isLogin(req) req.ParseForm() pageSize := 10 page := hgForm.GetInt(req, "page", 1) posts, count := postModel.FindAll(page, pageSize, map[string]string{}) pageHelper := hgPageination.Page{} pageHelper.Count = count pageHelper.PageSize = pageSize pageHelper.PageNum = page pageHelper.BaseUrl = "/?page=" pageHelper.Compute() tmpl := template.New("indexView") tmpl.Funcs(template.FuncMap{"StringEqual": hgTemplate.StringEqual, "Int64Equal": hgTemplate.Int64Equal, "IntEqual": hgTemplate.IntEqual, "RemoveHtmlTag": hgTemplate.RemoveHtmlTag}) tmpl.ParseFiles( "template/front/header.tmpl", "template/front/index.tmpl", "template/front/footer.tmpl", "template/front/page.tmpl", "template/front/sidebar.tmpl") tmplInfo := hgTemplate.TmplInfo{} tmplInfo.Js = []string{ "js/jquery.validate.js"} tmplInfo.CurrentNav = "index" tmplInfo.Title = "Hello Golang -首页" tmplInfo.Description = "开源Go语言爱好者交流平台" tmplInfo.AddData("people", people) tmplInfo.AddData("posts", posts) tmplInfo.AddData("pageHelper", pageHelper) tmplInfo.AddData("postClasses", postClasses) tmpl.ExecuteTemplate(rw, "index", map[string]interface{}{"tmplInfo": tmplInfo}) }
/* * 注册操作 */ func PeopleRegist(rw http.ResponseWriter, req *http.Request) { //检测是否已经登录 //people := isLogin(req) if req.Method == "GET" { tmpl := template.New("registView") tmpl.Funcs(template.FuncMap{"StringEqual": hgTemplate.StringEqual, "Int64Equal": hgTemplate.Int64Equal}) tmpl.ParseFiles( "template/front/header.tmpl", "template/front/people-regist.tmpl", "template/front/footer.tmpl") tmplInfo := hgTemplate.TmplInfo{} tmplInfo.Js = []string{ "js/jquery.validate.js"} tmpl.ExecuteTemplate(rw, "people-regist", map[string]interface{}{"tmplInfo": tmplInfo}) } else if req.Method == "POST" { req.ParseForm() var people model.People people.Name = req.FormValue("name") people.Email = req.FormValue("email") people.Password = req.FormValue("password") people.Avatar = "/assets/image/default.png" if checkRegistMess(people) { fmt.Println("start insert ...") people := peopleModel.Insert(people) if people != nil { session, _ := store.Get(req, "hellogolang.org-user") session.Values["name"] = people.Name session.Values["email"] = people.Email session.Values["idpeople"] = people.Idpeople session.Save(req, rw) http.Redirect(rw, req, "/", http.StatusFound) } } } }
func PeopleMessageEdit(rw http.ResponseWriter, req *http.Request) { people := isLogin(req) if people == nil { errorMessage(rw, req) return } if req.Method == "GET" { tmpl := template.New("people-ucenter") tmpl.Funcs(template.FuncMap{"StringEqual": hgTemplate.StringEqual, "Int64Equal": hgTemplate.Int64Equal}) tmpl.ParseFiles( "template/front/header.tmpl", "template/front/people-ucenter-edit.tmpl", "template/front/footer.tmpl", "template/front/people-ucenter-sidebar.tmpl") tmplInfo := hgTemplate.TmplInfo{} tmplInfo.AddData("people", people) tmplInfo.Js = []string{ "js/jquery.validate.js"} tmpl.ExecuteTemplate(rw, "people-ucenter-edit", map[string]interface{}{"tmplInfo": tmplInfo}) } else if req.Method == "POST" { req.ParseForm() people.Phone = req.FormValue("name") people.QQ = req.FormValue("qq") people.Homepage = req.FormValue("homepage") people.Company = req.FormValue("company") people.Signature = req.FormValue("signature") people.Resume = req.FormValue("resume") people.PubQQ = hgForm.GetInt(req, "pubqq", 0) people.PubEmail = hgForm.GetInt(req, "pubemail", 0) peopleModel.Update(*people) http.Redirect(rw, req, "/people/ucenter/", http.StatusFound) } }
/* * 文章分页列表 */ func PostPage(rw http.ResponseWriter, req *http.Request) { postClasses := postClassModel.FindAll() people := isLogin(req) req.ParseForm() pageSize := 10 page := hgForm.GetInt(req, "page", 1) conditions := make(map[string]string) pageHelper := hgPageination.Page{} //IdpostClass, err := strconv.ParseInt(req.FormValue("cat"), 10, 64) IdpostClass := hgForm.GetInt64(req, "cat", 0) if IdpostClass != 0 { conditions["post.idpost_class ="] = req.FormValue("cat") pageHelper.BaseUrl = "/post/?cat=" + req.FormValue("cat") + "&page=" } else { pageHelper.BaseUrl = "/post/?page=" } postClass := postClassModel.Find(IdpostClass) if postClass == nil { //出错处理 } posts, count := postModel.FindAll(page, pageSize, conditions) pageHelper.Count = count pageHelper.PageSize = pageSize pageHelper.PageNum = page pageHelper.Compute() tmpl := template.New("post-pageView") tmpl.Funcs(template.FuncMap{"StringEqual": hgTemplate.StringEqual, "Int64Equal": hgTemplate.Int64Equal, "IntEqual": hgTemplate.IntEqual, "RemoveHtmlTag": hgTemplate.RemoveHtmlTag}) tmpl.ParseFiles( "template/front/header.tmpl", "template/front/post-list.tmpl", "template/front/footer.tmpl", "template/front/page.tmpl", "template/front/sidebar.tmpl") tmplInfo := hgTemplate.TmplInfo{} tmplInfo.Js = []string{ "kindeditor/kindeditor-min.js", "kindeditor/lang/zh_CN.js"} tmplInfo.CurrentNav = "article" tmplInfo.Title = "Hello Golang -文章" tmplInfo.Description = "全新的go语言资讯!精选的go语言教程!经典的go语言代码!" tmplInfo.AddData("people", people) tmplInfo.AddData("posts", posts) tmplInfo.AddData("pageHelper", pageHelper) tmplInfo.AddData("postClasses", postClasses) tmplInfo.AddData("postClass", postClass) tmpl.ExecuteTemplate(rw, "post-list", map[string]interface{}{"tmplInfo": tmplInfo}) tmpl.Execute(rw, nil) }
/* * 查看单个文章页 */ func PostItem(rw http.ResponseWriter, req *http.Request) { postClasses := postClassModel.FindAll() req.ParseForm() people := isLogin(req) page := hgForm.GetInt(req, "page", 1) postId := hgForm.GetInt64(req, "postId", 0) if postId == 0 { //出错 } pageSize := 10 post := postModel.Find(postId) if post == nil { fmt.Println("post is nil...") //文章不存在 } comments, count := commentModel.FindAllByPostID(postId, page, pageSize) pageHelper := hgPageination.Page{} pageHelper.BaseUrl = "/post/item/?postId=" + strconv.FormatInt(postId, 10) + "&page=" pageHelper.Count = count pageHelper.PageSize = pageSize pageHelper.PageNum = page pageHelper.Compute() tmpl := template.New("post-itemView") tmpl.Funcs(template.FuncMap{"StringEqual": hgTemplate.StringEqual, "Int64Equal": hgTemplate.Int64Equal, "IntEqual": hgTemplate.IntEqual}) tmpl.ParseFiles( "template/front/header.tmpl", "template/front/post-item.tmpl", "template/front/footer.tmpl", "template/front/page.tmpl", "template/front/sidebar.tmpl") tmplInfo := hgTemplate.TmplInfo{} tmplInfo.Js = []string{ "js/jquery.validate.js"} tmplInfo.CurrentNav = "article" tmplInfo.Title = "Hello Golang -" + post.Title tmplInfo.Description = post.Title tmplInfo.AddData("people", people) tmplInfo.AddData("post", post) tmplInfo.AddData("pageHelper", pageHelper) tmplInfo.AddData("postClasses", postClasses) tmplInfo.AddData("comments", comments) tmpl.ExecuteTemplate(rw, "post-item", map[string]interface{}{"tmplInfo": tmplInfo}) tmpl.Execute(rw, nil) //更新阅读数 postModel.UpdateReadNum(*post) }