private void DisplayItem(Item item) { if (item != null && !item.IsLinkable() && Null.IsNull(ModuleBase.DefaultDisplayTabIdForPortal(item.PortalId))) { this.DisplayBrokenLinkMessage(item); } else { this.Response.Status = "301 Moved Permanently"; this.Response.RedirectLocation = item != null ? UrlGenerator.GetItemLinkUrl(item, this.PortalSettings) : Globals.NavigateURL(); } }
private void DisplayItem(Item item) { //check if item.URL is populated, if so figure out where to redirect. if (Utility.HasValue(item.Url)) { //do our redirect now Response.Status = "301 Moved Permanently"; Response.RedirectLocation = item.GetItemExternalUrl; } else { int defaultTabId = -1; object o = HostController.Instance.GetString(Utility.PublishDefaultDisplayPage + item.PortalId); if (o != null && Utility.HasValue(o.ToString())) { defaultTabId = Convert.ToInt32(o, CultureInfo.InvariantCulture); } //build language parameter string friendlyLanguageValue = string.Empty; string languageValue = string.Empty; if (!string.IsNullOrEmpty(_language)) { languageValue = "&language=" + _language; friendlyLanguageValue = "/language/" + _language + "/"; } if (item != null) { if (item.IsLinkable()) { if (HostController.Instance.GetString("UseFriendlyUrls") == "Y" && ModuleBase.EnablePublishFriendlyUrlsForPortal(item.PortalId)) { string pageName = item.Name.Trim(); if (pageName.Length > 50) { pageName = item.Name.Substring(0, 50); } pageName = Utility.OnlyAlphanumericCharacters(pageName); //Global.asax Application_BeginRequest checks for these values and will try to redirect to the non-existent page if (pageName.EndsWith("install", StringComparison.CurrentCultureIgnoreCase) || pageName.EndsWith("installwizard", StringComparison.CurrentCultureIgnoreCase)) { pageName = pageName.Substring(0, pageName.Length - 1); } pageName = pageName + ".aspx"; DotNetNuke.Entities.Portals.PortalSettings ps = Utility.GetPortalSettings(item.PortalId); var tc = new TabController(); TabInfo ti; //if the setting to "force display on this page" is set, be sure to send them there. if (item.ForceDisplayOnPage()) { ti = tc.GetTab(item.DisplayTabId, item.PortalId, false); if (ti.IsDeleted) { if (defaultTabId > 0) { ti = tc.GetTab(defaultTabId, item.PortalId, false); } } Response.Status = "301 Moved Permanently"; Response.RedirectLocation = DotNetNuke.Common.Globals.FriendlyUrl(ti, "/tabid/" + ti.TabID.ToString(CultureInfo.InvariantCulture) + "/itemid/" + item.ItemId.ToString(CultureInfo.InvariantCulture) + UsePageId(true), pageName, ps); } else if (_tabid > 0 && item.DisplayOnCurrentPage()) { ti = tc.GetTab(_tabid, item.PortalId, false); if (ti.IsDeleted) { ti = tc.GetTab(defaultTabId, item.PortalId, false); } //check if there is a ModuleID passed in the querystring, if so then send it in the querystring as well if (_modid > 0) { Response.Status = "301 Moved Permanently"; Response.RedirectLocation = DotNetNuke.Common.Globals.FriendlyUrl(ti, "/tabid/" + ti.TabID.ToString(CultureInfo.InvariantCulture) + "/itemid/" + item.ItemId.ToString(CultureInfo.InvariantCulture) + "/modid/" + _modid.ToString(CultureInfo.InvariantCulture) + UsePageId(true) + friendlyLanguageValue, pageName, ps); } else { Response.Status = "301 Moved Permanently"; Response.RedirectLocation = DotNetNuke.Common.Globals.FriendlyUrl(ti, "/tabid/" + ti.TabID.ToString(CultureInfo.InvariantCulture) + "/itemid/" + item.ItemId.ToString(CultureInfo.InvariantCulture) + UsePageId(true) + friendlyLanguageValue, pageName, ps); } } else { ti = tc.GetTab(item.DisplayTabId, item.PortalId, false); if (ti.IsDeleted) { ti = tc.GetTab(defaultTabId, item.PortalId, false); } Response.Status = "301 Moved Permanently"; Response.RedirectLocation = DotNetNuke.Common.Globals.FriendlyUrl(ti, "/tabid/" + ti.TabID.ToString(CultureInfo.InvariantCulture) + "/itemid/" + item.ItemId.ToString(CultureInfo.InvariantCulture) + UsePageId(true) + friendlyLanguageValue, pageName, ps); } } else { //we need to check for ForceOnCurrentPage var tc = new TabController(); TabInfo ti; DotNetNuke.Entities.Portals.PortalSettings ps = Utility.GetPortalSettings(item.PortalId); //if we are passing in a TabId use it if (item.ForceDisplayOnPage()) { ti = tc.GetTab(item.DisplayTabId, item.PortalId, false); Response.Status = "301 Moved Permanently"; Response.RedirectLocation = DotNetNuke.Common.Globals.NavigateURL(ti.TabID, ps, "", "itemid=" + item.ItemId.ToString(CultureInfo.InvariantCulture) + UsePageId(false) + languageValue); } if (_tabid > 0) { if (_modid > 0) { Response.Status = "301 Moved Permanently"; Response.RedirectLocation = DotNetNuke.Common.Globals.NavigateURL(_tabid, ps, "", "itemid=" + item.ItemId.ToString(CultureInfo.InvariantCulture) + "&modid=" + _modid.ToString(CultureInfo.InvariantCulture) + UsePageId(false) + languageValue); } else { Response.Status = "301 Moved Permanently"; Response.RedirectLocation = DotNetNuke.Common.Globals.NavigateURL(_tabid, ps, "", "itemid=" + item.ItemId + UsePageId(false) + languageValue); } } Response.Status = "301 Moved Permanently"; Response.RedirectLocation = DotNetNuke.Common.Globals.NavigateURL(item.DisplayTabId, ps, "", "itemid=" + item.ItemId + UsePageId(false) + languageValue); } } else { //display on the current page or send them elsewhere. //display broken link information //DisplayBrokenLinkMessage(item); if (defaultTabId > -1) { //send them to the Default Display Page Response.Status = "301 Moved Permanently"; Response.RedirectLocation = DotNetNuke.Common.Globals.NavigateURL(defaultTabId, PortalSettings, "", "itemid=" + item.ItemId.ToString(CultureInfo.InvariantCulture) + UsePageId(false) + languageValue); } else { DisplayBrokenLinkMessage(item); } } } else { Response.Status = "301 Moved Permanently"; Response.RedirectLocation = DotNetNuke.Common.Globals.NavigateURL(); } } }