public static string GetFriendlyURL(int?ModuleID, PortalSettings pS, string QueryParameters, URLEntity u) { string strLanguage = string.IsNullOrEmpty(u.Language) ? URLManager.GetCurrentLanguage() : u.Language; string path = "~/Default.aspx"; if (!string.IsNullOrEmpty(strLanguage)) { pS.CultureCode = strLanguage; } else { pS.CultureCode = pS.DefaultLanguage; } TabInfo tab = null; if (u.PageName) { if (ModuleID.HasValue) { int?ModuleTabID = null; var Index = GetModuleTabIndex(); if (Index.ContainsKey(ModuleID.Value)) { ModuleTabID = Index[ModuleID.Value]; } else { ModuleInfo minfo = new ModuleController().GetModule(ModuleID.Value, Null.NullInteger, false); ModuleTabID = minfo.TabID; } if (ModuleTabID.HasValue) { tab = new TabController().GetTab(ModuleTabID.Value, pS.PortalId); } } else if (pS.HomeTabId != pS.ActiveTab.TabID) { tab = pS.ActiveTab; } } if (tab == null) { tab = new TabController().GetTab(pS.HomeTabId, pS.PortalId); } path = AppendQueryParameters(pS, tab.TabID, path, QueryParameters, strLanguage, u); if (pS != null && pS.PortalAlias != null) { return(FriendlyUrlProvider.Instance().FriendlyUrl(tab, path, u.Slug, pS as IPortalSettings)); } else { return(path.TrimStart('~', '/') + "&" + u.Slug); } }