// 标签页面 func (this *IndexController) TagList() { tag := this.Ctx.Input.Param(":tag") if tag == "" { this.Abort("404") } // 定义一个Tag var sctag models.SC_Tag // 获取标签信息 models.GetOneByQuery(models.DbTag, bson.M{"slug": tag}, &sctag) if sctag.Id.Hex() == "" { this.Data["NotSearch"] = true this.TplNames = "home/index.html" return } tag = sctag.Caption this.Data["SiteName"] = tag this.Data["SubTitle"] = models.Option.SiteName this.Data["Keywords"] = models.Option.Keywords this.Data["Description"] = models.Option.Description // 定义一个Post列表 var scposts []models.SC_Post // 获取文章数量 count := models.Count(models.DbPost, bson.M{"type": "post", "tags": tag}) // 获取分页数据 page := pagination.NewPaginator(this.Ctx.Request, 10, count) // 设置分页数据 this.Data["paginator"] = page // 获取文章列表 models.GetDataByQuery(models.DbPost, page.Offset(), 10, "-created", bson.M{"type": "post", "tags": tag}, &scposts) // 设置文章列表 this.Data["Lists"] = scposts if len(scposts) <= 0 { this.Data["NotSearch"] = true } this.TplNames = "home/index.html" }
// 默认首页界面 func (this *AdminController) Index() { // 定义一个SC_Post列表 var scposts []models.SC_Post // 获取文章数量 count := models.Count(models.DbPost, nil) // 获取分页数据 page := pagination.NewPaginator(this.Ctx.Request, 10, count) // 设置分页数据 this.Data["paginator"] = page // 获取文章列表 models.GetDataByQuery(models.DbPost, page.Offset(), 10, "-created", nil, &scposts) // 设置文章列表 this.Data["Lists"] = scposts this.TplNames = "admin/index.html" }
// 搜索 func (this *IndexController) Search() { key := this.GetString("q") if key == "" { this.Redirect("/", 302) } this.Data["SiteName"] = `搜索 "` + key + `"` this.Data["SubTitle"] = models.Option.SiteName this.Data["Keywords"] = models.Option.Keywords this.Data["Description"] = models.Option.Description this.Data["Key"] = key // 定义一个Post列表 var scposts []models.SC_Post // 获取文章数量 count := models.Count(models.DbPost, bson.M{"type": "post", "$or": []bson.M{bson.M{"caption": bson.M{"$regex": bson.RegEx{key, "i"}}}, bson.M{"tags": bson.M{"$regex": bson.RegEx{key, "i"}}}}}) // 获取分页数据 page := pagination.NewPaginator(this.Ctx.Request, 10, count) // 设置分页数据 this.Data["paginator"] = page // 获取文章列表 models.GetDataByQuery(models.DbPost, page.Offset(), 10, "-created", bson.M{"type": "post", "$or": []bson.M{bson.M{"caption": bson.M{"$regex": bson.RegEx{key, "i"}}}, bson.M{"tags": bson.M{"$regex": bson.RegEx{key, "i"}}}}}, &scposts) // 设置文章列表 this.Data["Lists"] = scposts if len(scposts) <= 0 { this.Data["NotSearch"] = true // 定义一个SC_Tag列表 var tagslist []models.SC_Tag // 获取所有标签 models.GetAllByQuery(models.DbTag, nil, &tagslist) // 设置标签列表 this.Data["TagsList"] = tagslist } this.TplNames = "home/search.html" }
// 默认页面 func (this *IndexController) Index() { this.Data["Keywords"] = models.Option.Keywords this.Data["Description"] = models.Option.Description // 定义一个Post列表 var scposts []models.SC_Post // 获取文章数量 count := models.Count(models.DbPost, bson.M{"type": "post"}) // 获取分页数据 page := pagination.NewPaginator(this.Ctx.Request, 10, count) // 设置分页数据 this.Data["paginator"] = page // 获取文章列表 models.GetDataByQuery(models.DbPost, page.Offset(), 10, "-created", bson.M{"type": "post"}, &scposts) // 设置文章列表 this.Data["Lists"] = scposts this.TplNames = "home/index.html" }