public virtual IEnumerable <ModuleItemPath> AllThemeFiles(string moduleName, string themeName, out string themeRuleBody) { ModuleItemPath themePath = GetThemePath(moduleName, themeName); List <ModuleItemPath> themeFiles = new List <ModuleItemPath>(); themeRuleBody = ""; if (Directory.Exists(themePath.PhysicalPath)) { var files = Directory.EnumerateFiles(themePath.PhysicalPath, "*.css").Select(it => Path.GetFileName(it)); var orderFilePath = Path.Combine(themePath.PhysicalPath, FileOrderHelper.OrderFileName); if (File.Exists(orderFilePath)) { files = FileOrderHelper.OrderFiles(orderFilePath, files); } foreach (var file in files) { themeFiles.Add(new ModuleItemPath(themePath, file)); } string themeBaseUrl = Kooboo.Web.Url.UrlUtility.ResolveUrl(themePath.VirtualPath); var themeRuleFiles = ThemeRuleParser.Parser.Parse(ThemeRuleBody(moduleName, themeName), (fileVirtualPath) => Kooboo.Web.Url.UrlUtility.Combine(themeBaseUrl, fileVirtualPath), out themeRuleBody); return(themeFiles.Where(it => !themeRuleFiles.Any(cf => cf.EqualsOrNullEmpty(it.EntryName, StringComparison.CurrentCultureIgnoreCase)))); } return(new ModuleItemPath[0]); }
public virtual IEnumerable <StyleFile> AllStylesEnumerable(Site site, string themeName) { var theme = new Theme(site, themeName); var fileNames = EnumerateCssFilesWithPath(site, themeName); fileNames = FileOrderHelper.OrderFiles(GetOrderFile(site, themeName), fileNames); return(fileNames.Select(it => new StyleFile(theme, it).LastVersion())); }
public virtual IEnumerable <ModuleItemPath> AllScripts(string moduleName) { ModuleItemPath scriptsPath = new ModuleItemPath(moduleName, "Scripts"); if (Directory.Exists(scriptsPath.PhysicalPath)) { var files = Directory.EnumerateFiles(scriptsPath.PhysicalPath, "*.js").Select(it => Path.GetFileName(it)); var orderFilePath = Path.Combine(scriptsPath.PhysicalPath, FileOrderHelper.OrderFileName); if (File.Exists(orderFilePath)) { files = FileOrderHelper.OrderFiles(orderFilePath, files); } foreach (var file in files) { yield return(new ModuleItemPath(scriptsPath, file)); } } }
public virtual IEnumerable <FileEntry> GetFiles(Site site, string dirRelativePath) { var dir = GetDirectory(site, dirRelativePath); if (dir.Exists()) { var files = EnumerateFiles(dir.PhysicalPath); files = FileOrderHelper.OrderFiles(FileOrderHelper.GetOrderFile(dir.PhysicalPath), files); return(files.Select(it => new FileInfo(Path.Combine(dir.PhysicalPath, it))) .Select(it => new FileEntry(GetRootDir(site), GetRelativePath(dirRelativePath, it.Name)) { FileSize = it.Length, Name = it.Name, FileExtension = it.Extension, FileName = it.FullName, CreateDate = it.LastWriteTimeUtc })); } return(new FileEntry[0]); }