コード例 #1
0
ファイル: SchemaPath.cs プロジェクト: FordSoft/CMS
        public SchemaPath(Schema schema)
        {
            if (schema == null)
            {
                return;
            }

            string schemaName = schema.Name;

            RepositoryPath repositoryPath = new RepositoryPath(schema.Repository);
            var            schemaPath     = Path.Combine(repositoryPath.PhysicalPath, "Schemas", schema.Name);

            //Schema is link
            //
            if (!Directory.Exists(schemaPath) && File.Exists(schemaPath + ".lnk"))
            {
                PhysicalPath = LinkHelper.ResolveShortcut(schemaPath + ".lnk");
                SettingFile  = Path.Combine(PhysicalPath, PathHelper.SettingFileName);
                VirtualPath  = UrlUtility.GetVirtualPath(PhysicalPath);
            }
            else
            {
                var basePhysicalPath = GetBaseDir(schema.Repository);
                this.PhysicalPath = Path.Combine(basePhysicalPath, schemaName);
                this.SettingFile  = Path.Combine(PhysicalPath, PathHelper.SettingFileName);

                VirtualPath = UrlUtility.RawCombine(repositoryPath.VirtualPath, PATH_NAME, schemaName);
            }
        }
コード例 #2
0
ファイル: FileManager.cs プロジェクト: Epitomy/CMS
        public DirectoryEntry(DirectoryResource rootDir, string relativePath)
            : base("")
        {
            this.physicalPath     = Path.Combine(rootDir.PhysicalPath, relativePath);
            this.virtualPath      = UrlUtility.GetVirtualPath(physicalPath);
            this.basePhysicalPath = Path.GetDirectoryName(this.physicalPath);
            var paths = this.virtualPath.Split("/".ToArray(), StringSplitOptions.RemoveEmptyEntries);

            this.baseVirtualPath = UrlUtility.Combine(paths.Take(paths.Count() - 1).ToArray());

            this.RootDir = rootDir;
        }
コード例 #3
0
ファイル: FolderPath.cs プロジェクト: FordSoft/CMS
        public FolderPath(Folder folder)
        {
            var repositoryPath = new RepositoryPath(folder.Repository);

            if (folder.Parent != null)
            {
                var parentPath = new FolderPath(folder.Parent);
                this.PhysicalPath = Path.Combine(parentPath.PhysicalPath, folder.Name);
                VirtualPath       = UrlUtility.Combine(parentPath.VirtualPath, folder.Name);
            }
            else
            {
                if (folder.GetType() == typeof(TextFolder))
                {
                    var dirName = Path.Combine(repositoryPath.PhysicalPath, GetRootPath(folder.GetType()), folder.Name);

                    //Folder is link
                    //
                    if (!Directory.Exists(dirName) && File.Exists(dirName + ".lnk"))
                    {
                        var baseDir = Kooboo.CMS.Common.Runtime.EngineContext.Current.Resolve <IBaseDir>();
                        PhysicalPath = Path.Combine(baseDir.Cms_DataPhysicalPath, "Contents", folder.Repository.Name, GetRootPath(folder.GetType()), folder.Name);
                        VirtualPath  = UrlUtility.GetVirtualPath(PhysicalPath);
                    }
                    else
                    {
                        PhysicalPath = Path.Combine(repositoryPath.PhysicalPath, GetRootPath(folder.GetType()), folder.Name);
                        VirtualPath  = UrlUtility.Combine(repositoryPath.VirtualPath, GetRootPath(folder.GetType()), folder.Name);
                    }
                }
                else
                {
                    var environment = PathUtils.GetDeployEnvironment(HttpContext.Current);
                    if (environment != null && !string.IsNullOrWhiteSpace(environment.ContentPath) && !string.IsNullOrWhiteSpace(environment.ContentVirtualPath))
                    {
                        PhysicalPath = Path.Combine(environment.ContentPath, GetRootPath(folder.GetType()), folder.Name);
                        VirtualPath  = UrlUtility.Combine(environment.ContentVirtualPath, GetRootPath(folder.GetType()), folder.Name);
                    }
                    else
                    {
                        this.PhysicalPath = Path.Combine(repositoryPath.PhysicalPath, GetRootPath(folder.GetType()), folder.Name);
                        VirtualPath       = UrlUtility.Combine(repositoryPath.VirtualPath, GetRootPath(folder.GetType()), folder.Name);
                    }
                }
            }
            this.SettingFile = Path.Combine(PhysicalPath, PathHelper.SettingFileName);
        }
コード例 #4
0
        public virtual ItemTemplate GetItemTemplate(string templateName)
        {
            var physicalPath = TemplatePath;

            if (Directory.Exists(physicalPath))
            {
                ItemTemplate itemTemplate = new ItemTemplate()
                {
                    TemplateName = templateName
                };
                itemTemplate.TemplateFile = Path.Combine(physicalPath, templateName + FileExtension);
                var thumbnail = Path.Combine(physicalPath, templateName + ".png");
                itemTemplate.Thumbnail = UrlUtility.GetVirtualPath(thumbnail);
                return(itemTemplate);
            }
            return(null);
        }
コード例 #5
0
        public virtual ItemTemplate GetItemTemplate(string category, string templateName)
        {
            var physicalPath = GetCategoryPhysicalPath(category);
            var itemFile     = Path.Combine(physicalPath, templateName + FileExtension);

            if (File.Exists(itemFile))
            {
                ItemTemplate itemTemplate = new ItemTemplate()
                {
                    TemplateName = templateName, Category = category
                };
                itemTemplate.TemplateFile = itemFile;
                var thumbnail = Path.Combine(physicalPath, templateName + ".png");
                if (File.Exists(thumbnail))
                {
                    itemTemplate.Thumbnail = UrlUtility.GetVirtualPath(thumbnail);
                }
                return(itemTemplate);
            }
            return(null);
        }
コード例 #6
0
ファイル: FileManager.cs プロジェクト: Epitomy/CMS
        public FileEntry(DirectoryResource rootDir, string relativePath)
            : base("")
        {
            this.physicalPath = Path.Combine(rootDir.PhysicalPath, relativePath);
            this.virtualPath  = UrlUtility.GetVirtualPath(physicalPath);

            this.basePhysicalPath = Path.GetDirectoryName(this.physicalPath);
            var paths = this.virtualPath.Split("/".ToArray(), StringSplitOptions.RemoveEmptyEntries);

            this.baseVirtualPath = UrlUtility.Combine(paths.Take(paths.Count() - 1).ToArray());
            this.FileName        = paths.Last();
            if (this.FileName.Contains('.'))
            {
                this.Name          = FileName.Substring(0, FileName.IndexOf("."));
                this.FileExtension = FileExtension.Substring(FileExtension.IndexOf(".") + 1);
            }
            else
            {
                this.Name = FileName;
            }

            this.RootDir = rootDir;
            //this.RelativePath = relativeVirtualPath;
        }