Orchard CMS Extension:コンテンツタイプの作成

これは、Orchard CMSコンテンツ管理システムに基づく独自のサイトの開発に関する一連の記事の続きです。 このシリーズの最初の記事は、次のリンクにあります。 この記事では、コンテンツタイプとして知られるコンテンツ要素の作成を通じて、Orchard CMSに基づくサイトの拡張について説明します。



コンテンツタイプの作成



Orchard CMSにはすでにページ(ページ)やブログ投稿(ブログ投稿)などのいくつかのコンテンツタイプのセットが含まれていますが、管理パネルを使用して独自のコンテンツタイプを簡単に作成(または既存のタイプを拡張)することができます。 デフォルトでは、Orchardのコンテンツタイプ機能は有効になっています。 独自のコンテンツタイプを正常に作成するには、有効にする必要があります。 必要に応じて、管理パネルの[モジュール]ページで機能を有効化できます。



image



独自のコンテンツタイプを作成するには、[コンテンツ]セクションに移動し、管理パネルで[コンテンツタイプ]リンクを選択します。 このページには、システムで使用可能なコンテンツタイプのリストが表示されます。 一部のコンテンツタイプ(リストなど)のリストを編集および表示できることに注意してください。



image



[リストアイテム]リンクをクリックすると、サイトでこのタイプの利用可能なコンテンツ要素のリストが表示されます。



image



[編集]リンクを使用して、コンテンツタイプの定義を編集できます。



image



Orchardのコンテンツタイプは、フィールドとパーツに基づいて作成されます。 これらの概念の説明は、 この記事に記載されています 。 フィールドはコンテンツタイプに固有のものです。たとえば、製品コンテンツタイプにはSKUフィールドと価格フィールドを含めることができます。 一方、コンテンツ部分は、多くのコンテンツタイプに追加できる再利用可能なコンポーネントです。 たとえば、ルートのコンテンツ部分は、任意のコンテンツタイプにアドレス/ URLを持つ機能を提供できます。



コンテンツタイプにはフィールドが含まれ、コンテンツパーツから構築されていると想定できます。 このメカニズムはオーチャードコードに反映されます。 たとえば、アドレス(RoutePart)を持つ要素としてブログエントリを使用し、RoutePart.Slugプロパティの値にアクセスするには、次のコードpost.As <RoutePart> .Slugを記述する必要があります。 幸いなことに、コンテンツタイプとパーツを操作するためにコードを記述する必要はまったくありません。 新しいコンテンツタイプを作成する方法を検討してください。



コンテンツタイプの作成



独自のコンテンツタイプを定義しましょう。 イベントまたはイベントを定義するコンテンツタイプを作成する必要があるとします。 そのようなタイプを追加するには、[コンテンツタイプの管理]セクションに移動し、[新しいタイプの作成]をクリックします。



image



コンテンツタイプにEventという名前を付けます。その後、識別子は自動的にEventになります。



image



コンテンツタイプが作成され、システムで使用可能なコンテンツパーツを選択してコンテンツタイプに追加するように求められます。



image



新しいウィンドウで、Orchardにインストールされている利用可能なコンテンツパーツを確認できます。 イベントコンテンツタイプの場合、イベントにコメントするためのコメントコンテンツ部分、イベントにタグ付けするためのタグ部分、およびイベントの個別のURLを取得するためのルートを選択できます。 さらに、サイトでのイベントの公開を延期できるようにしたいため、PublishLaterパーツを使用します。



イベント要素をコンテンツタイプのリストに表示できるように、共通部分を追加する必要もあります。 [保存]をクリックして、コンテンツタイプを保存します。



次に、[フィールドの追加]をクリックして、コンテンツタイプに新しいフィールドを追加します。



image



現在、Orchardは1つのフィールドタイプ(TextField)のみを提供していますが、フィールドタイプのリストは、Orchard拡張を使用して大幅に拡張できます。たとえば、フィールドタイプCheckBoxField、EmailField、TextAreaField、DateTimeFieldを作成できます( この記事で詳しく説明します )。 さらに、ギャラリー->モジュールセクションで、いくつかのタイプのフィールドをギャラリーから個別のモジュールとしてダウンロードできます。



新しいフィールドの名前としてLocationを入力します。



image



その後、イベントコンテンツタイプのウィンドウにフィールドが表示されます。



image



手順を繰り返して、別の「日付」フィールドを作成します。



コンテンツタイプ、フィールド、パーツには設定があります。 フィールドまたはパーツに使用できる特定の設定は、Orchardでアクティブ化される機能によって決まります。 インデックス作成機能を有効にした場合(Luceneおよび検索モジュールとともに管理パネルのモジュールギャラリーから追加できます)、コンテンツタイプごとに「検索用のこのコンテンツタイプにインデックスを付ける」設定が追加され、各フィールドに「インデックスに含める」設定が追加されます」 イベントコンテンツタイプの[場所]フィールドでこれらのオプションを選択します。 これにより、訪問者はイベントの場所の名前でサイトを検索できます(サイトで検索機能が有効になっている場合)。



image



独自のコンテンツタイプを定義したので、インスタンス化しましょう。 [コンテンツタイプの管理]ページの[新しいイベントの作成]リンクを確認してください。



image



同様のリンクが、管理パネルの「イベント」という名前の「新規」セクションに表示されます。 それらのいずれかをクリックして、新しいイベント要素を作成します。



image



ご覧のとおり、新しいイベント要素(Event)を作成するためのエディターには、私たちが示したフィールドの値のタスクに必要なすべてのコントロールが含まれます。 さらに、ルートパーツが含まれているため、タイトルとパーマリンクがあります。場所と日付があり、タグなどを入力するためのフィールドがあります。 これらのフィールドに入力して、イベントを公開します。



image



管理パネルの[コンテンツの管理]ページに移動し、エントリが作成されていることを確認します。



image



サイトが期待どおりにメインメニューに新しいイベントを追加し、すべてのコンテンツフィールドとパーツが正しく表示されることに注意してください。 イベントの外観とページ上での表示方法を決定することができます。 これを行う方法の詳細については、この資料を使用してください。



image



新しいコンテンツタイプを見つけるために、サイトの検索機能を試してみましょう。 管理パネルの[機能]セクションで、サイトのインデックス作成、検索、およびLucene機能が有効になっていることを確認します。 ページにまだインストールされていない場合は、コントロールパネルの[ウィジェット]セクションから検索ウィジェットを追加する必要があります。 次に、[インデックスの検索]ページに移動して、どのフィールドがインデックスの対象となるかを確認します。 イベントロケーションフィールドがインデックス可能なフィールドのリストにあることがわかります。



image



[設定]セクションを使用して、[場所]フィールドでデータを検索する必要があることを検索エンジンに示すことができます。



image



次に、サイトの検索バーにイベントの場所の値を入力し、サイトに正しい検索結果が表示されることを確認します。



image



おわりに



この記事では、Orchard CMSコンテンツ管理システムのコンテンツタイプの作成について説明します。 ガイドの以下の部分では、Orchardに基づいてサイトの機能を拡張するためのウィジェットとモジュールの作成を検討します。



All Articles