private void PopulateControls() { XmlDocument doc = GetPageXml(zoneId, pageNumber, config.PageSize, out totalPages); if (NewsHelper.IsAjaxRequest(Request) && WebUtils.ParseBoolFromQueryString("isajax", false)) { Response.Write(XmlHelper.TransformXML(SiteUtils.GetXsltBasePath("news", config.XsltFileName), doc)); Response.End(); return; } XmlHelper.XMLTransform(xmlTransformer, SiteUtils.GetXsltBasePath("news", config.XsltFileName), doc); string pageUrlLeaveOutPageNumber = SiteUtils.BuildUrlLeaveOutParam(Request.RawUrl, "pagenumber"); string pageUrl = pageUrlLeaveOutPageNumber; if (pageUrl.Contains("?")) { pageUrl += "&pagenumber={0}"; } else { pageUrl += "?pagenumber={0}"; } pgr.PageURLFormat = pageUrl; pgr.ShowFirstLast = true; pgr.PageSize = config.PageSize; pgr.PageCount = totalPages; pgr.CurrentIndex = pageNumber; divPager.Visible = (totalPages > 1); // Canonical pagin string nextUrl = string.Format(pageUrl, pageNumber + 1).Replace("&pagenumber=", "&pagenumber="); string previousUrl = string.Format(pageUrl, pageNumber - 1).Replace("&pagenumber=", "&pagenumber="); if (totalPages > 1) { if (pageNumber == 1) // first page { basePage.AdditionalMetaMarkup += "\n<link rel='next' href='" + nextUrl + "' />"; } else if (pageNumber == totalPages) // last page { basePage.AdditionalMetaMarkup += "\n<link rel='prev' href='" + previousUrl + "' />"; } else //other pages { basePage.AdditionalMetaMarkup += "\n<link rel='prev' href='" + previousUrl + "' />"; basePage.AdditionalMetaMarkup += "\n<link rel='next' href='" + nextUrl + "' />"; } } if (WebUtils.ParseInt32FromQueryString("pagenumber", -1) == 1) { basePage.AdditionalMetaMarkup += "\n<link rel=\"canonical\" href=\"" + pageUrlLeaveOutPageNumber + "\" />"; } }
protected void PopulateControls() { if (parametersAreInvalid) { pnlInnerWrap.Visible = false; return; } if (news.IsDeleted) { if (WebConfigSettings.Custom404Page.Length > 0) { Server.Transfer(WebConfigSettings.Custom404Page); } else { Server.Transfer("~/PageNotFound.aspx"); } return; } if (news.IsPublished && news.EndDate < DateTime.UtcNow) { expired.Visible = true; //http://support.google.com/webmasters/bin/answer.py?hl=en&answer=40132 // 410 means the resource is gone but once existed // google treats it as more permanent than a 404 // and it should result in de-indexing the content Response.StatusCode = 410; Response.StatusDescription = "Content Expired"; if ( !NewsPermission.CanUpdate || !basePage.UserCanAuthorizeZone(news.ZoneID) ) { pnlInnerWrap.Visible = false; return; } } // if not published only the editor can see it if (!news.IsPublished) { bool stopRedirect = false; if (WebConfigSettings.EnableContentWorkflow && basePage.SiteInfo.EnableContentWorkflow) { if (news.StateId.HasValue && WorkflowHelper.UserHasStatePermission(workflowId, news.StateId.Value)) { stopRedirect = true; } } else { if ( (currentUser != null && currentUser.UserGuid == news.UserGuid) || (NewsPermission.CanUpdate && basePage.UserCanAuthorizeZone(news.ZoneID)) ) { stopRedirect = true; } } if (!stopRedirect) { pnlInnerWrap.Visible = false; WebUtils.SetupRedirect(this, SiteUtils.GetCurrentZoneUrl()); return; } } SetupMetaTags(); XmlDocument doc = new XmlDocument(); doc.LoadXml("<NewsDetail></NewsDetail>"); XmlElement root = doc.DocumentElement; //XmlHelper.AddNode(doc, root, "ModuleTitle", module.ModuleTitle); XmlHelper.AddNode(doc, root, "ZoneTitle", basePage.CurrentZone.Name); XmlHelper.AddNode(doc, root, "ZoneDescription", basePage.CurrentZone.Description); XmlHelper.AddNode(doc, root, "ViewMore", NewsResources.NewsMoreLinkText); XmlHelper.AddNode(doc, root, "Title", news.Title); XmlHelper.AddNode(doc, root, "SubTitle", news.SubTitle); XmlHelper.AddNode(doc, root, "ZoneUrl", SiteUtils.GetCurrentZoneUrl()); if (module.ResourceFileDef.Length > 0 && module.ResourceKeyDef.Length > 0) { List <string> lstResourceKeys = module.ResourceKeyDef.SplitOnCharAndTrim(';'); foreach (string item in lstResourceKeys) { XmlHelper.AddNode(doc, root, item, ResourceHelper.GetResourceString(module.ResourceFileDef, item)); } } XmlHelper.AddNode(doc, root, "EditLink", NewsHelper.BuildEditLink(news, basePage, userCanUpdate, currentUser)); //XmlHelper.AddNode(doc, root, "ViewCVLink", GetCVListLink(news.NewsID, news.CommentCount, NewsPermission.CanManageComment)); XmlHelper.AddNode(doc, root, "ApplyText", NewsResources.JobApplyLable); XmlHelper.AddNode(doc, root, "ApplyUrl", this.siteRoot + "/News/JobApplyDialog.aspx?zoneid=" + zoneId.ToString() + "&NewsID=" + newsId.ToString()); XmlHelper.AddNode(doc, root, "ShowOption", news.ShowOption.ToString()); XmlHelper.AddNode(doc, root, "CreatedDate", FormatDate(news.StartDate, NewsResources.NewsDateFormat)); XmlHelper.AddNode(doc, root, "CreatedTime", FormatDate(news.StartDate, NewsResources.NewsTimeFormat)); XmlHelper.AddNode(doc, root, "CreatedDD", FormatDate(news.StartDate, "dd")); XmlHelper.AddNode(doc, root, "CreatedYY", FormatDate(news.StartDate, "yy")); XmlHelper.AddNode(doc, root, "CreatedYYYY", FormatDate(news.StartDate, "yyyy")); XmlHelper.AddNode(doc, root, "CreatedMM", FormatDate(news.StartDate, "MM")); if (WorkingCulture.DefaultName.ToLower() == "vi-vn") { string monthVI = "Tháng " + FormatDate(news.StartDate, "MM"); XmlHelper.AddNode(doc, root, "CreatedMMM", monthVI); XmlHelper.AddNode(doc, root, "CreatedMMMM", monthVI); } else { XmlHelper.AddNode(doc, root, "CreatedMMM", FormatDate(news.StartDate, "MMM")); XmlHelper.AddNode(doc, root, "CreatedMMMM", FormatDate(news.StartDate, "MMMM")); } XmlHelper.AddNode(doc, root, "Code", news.Code); XmlHelper.AddNode(doc, root, "BriefContent", news.BriefContent); XmlHelper.AddNode(doc, root, "FullContent", news.FullContent); XmlHelper.AddNode(doc, root, "ViewCount", news.Viewed.ToString()); XmlHelper.AddNode(doc, root, "FileUrl", news.FileAttachment); if (displaySettings.ShowNextPreviousLink) { BuildNextPreviousXml(doc, root); } XmlHelper.AddNode(doc, root, "FacebookLike", RenderFacebookLike()); XmlHelper.AddNode(doc, root, "PlusOne", RenderPlusOne()); XmlHelper.AddNode(doc, root, "TweetThis", RenderTweetThis()); XmlHelper.AddNode(doc, root, "Print", RenderPrinter()); XmlHelper.AddNode(doc, root, "Email", RenderEmailSubject()); XmlHelper.AddNode(doc, root, "FullUrl", NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID)); if (displaySettings.ShowAttribute) { BuildNewsAttributesXml(doc, root, languageId); } BuildNewsImagesXml(doc, root); #region Start news other BuildNewsOtherXml(doc, root, zoneId, pageNumber, config.RelatedItemsToShow, out totalPages); if (NewsHelper.IsAjaxRequest(Request) && WebUtils.ParseBoolFromQueryString("isajax", false)) { Response.Write(XmlHelper.TransformXML(SiteUtils.GetXsltBasePath("news", config.XsltFileNameDetailPage), doc)); Response.End(); return; } string pageUrlLeaveOutPageNumber = NewsHelper.FormatNewsUrl(news.Url, news.NewsID, news.ZoneID); if (config.HidePaginationOnDetailPage) { divPager.Visible = false; } else { string pageUrl = pageUrlLeaveOutPageNumber; if (WebUtils.ParseInt32FromQueryString("NewsId", -1) == -1 && config.LoadFirstItem) { pageUrl = SiteUtils.GetCurrentZoneUrl(); } if (pageUrl.Contains("?")) { pageUrl += "&pagenumber={0}"; } else { pageUrl += "?pagenumber={0}"; } pgr.PageURLFormat = pageUrl; pgr.ShowFirstLast = true; pgr.PageSize = config.PageSize; pgr.PageCount = totalPages; pgr.CurrentIndex = pageNumber; divPager.Visible = (totalPages > 1); } if (WebUtils.ParseInt32FromQueryString("pagenumber", -1) == 1) { basePage.AdditionalMetaMarkup += "\n<link rel=\"canonical\" href=\"" + pageUrlLeaveOutPageNumber + "\" />"; } #endregion XmlHelper.XMLTransform(xmlTransformer, SiteUtils.GetXsltBasePath("news", config.XsltFileNameDetailPage), doc); News.IncrementViewedCount(news.NewsID); }