程式碼生成模板
程式碼生成模板
Orchard Core 模板通過命令列使用dotnet new模板配置建立新的站點、主題、模組。關於dotnet new的更多資訊可以檢視https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-new。
安裝Orchard CMS templates
一旦安裝了.NET Core SDK,輸入下面的命令安裝模板用於建立Orchard Core 網站應用程式:
dotnet new -i OrchardCore.ProjectTemplates::1.0.0
這個命令會使用釋出版的健壯的Orchard Core。如果想使用最新的開發版的分支,可以使用下面的命令:
dotnet new -i OrchardCore.ProjectTemplates::1.0.0-* --nuget-source https://nuget.cloudsmith.io/orchardcore/preview/v3/index.json
建立新網站
通過命令列
建立一個Orchard Cms網站程式
dotnet new occms
這個命令將使用預設選項。
您可以將以下CLI引數傳遞給安裝選項:
Orchard Core Cms Web App (C#) Author: Orchard Project Options: -lo|--logger Configures the logger component. nlog- Configures NLog as the logger component. serilog - Configures Serilog as the logger component. none - Do not use a logger. Default: nlog -ov|--orchard-version Specifies which version of Orchard Core packages to use.string - Optional Default: 1.0.0
通過下面的命令可以忽略日誌
dotnet new occms --logger none
建立一個ASP.NET MVC Core網站程式
dotnet new ocmvc
通過Visual Studio建立程式
啟動Visual Studio,建立一個解決方案(.sln),新增一個 ASP.NET Core Web Application:
現在我們新增一個網站程式,我們需要增加適當的依賴,這樣可以將新的web程式作為OrchardCore程式。
最後,我們需要在Startup.cs 檔案中註冊Orchard CMS 服務:
using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; namespace MyNewWebsite { public class Startup { // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddOrchardCms(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseStaticFiles(); app.UseOrchardCore(); } } }
建立一個新的CMS模組
通過命令列建立新模組
dotnet new ocmodulecms
上面的命令使用預設的選項。
你可以使用下面的引數
Orchard Core Module (C#) Author: Orchard Project Options: -A|--AddPart Add dependency injection for part in Startup.cs. If PartName is not provided, default name will be used bool - Optional Default: false / (*) true -P|--PartName Add all files required for a part string - Optional Default: MyTest -ov|--orchard-version Specifies which version of Orchard Core packages to use. string - Optional Default: 1.0.0
例如:
dotnet new ocmodulecms -n ModuleName.OrchardCore dotnet new ocmodulecms -n ModuleName.OrchardCore --AddPart true dotnet new ocmodulecms -n ModuleName.OrchardCore --AddPart true --PartName Test
提示:部件將自動附加到提供的部件名稱的末尾。
Visual Studio建立新模組
啟動Visual Studio, 開啟解決方案Orchard Core, 選擇 OrchardCore.Modules 資料夾,右鍵,選擇新增一個專案 "新增 → 專案" and 建立一個.NET 標準類庫:
為了將這個類庫標識為Orchard Module, 我們現在需要引用 OrchardCore.Module.Targets NuGet包。
每個*.Targets NuGet包都用於將類庫標記為特定的Orchard Core功能。
OrchardCore.Module.Targets是我們目前感興趣的。
我們將通過新增OrchardCore.module.Targets作為依賴項,將新類庫標記為模組。
為此,您需要右鍵單擊MyModule.OrchardCore專案並選擇“管理NuGet軟體包”選項。
要在Nuget Package Manager中查詢包,您需要選中“include prerelease”,並確保您擁有我們先前新增的Orchard Core資源。
找到後,單擊右側面板上版本:最新預發行版x.x.x.x旁邊的安裝按鈕。
Orchard Core現在需要Manifest.cs檔案來標識此模組。下面是該檔案的一個示例:
using OrchardCore.Modules.Manifest; [assembly: Module( Name = "TemplateModule.OrchardCore", Author = "The Orchard Team", Website = "http://orchardproject.net", Version = "0.0.1", Description = "Template module." )]
要啟動此模組,我們現在需要將Startup.cs檔案新增到新模組中。以該檔案為例:
using System; using Fluid; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.DependencyInjection; #if (AddPart) using OrchardCore.ContentManagement; using OrchardCore.ContentManagement.Display.ContentDisplay; using OrchardCore.ContentManagement.Handlers; using OrchardCore.ContentTypes.Editors; using OrchardCore.Data.Migration; using OrchardCore.Templates.Cms.Module.Drivers; using OrchardCore.Templates.Cms.Module.Handlers; using OrchardCore.Templates.Cms.Module.Models; using OrchardCore.Templates.Cms.Module.Settings; using OrchardCore.Templates.Cms.Module.ViewModels; #endif using OrchardCore.Modules; namespace OrchardCore.Templates.Cms.Module { public class Startup : StartupBase { public override void ConfigureServices(IServiceCollection services) { #if (AddPart) services.Configure<TemplateOptions>(o => { o.MemberAccessStrategy.Register<MyTestPartViewModel>(); }); services.AddContentPart<MyTestPart>() .UseDisplayDriver<MyTestPartDisplayDriver>() .AddHandler<MyTestPartHandler>(); services.AddScoped<IContentTypePartDefinitionDisplayDriver, MyTestPartSettingsDisplayDriver>(); services.AddScoped<IDataMigration, Migrations>(); #endif } public override void Configure(IApplicationBuilder builder, IEndpointRouteBuilder routes, IServiceProvider serviceProvider) { routes.MapAreaControllerRoute( name: "Home", areaName: "OrchardCore.Templates.Cms.Module", pattern: "Home/Index", defaults: new { controller = "Home", action = "Index" } ); } } }
最後一步是將我們的新模組新增到OrchardCore.Cms.Web專案中,作為將其作為網站模組一部分的參考。在此之後,您應該已經準備好開始構建自定義模組。您可以參考我們的模板模組,以瞭解通常基本需要的示例。
建立一個主題
通過命令列
dotnet new octheme -n "ThemeName.OrchardCore"
程式應與模組相同,但我們需要引用OrchardCore.Theme.Targets,Manifest.cs檔案略有不同:
using OrchardCore.DisplayManagement.Manifest; [assembly: Theme( Name = "TemplateTheme.OrchardCore", Author = "The Orchard Team", Website = "https://orchardproject.net", Version = "0.0.1", Description = "The TemplateTheme." )]