public static TabInfo LocaliseTab(TabInfo tab, int portalId) { var culture = DNNAbstract.GetCurrentCulture(); Dictionary <int, EaloTabInfo> ealoTabs; if (!ealoTabLookup.TryGetValue(culture, out ealoTabs)) { ealoTabs = Tabs.GetAllTabsAsDictionary(culture, true); lock (ealoTabLookup) { if (!ealoTabLookup.ContainsKey(culture)) { ealoTabLookup.Add(culture, ealoTabs); } } } EaloTabInfo ealoTab; if (ealoTabs.TryGetValue(tab.TabID, out ealoTab)) { if (ealoTab.EaloTabName != null) { tab.TabName = ealoTab.EaloTabName.StringTextOrFallBack; } if (ealoTab.EaloTitle != null) { tab.Title = ealoTab.EaloTitle.StringTextOrFallBack; } } return(tab); }
private static string CreateScript(string jsObject, string scriptPath) { string result; jsObject = jsObject ?? ""; if (String.IsNullOrEmpty(scriptPath)) { var scheme = HttpContext.Current.Request.Url.Scheme; switch (jsObject) { case "jQuery": case "DDRjQuery": scriptPath = DNNAbstract.RequestJQuery() ? "" : (scheme + "://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"); break; case "jQuery.ui": scriptPath = scheme + "://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"; break; default: throw new ApplicationException(String.Format("Can't deduce script path for JavaScript object '{0}'", jsObject)); } } if (string.IsNullOrEmpty(jsObject)) { result = String.IsNullOrEmpty(scriptPath) ? "" : String.Format(@"<script type=""text/javascript"" src=""{0}""></script>", scriptPath); } else { if (jsObject == "DDRjQuery") { result = String.IsNullOrEmpty(scriptPath) ? @"<script type=""text/javascript"">DDRjQuery=window.DDRjQuery||jQuery;</script>" : String.Format( @"<script type=""text/javascript"">if (!window.DDRjQuery) {{if (window.jQuery && (jQuery.fn.jquery>=""1.3"")) DDRjQuery=jQuery; else document.write(unescape('%3Cscript src=""{0}"" type=""text/javascript""%3E%3C/script%3E'));}}</script><script type=""text/javascript"">if (!window.DDRjQuery) DDRjQuery=jQuery.noConflict(true);</script>", scriptPath); } else { result = String.IsNullOrEmpty(scriptPath) ? "" : String.Format( @"<script type=""text/javascript"">if (!({0})) document.write(unescape('%3Cscript src=""{1}"" type=""text/javascript""%3E%3C/script%3E'));</script>", GetObjectCheckScript(jsObject), scriptPath); } } return(result); }
internal static TemplateDefinition FromManifest(string manifestUrl) { var httpContext = HttpContext.Current; var cache = httpContext.Cache; var manifestPath = httpContext.Server.MapPath(manifestUrl); var baseDef = cache[manifestPath] as TemplateDefinition; if (baseDef == null) { baseDef = new TemplateDefinition { Folder = Path.GetDirectoryName(manifestUrl) }; var xml = new XmlDocument { XmlResolver = null }; xml.Load(manifestPath); var resolver = new PathResolver(baseDef.Folder); // ReSharper disable PossibleNullReferenceException foreach (XmlNode node in xml.DocumentElement.ChildNodes) // ReSharper restore PossibleNullReferenceException { if (node.NodeType == XmlNodeType.Element) { var elt = (XmlElement)node; switch (elt.LocalName) { case "template": baseDef.TemplateVirtualPath = GetResolvedPath(elt, resolver); baseDef.TemplatePath = httpContext.Server.MapPath(baseDef.TemplateVirtualPath); break; case "templateHead": baseDef.TemplateHeadPath = httpContext.Server.MapPath(GetResolvedPath(elt, resolver)); break; case "scripts": foreach (XmlElement scriptElt in elt.GetElementsByTagName("script")) { var jsObject = scriptElt.GetAttribute("jsObject"); var scriptPath = string.IsNullOrEmpty(scriptElt.InnerText.Trim()) ? string.Empty : Globals.ResolveUrl(GetResolvedPath(scriptElt, resolver)); if (string.IsNullOrEmpty(jsObject)) { var jsLibraryName = scriptElt.GetAttribute("name"); if (!string.IsNullOrEmpty(jsLibraryName)) { SpecificVersion specificityTemp; SpecificVersion?specificity = null; Version libraryVersion; if (!Version.TryParse(scriptElt.GetAttribute("version"), out libraryVersion)) { libraryVersion = null; } else if (Enum.TryParse(scriptElt.GetAttribute("specificVersion"), true, out specificityTemp)) { specificity = specificityTemp; } baseDef.ScriptLibraries[jsLibraryName] = Tuple.Create(libraryVersion, specificity); continue; } baseDef.ScriptUrls.Add(scriptPath); continue; } if (string.IsNullOrEmpty(scriptPath)) { // support legacy named jsObjects that map to libraries if (jsObject.Equals("jQuery")) { Version libraryVersion = null; SpecificVersion?specificity = null; baseDef.ScriptLibraries[CommonJs.jQuery] = Tuple.Create(libraryVersion, specificity); baseDef.ScriptLibraries[CommonJs.jQueryMigrate] = Tuple.Create(libraryVersion, specificity); } else if (jsObject.Equals("jQuery.ui")) { Version libraryVersion = null; SpecificVersion?specificity = null; baseDef.ScriptLibraries[CommonJs.jQueryUI] = Tuple.Create(libraryVersion, specificity); } continue; } var script = CreateScript(jsObject, scriptPath); if (!string.IsNullOrEmpty(script)) { baseDef.ScriptKeys.Add(jsObject); baseDef.Scripts.Add(jsObject, script); } } break; case "stylesheets": foreach (XmlElement cssElt in elt.GetElementsByTagName("stylesheet")) { var cssPath = Globals.ResolveUrl(GetResolvedPath(cssElt, resolver)); baseDef.StyleSheets.Add(cssPath); } break; case "defaultClientOptions": foreach (XmlElement optionElt in elt.GetElementsByTagName("clientOption")) { var optionName = optionElt.GetAttribute("name"); var optionType = optionElt.GetAttribute("type"); var optionValue = optionElt.GetAttribute("value"); if (string.IsNullOrEmpty(optionType)) { optionType = "passthrough"; } switch (optionType) { case "number": baseDef.DefaultClientOptions.Add(new ClientNumber(optionName, optionValue)); break; case "boolean": baseDef.DefaultClientOptions.Add(new ClientBoolean(optionName, optionValue)); break; case "string": baseDef.DefaultClientOptions.Add(new ClientString(optionName, optionValue)); break; default: baseDef.DefaultClientOptions.Add(new ClientOption(optionName, optionValue)); break; } } break; case "defaultTemplateArguments": foreach (XmlElement argElt in elt.GetElementsByTagName("templateArgument")) { var argName = argElt.GetAttribute("name"); var argValue = argElt.GetAttribute("value"); baseDef.DefaultTemplateArguments.Add(new TemplateArgument(argName, argValue)); } break; } } } foreach (var processor in DNNAbstract.SupportedTemplateProcessors()) { if (processor.LoadDefinition(baseDef)) { baseDef.Processor = processor; break; } } if (baseDef.Processor == null) { throw new ApplicationException(string.Format("Can't find processor for manifest {0}", manifestPath)); } cache.Insert(manifestPath, baseDef, new CacheDependency(new[] { manifestPath, baseDef.TemplatePath })); } var result = baseDef.Clone(); result.Reset(); return(result); }
public string GetUserURL() { return(DNNAbstract.GetUserUrl()); }
public string GetLoginURL() { return(DNNAbstract.GetLoginUrl()); }
internal static TemplateDefinition FromManifest(string manifestUrl) { var httpContext = HttpContext.Current; var cache = httpContext.Cache; var manifestPath = httpContext.Server.MapPath(manifestUrl); var baseDef = cache[manifestPath] as TemplateDefinition; if (baseDef == null) { baseDef = new TemplateDefinition { Folder = Path.GetDirectoryName(manifestUrl) }; var xml = new XmlDocument(); xml.Load(manifestPath); var resolver = new PathResolver(baseDef.Folder); // ReSharper disable PossibleNullReferenceException foreach (XmlNode node in xml.DocumentElement.ChildNodes) // ReSharper restore PossibleNullReferenceException { if (node.NodeType == XmlNodeType.Element) { var elt = (XmlElement)node; switch (elt.LocalName) { case "template": baseDef.TemplateVirtualPath = GetResolvedPath(elt, resolver); baseDef.TemplatePath = httpContext.Server.MapPath(baseDef.TemplateVirtualPath); break; case "templateHead": baseDef.TemplateHeadPath = httpContext.Server.MapPath(GetResolvedPath(elt, resolver)); break; case "scripts": foreach (XmlElement scriptElt in elt.GetElementsByTagName("script")) { var jsObject = scriptElt.GetAttribute("jsObject"); var scriptPath = String.IsNullOrEmpty(scriptElt.InnerText.Trim()) ? "" : Globals.ResolveUrl(GetResolvedPath(scriptElt, resolver)); var key = String.IsNullOrEmpty(jsObject) ? scriptPath : jsObject; var script = CreateScript(jsObject, scriptPath); if (!String.IsNullOrEmpty(script)) { baseDef.ScriptKeys.Add(key); baseDef.Scripts.Add(key, script); } } break; case "stylesheets": foreach (XmlElement cssElt in elt.GetElementsByTagName("stylesheet")) { var cssPath = Globals.ResolveUrl(GetResolvedPath(cssElt, resolver)); baseDef.StyleSheets.Add(cssPath); } break; case "defaultClientOptions": foreach (XmlElement optionElt in elt.GetElementsByTagName("clientOption")) { var optionName = optionElt.GetAttribute("name"); var optionType = optionElt.GetAttribute("type"); var optionValue = optionElt.GetAttribute("value"); if (String.IsNullOrEmpty(optionType)) { optionType = "passthrough"; } switch (optionType) { case "number": baseDef.DefaultClientOptions.Add(new ClientNumber(optionName, optionValue)); break; case "boolean": baseDef.DefaultClientOptions.Add(new ClientBoolean(optionName, optionValue)); break; case "string": baseDef.DefaultClientOptions.Add(new ClientString(optionName, optionValue)); break; default: baseDef.DefaultClientOptions.Add(new ClientOption(optionName, optionValue)); break; } } break; case "defaultTemplateArguments": foreach (XmlElement argElt in elt.GetElementsByTagName("templateArgument")) { var argName = argElt.GetAttribute("name"); var argValue = argElt.GetAttribute("value"); baseDef.DefaultTemplateArguments.Add(new TemplateArgument(argName, argValue)); } break; } } } foreach (var processor in DNNAbstract.SupportedTemplateProcessors()) { if (processor.LoadDefinition(baseDef)) { baseDef.Processor = processor; break; } } if (baseDef.Processor == null) { throw new ApplicationException(String.Format("Can't find processor for manifest {0}", manifestPath)); } cache.Insert(manifestPath, baseDef, new CacheDependency(new[] { manifestPath, baseDef.TemplatePath })); } var result = baseDef.Clone(); result.Reset(); return(result); }