Orchard CMS Extension:モジュールの作成

これは、Orchard CMSコンテンツ管理システムに基づく独自のサイトの開発に関する一連の記事の続きです。 このシリーズの最初の記事は、次のリンクにあります。 この記事では、他のオーチャードサイトで再利用できるモジュールを作成して、オーチャードCMSに基づいてサイトを拡張することに焦点を当てます。



はじめに



Orchardのモジュールは、Orchardシステムを実行している他のサイトで再利用するために特別な方法でパッケージ化できる拡張機能のセットです。 Orchardモジュールは、ASP.NET MVCフレームワークのエリアの概念に基づいて実装されます。 ASP.NET MVCの領域は、サブサイトが他のセクションやサイトのコンポーネントとは別に動作できるようにするすべての機能の完全なセットを含む一種のサブサイトです。 Orchardのモジュールは、特別なマニフェストファイルを持つ通常の領域です。 モジュールはOrchard APIを使用できますが、これを行う必要はありません。



モジュール構造生成



モジュールのファイル構造を作成する前に、Orchardコード生成機能をダウンロード、インストール、有効化する必要があります。 この機能の詳細については、この記事を参照してください



Orchardシステムでコード生成機能を有効にしたら、コマンドプロンプトを開き、次のコマンドを使用してHelloWorldモジュールを作成します。



codegenモジュールHelloWorld



マニフェストの変更



これで、Orchardサイトを含むプロジェクトのModulesフォルダーにHelloWorldフォルダーができました。 このフォルダーでmodule.txtファイルを見つけて開き、次のように入力します。



 名前:HelloWorld
偽造防止:有効
著者:オーチャードチーム
ウェブサイト:http://orchardproject.net
バージョン:0.5.0
オーチャードバージョン:0.5.0
説明:Hello Worldモジュールは世界に挨拶し、それ以上のことはしません。 
機能:
     HelloWorld:
        説明:非常に単純なモジュール。
        カテゴリ:サンプル 




このテキストは、システムのモジュールについて説明しています。 たとえば、このテキストの一部の情報は、モジュールを表示するときに管理パネルで使用されます。



重要です。 インデントするにはスペースを使用しますが、タブは使用しません。



ルートを追加する



例として、モジュールがOrchardサイトに関連する/ HelloWorldアドレスを処理できると仮定します。 ユーザーが指定されたアドレスに移動したときに何をする必要があるかを判断するには、ルートを決定する必要があります。 これを行うには、次のようにHelloWorldフォルダーにRoutes.csファイルを作成します。



using System.Collections.Generic; using System.Web.Mvc; using System.Web.Routing; using Orchard.Mvc.Routes; namespace HelloWorld { public class Routes : IRouteProvider { public void GetRoutes(ICollection<RouteDescriptor> routes) { foreach (var routeDescriptor in GetRoutes()) routes.Add(routeDescriptor); } public IEnumerable<RouteDescriptor> GetRoutes() { return new[] { new RouteDescriptor { Priority = 5, Route = new Route( "HelloWorld", new RouteValueDictionary { {"area", "HelloWorld"}, {"controller", "Home"}, {"action", "Index"} }, new RouteValueDictionary(), new RouteValueDictionary { {"area", "HelloWorld"} }, new MvcRouteHandler()) } }; } } }
      
      





ルートは、URLとコントローラーアクションの関係の説明です。 上記のコードは、HelloWorldアドレスを、インデックスアクションを持つHomeコントローラーを持つHelloWorldレルムに関連付けます。



コントローラー作成



作成されたモジュールにはControllersフォルダーが含まれており、新しいコントローラーを作成する準備ができています。 このフォルダーに次のファイルを作成し、HomeController.csという名前を付けます。



 using System.Web.Mvc; using Orchard.Themes; namespace HelloWorld.Controllers { [Themed] public class HomeController : Controller { public ActionResult Index() { return View("HelloWorld"); } } }
      
      





このコードは、HelloWorldアドレスの要求を処理するコントローラーを定義します。 デフォルトのアクションであるインデックスは、ユーザーのリクエスト時にページに表示するものの表示をリクエストします。



コントローラーのテーマ属性に注意してください。 この属性を使用すると、現在のカスタムテーマでデータを表示できます。



ビューを作成



ViewsフォルダーにHomeフォルダーを作成し、その中にHelloWorld.cshtmlという名前の次のファイルを追加します。



 <h2>@T("Hello World!")</h2>
      
      





このファイルは、ビューのメインコンテンツを定義します。 ページ上の他のすべてのコンテンツは、現在のデザインテーマとオーチャードサイトの設定に基づいて作成されます。



このビューをローカライズ可能にするTヘルパーメソッドの使用に注意してください。 これは覚えておくと便利な機能です。



プロジェクトに新しいファイルを追加する



最初のモジュールの作成を完了する準備がほぼ整いました。 最後の残りのタスクは、動的コンパイル中にモジュールを作成するために必要な一連のファイルについてシステムに伝えることです。



テキストエディタでHelloWorld.csprojプロジェクトファイルを開き、</ ItemGroup>タグのいずれかの後に次の行を追加します。



 <ItemGroup> <Compile Include="Routes.cs"/> <Compile Include="Controllers\HomeController.cs"/> </ItemGroup>
      
      





また、次のコンテンツをItemGroupセクションに追加します。このセクションには、すでにいくつかのコンテンツタグがあります。



 <Content Include="Views\Home\HelloWorld.cshtml" />
      
      





モジュールのアクティベーション



最後に、新しいモジュールをアクティブにする必要があります。 コマンドプロンプトで、次のように入力します。



  HelloWorldを有効にする機能 


Orchard Webサイトの管理パネルの[モジュール]セクションからもアクティブ化できます。



モジュールの使用



これで、あなたのサイトに関するリンク/ HelloWorldをたどって、私たちのモジュールが機能していて、メッセージで私たちを歓迎していることがわかります。



image



おわりに



この記事では、Orchard CMSコンテンツ管理システム用に個別のモジュールを作成する最も簡単な例と基本事項を調べました。 Orchard用のモジュールの作成は非常に簡単です。 Orchardのモジュールは、テーマ、アクティブ化および非アクティブ化メカニズムの自動サポートを備えています。



次の記事では、Orchard CMSでのモジュールの操作に関する他のいくつかの側面、モジュールのパッケージ化、配布、インストール、管理について説明します。



All Articles