func (this *UserRouter) Home() { this.Data["IsUserHomePage"] = true this.TplNames = "user/home.html" var user models.User if this.getUser(&user) { return } //recent posts and comments limit := 5 var posts []*models.Post var comments []*models.Comment user.RecentPosts().Limit(limit).RelatedSel().All(&posts) user.RecentComments().Limit(limit).RelatedSel().All(&comments) this.Data["TheUserPosts"] = posts this.Data["TheUserComments"] = comments //follow topics var ftopics []*models.FollowTopic var topics []*models.Topic ftNums, _ := models.FollowTopics().Filter("User", &user.Id).Limit(8).OrderBy("-Created").RelatedSel("Topic").All(&ftopics, "Topic") if ftNums > 0 { topics = make([]*models.Topic, 0, ftNums) for _, ft := range ftopics { topics = append(topics, ft.Topic) } } this.Data["TheUserFollowTopics"] = topics this.Data["TheUserFollowTopicsMore"] = ftNums >= 8 //favorite posts var favPostIds orm.ParamsList var favPosts []models.Post favNums, _ := user.FavoritePosts().Limit(8).OrderBy("-Created").ValuesFlat(&favPostIds, "Post") if favNums > 0 { qs := models.Posts().Filter("Id__in", favPostIds) qs = qs.OrderBy("-Created").RelatedSel() models.ListObjects(qs, &favPosts) } this.Data["TheUserFavoritePosts"] = favPosts this.Data["TheUserFavoritePostsMore"] = favNums >= 8 }
func (this *UserRouter) FavoritePosts() { this.TplNames = "user/favorite-posts.html" var user models.User if this.getUser(&user) { return } var postIds orm.ParamsList var posts []models.Post nums, _ := user.FavoritePosts().OrderBy("-Created").ValuesFlat(&postIds, "Post") if nums > 0 { qs := models.Posts().Filter("Id__in", postIds) cnt, _ := models.CountObjects(qs) pager := this.SetPaginator(setting.PostCountPerPage, cnt) qs = qs.OrderBy("-Created").Limit(setting.PostCountPerPage, pager.Offset()).RelatedSel() models.ListObjects(qs, &posts) } this.Data["TheUserFavoritePosts"] = posts }