请注意,本站并不支持低于IE8的浏览器,为了获得最佳效果,请下载最新的浏览器,推荐下载 Chrome浏览器
欢迎光临。交流群:166852192

orchard2设计笔记




设计笔记
动态编译
工程指南
路线图
在Docker中运行
在Linux上运行
本地克隆此wiki




https://github.com/OrchardCMS/Orchard2.wiki.git
 在桌面克隆
创建主机


当运行Orchard 2时,需要一个客户端。默认实现是让客户端与主机通信。


客户端可以是创建主机的任何项目。


要在Web项目中创建主机,您可以执行以下操作:


public class Startup {
    public IServiceProvider ConfigureServices(IServiceCollection services){
        退货服务
            // AddHostSample是魔术的地方。这个扩展方法存在于Host(Orchard.Hosting.Web)
            .AddHostSample()
            .BuildServiceProvider();
    }}
}}
主机有一个小包装:


public static IServiceCollection AddHostSample(this IServiceCollection services){
    //这将为主机设置所有核心服务
    return services.AddHost(internalServices => {
        //主机的核心
        internalServices.AddHostCore();
        // ...所有额外的东西,你想注册,所以你不必接触核心主机。
    });
附加模块位置


可以在客户端设置中添加用于模块发现的其他位置:


public class Startup {
    public IServiceProvider ConfigureServices(IServiceCollection服务)
    {
        services.AddWebHost();


        //添加文件夹的简单方法
        services.AddModuleFolder(“Core / Orchard.Core”);
        services.AddModuleFolder(“Modules”);
        services.AddThemeFolder(“Themes”);


        //添加文件夹更可配置的方式
        services.Configure <ExtensionHarvestingOptions>(options => {
            var expander = new ModuleLocationExpander(
                DefaultExtensionTypes.Module,
                new [] {“Core / Orchard.Core”,“Modules”},
                “Module.txt”
                );


            options.ModuleLocationExpanders.Add(expander);
        });
    });
}}
租户配置


所有租户配置都位于src \ Orchard.Web \ App_Data \ Sites \ Default设置文件中,例如。 Settings.txt:


状态:运行
名称:默认
RequestUrlHost:localhost:5000
RequestUrlPrefix:
但是,您可以在.json或.xml文件中覆盖这些值。前提的顺序是:Settings.txt - > Settings.xml - > Settings.json


您还可以覆盖客户端设置中的“网站”文件夹


public class Startup {
    public IServiceProvider ConfigureServices(IServiceCollection服务)
    {
        services.AddWebHost();


        //在此处更改文件夹名称
        services.ConfigureShell(“Sites”);
    });
}}
Orchard文件系统


Orchard现在在文件系统中有一个构建到运行站点的构建。要使用它,你只需要在IOrchardFileSystem中注入。


您使用非虚拟路径进行访问,例如,假设您有此文件夹。


D:\ Orchard2 \ src \ Orchard.Web \ Modules \ Orchard.Lists \ Module.txt
并在你的代码你想读取该文件,


public void GetMeThatFile()
{
  var fileText = _fileSystem.ReadFile(“Modules \ Orchard.Lists \ Module.txt”);
  //物理路径将是D:\ Orchard2 \ src \ Orchard.Web \ Modules \ Orchard.Lists \ Module.txt
}}
默认情况下,文件系统的作用域为Orchard.Web文件夹。然而,如果你想要另一个文件系统,你可以在其他地方创建一个新的。


public void CreateMeAFileSystem()
{
  var root =“C:\ MyFileSystemRootPath”;
  var fileSystem = new OrchardFileSystem(
    根,
    new PhysicalFileProvider(root),
    _logger);


  //现在如果我得到我的模块文件..
  var fileText = fileSystem.ReadFile(“Modules \ Orchard.Lists \ Module.txt”);
  //物理路径将是C:\ MyFileSystemRootPath \ Modules \ Orchard.Lists \ Module.txt
}}
如果你想处理特定扩展文件夹中的文件,你可以这样做:


public void GetMePlacement()
{
  //首先得到扩展名。
  ExtensionDescriptor extensionDescriptor = _extensionManager.GetExtension(“Orchard.Lists”);


  // Second use the extension to get the placement info file
  IFileInfo placementInfoFile = _fileSystem
    .GetExtensionFileProvider(extensionDescriptor,_logger)
    .GetFileInfo(“Placement.info”);
}}



作者原创内容不容易,如果觉得内容不错,请点击右侧“打赏”,赏俩给作者花花,也算是对作者付出的肯定,也可以鼓励作者原创更多更好内容。
更多详情欢迎到QQ群 166852192 交流。