func Comment(context *GoInk.Context) { cid, _ := strconv.Atoi(context.Param("id")) if cid < 1 { Json(context, false).End() return } if model.GetContentById(cid) == nil { Json(context, false).End() return } data := context.Input() msg := validateComment(data) if msg != "" { Json(context, false).Set("msg", msg).End() return } co := new(model.Comment) co.Author = data["user"] co.Email = data["email"] co.Url = data["url"] co.Content = data["content"] co.Avatar = utils.Gravatar(co.Email, "50") co.Pid, _ = strconv.Atoi(data["pid"]) co.Ip = context.Ip co.UserAgent = context.UserAgent co.IsAdmin = false model.CreateComment(cid, co) Json(context, true).Set("comment", co.ToJson()).End() model.CreateMessage("comment", co) context.Do("comment_created", co) }
func Home(context *GoInk.Context) { context.Layout("home") page, _ := strconv.Atoi(context.Param("page")) articles, pager := model.GetPublishArticleList(page, getArticleListSize()) data := map[string]interface{}{ "Articles": articles, "Pager": pager, "SidebarHtml": SidebarHtml(context), } if page > 1 { data["Title"] = "第 " + strconv.Itoa(page) + " 页" } Theme(context).Layout("home").Render("index", data) }
func TopPage(context *GoInk.Context) { slug := context.Param("slug") page := model.GetContentBySlug(slug) if page == nil || page.Status != "publish" { context.Redirect("/") return } if page.IsLinked && page.Type == "page" { Theme(context).Layout("home").Render("page", map[string]interface{}{ "Title": page.Title, "Page": page, }) page.Hits++ return } context.Redirect("/") }
func TagArticles(ctx *GoInk.Context) { ctx.Layout("home") page, _ := strconv.Atoi(ctx.Param("page")) tag, _ := url.QueryUnescape(ctx.Param("tag")) size := getArticleListSize() articles, pager := model.GetTaggedArticleList(tag, page, getArticleListSize()) // fix dotted tag if len(articles) < 1 && strings.Contains(tag, "-") { articles, pager = model.GetTaggedArticleList(strings.Replace(tag, "-", ".", -1), page, size) } Theme(ctx).Layout("home").Render("index", map[string]interface{}{ "Articles": articles, "Pager": pager, "SidebarHtml": SidebarHtml(ctx), "Tag": tag, "Title": tag, }) }
func Article(context *GoInk.Context) { id, _ := strconv.Atoi(context.Param("id")) slug := context.Param("slug") article := model.GetContentById(id) if article == nil { context.Redirect("/") return } if article.Slug != slug || article.Type != "article" { context.Redirect("/") return } article.Hits++ Theme(context).Layout("home").Render("article", map[string]interface{}{ "Title": article.Title, "Article": article, "CommentHtml": CommentHtml(context, article), }) }
func PageEdit(context *GoInk.Context) { id, _ := strconv.Atoi(context.Param("id")) c := model.GetContentById(id) if c == nil { context.Redirect("/admin/pages/") return } if context.Method == "DELETE" { model.RemoveContent(c) Json(context, true).End() return } if context.Method == "POST" { data := context.Input() if !c.ChangeSlug(data["slug"]) { Json(context, false).Set("msg", "固定链接重复").End() return } c.Title = data["title"] c.Text = data["content"] //c.Tags = strings.Split(strings.Replace(data["tag"], ",", ",", -1), ",") c.IsComment = data["comment"] == "1" c.IsLinked = data["link"] == "1" //c.AuthorId, _ = strconv.Atoi(context.Cookie("token-user")) //c.Template = "blog.html" c.Status = data["status"] //c.Format = "markdown" model.SaveContent(c) Json(context, true).Set("content", c).End() context.Do("page_modified", c) //c.Type = "article" return } context.Layout("admin/admin") context.Render("admin/edit_page", map[string]interface{}{ "Title": "编辑文章", "Page": c, }) }
func PluginSetting(context *GoInk.Context) { key := context.Param("plugin_key") if key == "" { context.Redirect("/admin/plugins/") return } p := plugin.GetPluginByKey(key) if p == nil { context.Redirect("/admin/plugins/") return } if context.Method == "POST" { p.SetSetting(context.Input()) Json(context, true).End() context.Do("plugin_setting_saved", p) return } context.Layout("admin/admin") context.Render("admin/plugin_setting", map[string]interface{}{ "Title": "插件 - " + p.Name(), "Form": p.Form(), }) }