// 消息列表 func (MessageController) ReadList(ctx echo.Context) error { user := ctx.Get("user").(*model.Me) msgtype := ctx.Param("msgtype") if msgtype == "" { msgtype = "system" } curPage := goutils.MustInt(ctx.QueryParam("p"), 1) paginator := logic.NewPaginator(curPage) var ( messages []map[string]interface{} total int64 ) switch msgtype { case "system": messages = logic.DefaultMessage.FindSysMsgsByUid(ctx, user.Uid, paginator) total = logic.DefaultMessage.SysMsgCount(ctx, user.Uid) case "inbox": messages = logic.DefaultMessage.FindToMsgsByUid(ctx, user.Uid, paginator) total = logic.DefaultMessage.ToMsgCount(ctx, user.Uid) case "outbox": messages = logic.DefaultMessage.FindFromMsgsByUid(ctx, user.Uid, paginator) total = logic.DefaultMessage.FromMsgCount(ctx, user.Uid) default: return ctx.Redirect(http.StatusSeeOther, "/") } pageHtml := paginator.SetTotal(total).GetPageHtml(fmt.Sprintf("/message/%s", msgtype)) return render(ctx, "messages/list.html", map[string]interface{}{"messages": messages, "msgtype": msgtype, "page": template.HTML(pageHtml)}) }
// ReadCatResources 某个分类的资源列表 func (ResourceController) ReadCatResources(ctx echo.Context) error { curPage := goutils.MustInt(ctx.QueryParam("p"), 1) paginator := logic.NewPaginator(curPage) catid := goutils.MustInt(ctx.Param("catid")) resources, total := logic.DefaultResource.FindByCatid(ctx, paginator, catid) pageHtml := paginator.SetTotal(total).GetPageHtml(ctx.Request().URL().Path()) return render(ctx, "resources/index.html", map[string]interface{}{"activeResources": "active", "resources": resources, "categories": logic.AllCategory, "page": template.HTML(pageHtml), "curCatid": catid}) }
// NodeTopics 某节点下的主题列表 func (TopicController) NodeTopics(ctx echo.Context) error { curPage := goutils.MustInt(ctx.QueryParam("p"), 1) paginator := logic.NewPaginator(curPage) querystring, nid := "nid=?", goutils.MustInt(ctx.Param("nid")) topics := logic.DefaultTopic.FindAll(ctx, paginator, "topics.mtime DESC", querystring, nid) total := logic.DefaultTopic.Count(ctx, querystring, nid) pageHtml := paginator.SetTotal(total).GetPageHtml(ctx.Request().URL().Path()) // 当前节点信息 node := logic.GetNode(nid) return render(ctx, "topics/node.html", map[string]interface{}{"activeTopics": "active", "topics": topics, "page": template.HTML(pageHtml), "total": total, "node": node}) }
func (TopicController) topicList(ctx echo.Context, view, orderBy, querystring string, args ...interface{}) error { curPage := goutils.MustInt(ctx.QueryParam("p"), 1) paginator := logic.NewPaginator(curPage) topics := logic.DefaultTopic.FindAll(ctx, paginator, orderBy, querystring, args...) total := logic.DefaultTopic.Count(ctx, querystring, args...) pageHtml := paginator.SetTotal(total).GetPageHtml(ctx.Request().URL().Path()) data := map[string]interface{}{ "topics": topics, "activeTopics": "active", "nodes": logic.GenNodes(), "view": view, "page": template.HTML(pageHtml), } return render(ctx, "topics/list.html", data) }