/// <summary> /// 归档 /// </summary> public void Archive() { var model = new PostListModel(); string year = Jqpress.Framework.Web.PressRequest.GetQueryString("year"); string month = Jqpress.Framework.Web.PressRequest.GetQueryString("month"); DateTime date = Convert.ToDateTime(year + "-" + month); begindate = date.ToString(); enddate = date.AddMonths(1).ToString(); model.MetaKeywords = "归档"; model.MetaDescription = BlogConfig.GetSetting().SiteName + date.ToString("yyyy-MM") + "的归档"; model.PageTitle = "归档:" + date.ToString("yyyy-MM"); model.PostMessage = string.Format("<h2 class=\"post-message\">归档:{0}</h2>", date.ToString("yyyy-MM")); model.Url = ConfigHelper.SiteUrl + "archive/" + date.ToString("yyyyMM") + "/page/{0}" + BlogConfig.GetSetting().RewriteExtension; int recordCount = 0; model.PostList = PostService.GetPostList(BlogConfig.GetSetting().PageSizePostCount, pageindex, out recordCount, categoryId, tagId, userId, -1, 1, -1, 0, begindate, enddate, keyword); model.Pager = Pager.CreateHtml(BlogConfig.GetSetting().PageSizePostCount, recordCount, model.Url); model.IsDefault = 0; model.ThemeName = _themeName; th.Put("Model", model); Display(th, _listTemplate); }
/// <summary> /// 作者 /// </summary> public void Author() { var model = new PostListModel(); string userName = Jqpress.Framework.Web.PressRequest.GetQueryString("username"); UserInfo user = UserService.GetUser(userName); if (user != null) { userId = user.UserId; model.MetaKeywords = user.NickName; model.MetaDescription = user.Description; model.PageTitle = user.NickName; model.PostMessage = string.Format("<h2 class=\"post-message\">作者:{0}</h2>", user.NickName); model.Url = ConfigHelper.SiteUrl + "author/" + HttpContext.Current.Server.UrlEncode(userName) + "/page/{0}" + BlogConfig.GetSetting().RewriteExtension; int recordCount = 0; model.PostList = PostService.GetPostList(BlogConfig.GetSetting().PageSizePostCount, pageindex, out recordCount, categoryId, tagId, userId, -1, 1, -1, 0, begindate, enddate, keyword); model.Pager = Pager.CreateHtml(BlogConfig.GetSetting().PageSizePostCount, recordCount, model.Url); } model.IsDefault = 0; model.ThemeName = _themeName; th.Put("Model", model); Display(th, _listTemplate); }
/// <summary> /// 标签 /// </summary> public void Tag() { var model = new PostListModel(); TagInfo tag = TagService.GetTagBySlug(slug); if (tag != null) { tagId = tag.TagId; model.MetaKeywords = tag.CateName; model.MetaDescription = tag.Description; model.PageTitle = tag.CateName; model.PostMessage = string.Format("<h2 class=\"post-message\">标签:{0}</h2>", tag.CateName); model.Url = ConfigHelper.SiteUrl + "tag/" + HttpContext.Current.Server.UrlEncode(slug) + "/page/{0}" + BlogConfig.GetSetting().RewriteExtension; int recordCount = 0; model.PostList = PostService.GetPostList(BlogConfig.GetSetting().PageSizePostCount, pageindex, out recordCount, categoryId, tagId, userId, -1, 1, -1, 0, begindate, enddate, keyword); model.Pager = Pager.CreateHtml(BlogConfig.GetSetting().PageSizePostCount, recordCount, model.Url); } model.IsDefault = 0; model.ThemeName = _themeName; th.Put("Model", model); Display(th, _listTemplate); }
/// <summary> /// 首页 /// </summary> public void Home() { var model = new PostListModel(); model.IsDefault = 1; model.ThemeName = _themeName; model.PostMessage = string.Empty; model.Url = ConfigHelper.SiteUrl + "page/{0}" + BlogConfig.GetSetting().RewriteExtension;; int recordCount = 0; model.PostList = PostService.GetPostList(BlogConfig.GetSetting().PageSizePostCount, pageindex, out recordCount, categoryId, tagId, userId, -1, 1, -1, 0, begindate, enddate, keyword); model.Pager = Pager.CreateHtml(BlogConfig.GetSetting().PageSizePostCount, recordCount, model.Url); th.Put("Model", model); Display(th, _listTemplate); }
/// <summary> /// 搜索 /// </summary> public void Search() { var model = new PostListModel(); keyword = StringHelper.CutString(StringHelper.SqlEncode(Jqpress.Framework.Web.PressRequest.GetQueryString("keyword")), 0, 50); model.MetaKeywords = keyword; model.MetaDescription = keyword; model.PageTitle = keyword; model.PostMessage = string.Format("<h2 class=\"post-message\">搜索:{0}</h2>", keyword); model.Url = ConfigHelper.SiteUrl + "search" + BlogConfig.GetSetting().RewriteExtension + "?keyword=" + HttpContext.Current.Server.UrlEncode(keyword) + "&page={0}"; int recordCount = 0; model.PostList = PostService.GetPostList(BlogConfig.GetSetting().PageSizePostCount, pageindex, out recordCount, categoryId, tagId, userId, -1, 1, -1, 0, begindate, enddate, keyword); model.Pager = Pager.CreateHtml(BlogConfig.GetSetting().PageSizePostCount, recordCount, model.Url); model.IsDefault = 0; model.ThemeName = _themeName; th.Put("Model", model); Display(th, _listTemplate); }
/// <summary> /// 加载文章 /// </summary> protected void LoadPost() { th.Put(TagFields.IS_POST, "1"); if (RequestHelper.IsPost && !RequestHelper.IsCrossSitePost) { AddComment(); } PostInfo post = null; int postId = -1; string name = RequestHelper.QueryString("name"); if (StringHelper.IsInt(name)) { post = PostManager.GetPost(StringHelper.StrToInt(name, 0)); } else { post = PostManager.GetPost(StringHelper.SqlEncode(name)); } if (post == null) { ResponseError("文章未找到", "囧!没有找到此文章!", 404); } if (post.Status == (int)PostStatus.Draft) { ResponseError("文章未发布", "囧!此文章未发布!"); } string cookie = "isviewpost" + post.PostId; int isview = StringHelper.StrToInt(PageUtils.GetCookie(cookie), 0); //未访问或按刷新统计 if (isview == 0 || SettingManager.GetSetting().SiteTotalType == 1) { PostManager.UpdatePostViewCount(post.PostId, 1); } //未访问 if (isview == 0 && SettingManager.GetSetting().SiteTotalType == 2) { PageUtils.SetCookie(cookie, "1", 1440); } th.Put(TagFields.POST, post); th.Put(TagFields.PAGE_TITLE, post.Title); string metaKeywords = string.Empty; foreach (TagInfo tag in post.Tags) { metaKeywords += tag.Name + ","; } if (metaKeywords.Length > 0) { metaKeywords = metaKeywords.TrimEnd(','); } th.Put(TagFields.META_KEYWORDS, metaKeywords); string metaDescription = post.Summary; if (string.IsNullOrEmpty(post.Summary)) { metaDescription = post.Content; } th.Put(TagFields.META_DESCRIPTION, StringHelper.CutString(StringHelper.RemoveHtml(metaDescription), 50).Replace("\n", "")); int recordCount = 0; List <CommentInfo> commentList = CommentManager.GetCommentList(SettingManager.GetSetting().PageSizeCommentCount, Pager.PageIndex, out recordCount, SettingManager.GetSetting().CommentOrder, -1, post.PostId, 0, -1, -1, null); th.Put(TagFields.COMMENTS, commentList); th.Put(TagFields.PAGER, Pager.CreateHtml(SettingManager.GetSetting().PageSizeCommentCount, recordCount, post.PageUrl + "#comments")); //同时判断评论数是否一致 if (recordCount != post.CommentCount) { post.CommentCount = recordCount; PostManager.UpdatePost(post); } th.Put(TagFields.LOACHS, new LoachsDataManager()); if (System.IO.File.Exists(Server.MapPath(string.Format("{0}/themes/{1}/template/{2}", ConfigHelper.SitePath, themeName, post.Template)))) { Display(post.Template); } else { Display("post.html"); } }
/// <summary> /// 加载文章列表 /// </summary> protected void LoadPostList() { int categoryId = -1; int tagId = -1; int userId = -1; string keyword = string.Empty; string data = string.Empty; string begindate = string.Empty; string enddate = string.Empty; int pageindex = RequestHelper.QueryInt("page", 1); string messageinfo = string.Empty; string url = MakeUrl(string.Empty, string.Empty, string.Empty); if (pageType == "category") { string slug = RequestHelper.QueryString("slug"); CategoryInfo cate = CategoryManager.GetCategory(slug); if (cate != null) { categoryId = cate.CategoryId; th.Put(TagFields.META_KEYWORDS, cate.Name); th.Put(TagFields.META_DESCRIPTION, cate.Description); th.Put(TagFields.PAGE_TITLE, cate.Name); messageinfo = string.Format("<h2 class=\"post-message\">分类:{0}</h2>", cate.Name); url = MakeUrl("category", "slug", Server.UrlEncode(slug)); } } else if (pageType == "tag") { string slug = RequestHelper.QueryString("slug"); TagInfo tag = TagManager.GetTagBySlug(slug); if (tag != null) { tagId = tag.TagId; th.Put(TagFields.META_KEYWORDS, tag.Name); th.Put(TagFields.META_DESCRIPTION, tag.Description); th.Put(TagFields.PAGE_TITLE, tag.Name); messageinfo = string.Format("<h2 class=\"post-message\">标签:{0}</h2>", tag.Name); url = MakeUrl("tag", "slug", Server.UrlEncode(slug)); } } else if (pageType == "author") { string userName = RequestHelper.QueryString("username"); UserInfo user = UserManager.GetUser(userName); if (user != null) { userId = user.UserId; th.Put(TagFields.META_KEYWORDS, user.Name); th.Put(TagFields.META_DESCRIPTION, user.Description); th.Put(TagFields.PAGE_TITLE, user.Name); messageinfo = string.Format("<h2 class=\"post-message\">作者:{0}</h2>", user.Name); url = MakeUrl("author", "username", Server.UrlEncode(userName)); } } else if (pageType == "search") { keyword = StringHelper.CutString(StringHelper.SqlEncode(RequestHelper.QueryString("keyword")), 15); th.Put(TagFields.META_KEYWORDS, keyword); th.Put(TagFields.META_DESCRIPTION, keyword); th.Put(TagFields.PAGE_TITLE, keyword); th.Put(TagFields.SEARCH_KEYWORD, keyword); messageinfo = string.Format("<h2 class=\"post-message\">搜索:{0}</h2>", keyword); url = MakeUrl("search", "keyword", Server.UrlEncode(keyword)); } else if (pageType == "archive") //先按月归档 { string datestr = RequestHelper.QueryString("date"); string year = datestr.Substring(0, 4); string month = datestr.Substring(4, 2); DateTime date = Convert.ToDateTime(year + "-" + month); begindate = date.ToString(); enddate = date.AddMonths(1).ToString(); th.Put(TagFields.META_KEYWORDS, "归档"); th.Put(TagFields.META_DESCRIPTION, SettingManager.GetSetting().SiteName + date.ToString("yyyy-MM") + "的归档"); th.Put(TagFields.PAGE_TITLE, "归档:" + date.ToString("yyyy-MM")); messageinfo = string.Format("<h2 class=\"post-message\">归档:{0}</h2>", date.ToString("yyyy-MM")); url = MakeUrl("archive", "date", datestr); } else //首页 { if (pageindex == 1) { th.Put(TagFields.IS_DEFAULT, "1"); } } th.Put(TagFields.POST_MESSAGE, messageinfo); // th.Put(TagFields.PAGER_INDEX, pageindex); int recordCount = 0; th.Put(TagFields.POSTS, PostManager.GetPostList(SettingManager.GetSetting().PageSizePostCount, pageindex, out recordCount, categoryId, tagId, userId, -1, 1, -1, 0, begindate, enddate, keyword)); th.Put(TagFields.PAGER, Pager.CreateHtml(SettingManager.GetSetting().PageSizePostCount, recordCount, url)); Display("default.html"); }
/// <summary> /// 文章 /// </summary> public void Post() { var model = new PostModel(); model.IsPost = 1; PostInfo post = null; int postId = -1; string name = Jqpress.Framework.Web.PressRequest.GetQueryString("name"); if (Jqpress.Framework.Utils.Validate.IsInt(name)) { post = PostService.GetPost(Jqpress.Framework.Utils.TypeConverter.StrToInt(name, 0)); } else { post = PostService.GetPost(StringHelper.SqlEncode(name)); } if (post == null) { BasePage.ResponseError("文章未找到", "囧!没有找到此文章!", 404); } if (post.Status == (int)PostStatus.Draft) { BasePage.ResponseError("文章未发布", "囧!此文章未发布!"); } string cookie = "isviewpost" + post.PostId; int isview = Jqpress.Framework.Utils.TypeConverter.StrToInt(Jqpress.Framework.Web.PressRequest.GetCookie(cookie), 0); //未访问或按刷新统计 if (isview == 0 || BlogConfig.GetSetting().SiteTotalType == 1) { PostService.UpdatePostViewCount(post.PostId, 1); } //未访问 if (isview == 0 && BlogConfig.GetSetting().SiteTotalType == 2) { Jqpress.Framework.Web.PressRequest.WriteCookie(cookie, "1", 1440); } model.Post = post; model.PageTitle = post.Title; string metaKeywords = string.Empty; foreach (TagInfo tag in post.Tags) { metaKeywords += tag.CateName + ","; } if (metaKeywords.Length > 0) { metaKeywords = metaKeywords.TrimEnd(','); } model.MetaKeywords = metaKeywords; string metaDescription = post.Summary; if (string.IsNullOrEmpty(post.Summary)) { metaDescription = post.PostContent; } model.MetaDescription = StringHelper.CutString(StringHelper.RemoveHtml(metaDescription), 50).Replace("\n", ""); int recordCount = 0; model.Comments = CommentService.GetCommentList(BlogConfig.GetSetting().PageSizeCommentCount, Pager.PageIndex, out recordCount, BlogConfig.GetSetting().CommentOrder, -1, post.PostId, 0, -1, -1, null); model.Pager = Pager.CreateHtml(BlogConfig.GetSetting().PageSizeCommentCount, recordCount, post.PageUrl + "#comments"); //同时判断评论数是否一致 if (recordCount != post.CommentCount) { post.CommentCount = recordCount; PostService.UpdatePost(post); } model.IsDefault = 0; model.ThemeName = _themeName; model.EnableVerifyCode = BlogConfig.GetSetting().EnableVerifyCode; th.Put("Model", model); if (System.IO.File.Exists(HttpContext.Current.Server.MapPath(string.Format("{0}/themes/{1}/template/{2}", ConfigHelper.SitePath, _themeName, post.Template)))) { Display(th, post.Template); } else { Display(th, _postTemplate); } }