コード例 #1
0
        protected void ProcessModule(string moduleName, Component moduleComponent, string tempFolder)
        {
            Component designConfig = GetDesignConfigComponent(moduleComponent);

            if (designConfig != null)
            {
                ItemFields fields     = new ItemFields(designConfig.Content, designConfig.Schema);
                Component  zip        = fields.GetComponentValue("design");
                Component  variables  = fields.GetComponentValue("variables");
                string     code       = fields.GetTextValue("code");
                string     customLess = GetModuleCustomLess(variables, code);
                if (zip != null)
                {
                    // write binary contents as zipfile to disk
                    string zipfile = Path.Combine(tempFolder, moduleName + "-html-design.zip");
                    File.WriteAllBytes(zipfile, zip.BinaryContent.GetByteArray());

                    // unzip
                    using (ZipArchive archive = ZipFile.OpenRead(zipfile))
                    {
                        archive.ExtractToDirectory(tempFolder, true);
                    }

                    // add content from merge files if available
                    List <string> files = _mergeFileLines.Keys.Select(s => s).ToList();
                    foreach (string mergeFile in files)
                    {
                        string path = Path.Combine(tempFolder, mergeFile);
                        if (File.Exists(path))
                        {
                            foreach (string line in File.ReadAllLines(path))
                            {
                                if (!_mergeFileLines[mergeFile].Contains(line.Trim()))
                                {
                                    _mergeFileLines[mergeFile].Add(line.Trim());
                                }
                            }
                        }
                    }

                    // add custom less code block
                    if (!String.IsNullOrEmpty(customLess.Trim()))
                    {
                        _mergeFileLines["src\\system\\assets\\less\\_custom.less"].Add(customLess);
                    }
                }

                if (moduleName.Equals("core"))
                {
                    // unzip build files (nodejs, npm and grunt etc.)
                    Component buildFiles = fields.GetComponentValue("build");
                    if (buildFiles != null)
                    {
                        ProcessBuildFiles(buildFiles, tempFolder);
                    }
                }
            }
        }
コード例 #2
0
ファイル: PublishHtmlDesign.cs プロジェクト: MrSnowflake/tri
 private Component GetDesignConfigComponent(Component moduleComponent)
 {
     var fields = new ItemFields(moduleComponent.Content, moduleComponent.Schema);
     return fields.GetComponentValue("designConfiguration");
 }
コード例 #3
0
ファイル: PublishHtmlDesign.cs プロジェクト: MrSnowflake/tri
 protected void ProcessModule(string moduleName, Component moduleComponent)
 {
     var designConfig = GetDesignConfigComponent(moduleComponent);
     if (designConfig!=null)
     {
         var fields = new ItemFields(designConfig.Content, designConfig.Schema);
         var zip = fields.GetComponentValue("design");
         var variables = fields.GetComponentValue("variables");
         var code = fields.GetTextValue("code");
         var customLess = GetModuleCustomLess(variables, code);
         if (zip != null)
         {
             string zipfile = tempFolder + moduleName + "-html-design.zip";
             File.WriteAllBytes(zipfile, zip.BinaryContent.GetByteArray());
             using (var archive = ZipFile.OpenRead(zipfile))
             {
                 archive.ExtractToDirectory(tempFolder, true);
             }
             List<string> files = mergeFileLines.Keys.Select(s => s).ToList();
             foreach (var mergeFile in files)
             {
                 var path = tempFolder + mergeFile;
                 if (File.Exists(path))
                 {
                     foreach (var line in File.ReadAllLines(path))
                     {
                         if (!mergeFileLines[mergeFile].Contains(line.Trim()))
                         {
                             mergeFileLines[mergeFile].Add(line.Trim());
                         }
                     }
                 }
             }
             if (!String.IsNullOrEmpty(customLess.Trim()))
             {
                 mergeFileLines["src\\system\\assets\\less\\_custom.less"].Add(customLess);
             }
         }
     }
 }
コード例 #4
0
        private static Component GetDesignConfigComponent(Component moduleComponent)
        {
            ItemFields fields = new ItemFields(moduleComponent.Content, moduleComponent.Schema);

            return(fields.GetComponentValue("designConfiguration"));
        }
コード例 #5
0
        protected void ProcessModule(string moduleName, Component moduleComponent)
        {
            Component designConfig = GetDesignConfigComponent(moduleComponent);
            if (designConfig != null)
            {
                ItemFields fields = new ItemFields(designConfig.Content, designConfig.Schema);
                Component zip = fields.GetComponentValue("design");
                Component variables = fields.GetComponentValue("variables");
                string code = fields.GetTextValue("code");
                string customLess = GetModuleCustomLess(variables, code);
                if (zip != null)
                {
                    // write binary contents as zipfile to disk
                    string zipfile = Path.Combine(_tempFolder, moduleName + "-html-design.zip");
                    File.WriteAllBytes(zipfile, zip.BinaryContent.GetByteArray());

                    // unzip
                    using (ZipArchive archive = ZipFile.OpenRead(zipfile))
                    {
                        archive.ExtractToDirectory(_tempFolder, true);
                    }

                    // add content from merge files if available
                    List<string> files = _mergeFileLines.Keys.Select(s => s).ToList();
                    foreach (string mergeFile in files)
                    {
                        string path = Path.Combine(_tempFolder, mergeFile);
                        if (File.Exists(path))
                        {
                            foreach (string line in File.ReadAllLines(path))
                            {
                                if (!_mergeFileLines[mergeFile].Contains(line.Trim()))
                                {
                                    _mergeFileLines[mergeFile].Add(line.Trim());
                                }
                            }
                        }
                    }

                    // add custom less code block
                    if (!String.IsNullOrEmpty(customLess.Trim()))
                    {
                        _mergeFileLines["src\\system\\assets\\less\\_custom.less"].Add(customLess);
                    }
                }

                if (moduleName.Equals("core"))
                {
                    // unzip build files (nodejs, npm and grunt etc.)
                    Component buildFiles = fields.GetComponentValue("build");
                    if (buildFiles != null)
                    {
                        ProcessBuildFiles(buildFiles);
                    }
                }
            }
        }