// 项目详情 // uri: /p/{uniq} func ProjectDetailHandler(rw http.ResponseWriter, req *http.Request) { vars := mux.Vars(req) project := service.FindProject(vars["uniq"]) if project == nil { util.Redirect(rw, req, "/projects") return } likeFlag := 0 hadCollect := 0 user, ok := filter.CurrentUser(req) if ok { uid := user["uid"].(int) likeFlag = service.HadLike(uid, project.Id, model.TYPE_PROJECT) hadCollect = service.HadFavorite(uid, project.Id, model.TYPE_PROJECT) } service.Views.Incr(req, model.TYPE_PROJECT, project.Id) // 为了阅读数即时看到 project.Viewnum++ req.Form.Set(filter.CONTENT_TPL_KEY, "/template/projects/detail.html,/template/common/comment.html") filter.SetData(req, map[string]interface{}{"activeProjects": "active", "project": project, "likeflag": likeFlag, "hadcollect": hadCollect}) }
// 修改项目 // uri: /project/modify{json:(|.json)} func ModifyProjectHandler(rw http.ResponseWriter, req *http.Request) { id := req.FormValue("id") if id == "" { util.Redirect(rw, req, "/projects") return } vars := mux.Vars(req) // 请求编辑项目页面 if req.Method != "POST" || vars["json"] == "" { project := service.FindProject(id) req.Form.Set(filter.CONTENT_TPL_KEY, "/template/projects/new.html") filter.SetData(req, map[string]interface{}{"project": project, "activeProjects": "active"}) return } user, _ := filter.CurrentUser(req) err := service.PublishProject(user, req.PostForm) if err != nil { if err == service.NotModifyAuthorityErr { rw.WriteHeader(http.StatusForbidden) return } fmt.Fprint(rw, `{"ok": 0, "error":"内部服务错误!"}`) return } fmt.Fprint(rw, `{"ok": 1, "data":""}`) }