public IViewEngine CreateThemeViewEngine(CreateThemeViewEngineParams parameters) { var partialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{0}.php" }; var areaPartialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{2}/{1}/{0}.php" }; var viewEngine = new PhpViewEngine(_phpRuntimeWork) { MasterLocationFormats = DisabledFormats, ViewLocationFormats = DisabledFormats, PartialViewLocationFormats = partialViewLocationFormats, AreaMasterLocationFormats = DisabledFormats, AreaViewLocationFormats = DisabledFormats, AreaPartialViewLocationFormats = areaPartialViewLocationFormats, ViewLocationCache = new ThemeViewLocationCache(parameters.VirtualPath), }; return(viewEngine); }
public IViewEngine CreateThemeViewEngine(CreateThemeViewEngineParams parameters) { var partialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{0}.liquid" }; var areaPartialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{2}/{1}/{0}.liquid" }; var viewEngine = new LiquidViewEngine(_liquidTemplateServiceWork) { MasterLocationFormats = DisabledFormats, ViewLocationFormats = DisabledFormats, PartialViewLocationFormats = partialViewLocationFormats, AreaMasterLocationFormats = DisabledFormats, AreaViewLocationFormats = DisabledFormats, AreaPartialViewLocationFormats = areaPartialViewLocationFormats, ViewLocationCache = new ThemeViewLocationCache(parameters.VirtualPath), }; return(viewEngine); }
/// <summary> /// 创建主题视图引擎。 /// </summary> /// <param name="parameters">创建主题视图引擎所需的参数。</param> /// <returns>视图引擎。</returns> public IViewEngine CreateThemeViewEngine(CreateThemeViewEngineParams parameters) { // /Views/{area}/{controller}/{viewName} // /Views/{partialName} // /Views/"DisplayTemplates/"+{templateName} // /Views/"EditorTemplates/+{templateName} var partialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{0}.cshtml", }; var areaPartialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{2}/{1}/{0}.cshtml", }; var viewEngine = new RazorViewEngine { MasterLocationFormats = DisabledFormats, ViewLocationFormats = DisabledFormats, PartialViewLocationFormats = partialViewLocationFormats, AreaMasterLocationFormats = DisabledFormats, AreaViewLocationFormats = DisabledFormats, AreaPartialViewLocationFormats = areaPartialViewLocationFormats, ViewLocationCache = new ThemeViewLocationCache(parameters.VirtualPath), }; return(viewEngine); }
private IEnumerable <IViewEngine> CreateThemeViewEngines(ExtensionDescriptor theme) { var themeParams = new CreateThemeViewEngineParams { VirtualPath = theme.Location }; return(viewEngineProviders.Select(vep => vep.CreateThemeViewEngine(themeParams))); }
public new IViewEngine CreateThemeViewEngine(CreateThemeViewEngineParams parameters) { // This replicates the implementation from the base class, while adding the paths for // the alternates for the tenant. Ideally, we would get the viewEngine from // base.CreateThemeViewEngine(parameters) and change it dynamically. // We have to get this as dynamic because IViewEngine doesn't expose the properties // we need to alter. var baseEngine = (dynamic)base.CreateThemeViewEngine(parameters); // parameters.VirtualPath is // ~/Themes/Theme.Id // We need only the Theme.Id for our tenant alternates var themeId = parameters.VirtualPath.Substring(9); var alternatesPath = Path.Combine(_alternateFolderBasePath, themeId) .Replace(Path.DirectorySeparatorChar, '/'); // compute paths that we need to add BEFORE the paths computed by the base implementation var partialViewLocationFormats = new List <string>() { alternatesPath + "/Views/{0}.cshtml", alternatesPath + "/Views/{1}/{0}.cshtml", }; // add "original" paths partialViewLocationFormats.AddRange((IEnumerable <string>)baseEngine.PartialViewLocationFormats); // replace the paths in the base engine baseEngine.PartialViewLocationFormats = partialViewLocationFormats.ToArray(); // compute paths that we need to add BEFORE the paths computed by the base implementation var areaPartialViewLocationFormats = new List <string>() { alternatesPath + "/Views/{2}/{1}/{0}.cshtml", }; // add "original" paths areaPartialViewLocationFormats.AddRange((IEnumerable <string>)baseEngine.AreaPartialViewLocationFormats); // replace the paths in the base engine baseEngine.AreaPartialViewLocationFormats = areaPartialViewLocationFormats.ToArray(); // change the cache location for the views, otherwise the view engine will still mess things up // down the line baseEngine.ViewLocationCache = new ThemeViewLocationCache(alternatesPath); return((RazorViewEngine)baseEngine); }
public IViewEngine CreateThemeViewEngine(CreateThemeViewEngineParams parameters) { // Area: if "area" in RouteData. Url hit for module... // Area-Layout Paths - no-op because LayoutViewEngine uses multi-pass instead of layout paths // Area-View Paths - no-op because LayoutViewEngine relies entirely on Partial view resolution // Area-Partial Paths - enable theming views associated with a module based on the route // Layout Paths - no-op because LayoutViewEngine uses multi-pass instead of layout paths // View Paths - no-op because LayoutViewEngine relies entirely on Partial view resolution // Partial Paths - // {area}/{controller}/ // for "routed" request views... // enable /Views/{area}/{controller}/{viewName} // enable /Views/{partialName} // enable /Views/"DisplayTemplates/"+{templateName} // enable /Views/"EditorTemplates/+{templateName} var partialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{0}.cshtml", parameters.VirtualPath + "/Views/{1}/{0}.cshtml", }; //Logger.Debug("PartialViewLocationFormats (theme): \r\n\t-{0}", string.Join("\r\n\t-", partialViewLocationFormats)); var areaPartialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{2}/{1}/{0}.cshtml", }; //Logger.Debug("AreaPartialViewLocationFormats (theme): \r\n\t-{0}", string.Join("\r\n\t-", areaPartialViewLocationFormats)); var viewEngine = new RazorViewEngine { MasterLocationFormats = DisabledFormats, ViewLocationFormats = DisabledFormats, PartialViewLocationFormats = partialViewLocationFormats, AreaMasterLocationFormats = DisabledFormats, AreaViewLocationFormats = DisabledFormats, AreaPartialViewLocationFormats = areaPartialViewLocationFormats, ViewLocationCache = new ThemeViewLocationCache(parameters.VirtualPath), }; return(viewEngine); }
public IViewEngine CreateThemeViewEngine(CreateThemeViewEngineParams parameters) { // Area: if "area" in RouteData. Url hit for module... // Area-Layout Paths - no-op because LayoutViewEngine uses multi-pass instead of layout paths // Area-View Paths - no-op because LayoutViewEngine relies entirely on Partial view resolution // Area-Partial Paths - enable theming views associated with a module based on the route // Layout Paths - no-op because LayoutViewEngine uses multi-pass instead of layout paths // View Paths - no-op because LayoutViewEngine relies entirely on Partial view resolution // Partial Paths - // {area}/{controller}/ // for "routed" request views... // enable /Views/{area}/{controller}/{viewName} // enable /Views/{partialName} // enable /Views/"DisplayTemplates/"+{templateName} // enable /Views/"EditorTemplates/+{templateName} var partialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{0}.ascx", parameters.VirtualPath + "/Views/{0}.aspx", }; //Logger.Debug("PartialViewLocationFormats (theme): \r\n\t-{0}", string.Join("\r\n\t-", partialViewLocationFormats)); var areaPartialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{2}/{1}/{0}.ascx", parameters.VirtualPath + "/Views/{2}/{1}/{0}.aspx", }; //Logger.Debug("AreaPartialViewLocationFormats (theme): \r\n\t-{0}", string.Join("\r\n\t-", areaPartialViewLocationFormats)); var viewEngine = new WebFormViewEngine { MasterLocationFormats = DisabledFormats, ViewLocationFormats = DisabledFormats, PartialViewLocationFormats = partialViewLocationFormats, AreaMasterLocationFormats = DisabledFormats, AreaViewLocationFormats = DisabledFormats, AreaPartialViewLocationFormats = areaPartialViewLocationFormats, ViewLocationCache = new ThemeViewLocationCache(parameters.VirtualPath), }; return viewEngine; }
public IViewEngine CreateThemeViewEngine(CreateThemeViewEngineParams parameters) { var partialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{0}.cshtml", }; var areaPartialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{2}/{1}/{0}.cshtml", }; var viewEngine = new RazorViewEngine { MasterLocationFormats = DisabledFormats, ViewLocationFormats = DisabledFormats, PartialViewLocationFormats = partialViewLocationFormats, AreaMasterLocationFormats = DisabledFormats, AreaViewLocationFormats = DisabledFormats, AreaPartialViewLocationFormats = areaPartialViewLocationFormats, ViewLocationCache = new ThemeViewLocationCache(parameters.VirtualPath), }; return viewEngine; }
private IEnumerable<IViewEngine> CreateThemeViewEngines(ExtensionDescriptor theme) { var themeLocation = theme.Location + "/" + theme.Id; var themeParams = new CreateThemeViewEngineParams {VirtualPath = themeLocation}; return _viewEngineProviders.Select(vep => vep.CreateThemeViewEngine(themeParams)); }
/// <summary> /// 创建主题视图引擎。 /// </summary> /// <param name="parameters">创建主题视图引擎所需的参数。</param> /// <returns>视图引擎。</returns> public IViewEngine CreateThemeViewEngine(CreateThemeViewEngineParams parameters) { // /Views/{area}/{controller}/{viewName} // /Views/{partialName} // /Views/"DisplayTemplates/"+{templateName} // /Views/"EditorTemplates/+{templateName} var partialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{0}.cshtml", }; var areaPartialViewLocationFormats = new[] { parameters.VirtualPath + "/Views/{2}/{1}/{0}.cshtml", }; var viewEngine = new RazorViewEngine { MasterLocationFormats = DisabledFormats, ViewLocationFormats = DisabledFormats, PartialViewLocationFormats = partialViewLocationFormats, AreaMasterLocationFormats = DisabledFormats, AreaViewLocationFormats = DisabledFormats, AreaPartialViewLocationFormats = areaPartialViewLocationFormats, ViewLocationCache = new ThemeViewLocationCache(parameters.VirtualPath), }; return viewEngine; }