3

Orchard サイト (Orchard を学習するために作成しているサイト) に「お問い合わせフォーム」ページを追加しています。

まず、レイヤーとして追加しました。その後、コンテンツ タイプとして追加できることがわかりました。

これは非常に紛らわしいと思います。

レイヤー、コンテンツ タイプ、モジュール、ウィジェットの違いと関係は何ですか。そして、なぜページがないのですか?

たとえば、TripelFirst がレイヤーであり、ウィジェットではないのはなぜですか?

「連絡先」ページを作成して、そこに「連絡先フォーム」というウィジェットを追加できないのはなぜですか?!

モジュールとウィジェットの違いは何ですか - 同じように聞こえます。

お問い合わせページをレイヤーまたはコンテンツ タイプとして追加するベスト プラクティスはどれですか?

ありがとう。

4

1 に答える 1

4
What is the difference & relationship between layers, content types, 
modules & widgets. And why are there no pages?!

レイヤーは、特定のページの (テーマによって指定された)どのゾーンにどのウィジェットが表示されるかを制御します。それらにはルールがあるため、たとえば、NotHomePageというレイヤーを作成し、ルールnot url("~/")を指定すると、そのレイヤーのゾーンに追加されたウィジェットは、ホームページ以外のすべての場所に表示されます。

コンテンツ タイプとは、サイト上で作成するコンテンツのタイプです。ページは、Orchard ですぐに使用できるコンテンツ タイプです。これにはRouteと呼ばれる部分が含まれているため、最初に作成できるプロパティの 1 つは、 mydomain.com/ sweet-pageなどのスラッグです。

モジュールは基本的に、Web サイトの特定の機能を作成する MVC 領域です。モジュールには、いくつかのカスタム パーツ、スクリプト、スタイリングなどが含まれる場合があります。コンタクト フォームモジュールはいくつかありますが、デフォルトの Orchard レシピで既にクックされているカスタム フォームモジュールを使用すると、おそらくより多くのことを学ぶことができます(有効にする必要があると思いますが、そこにあります。)

ウィジェットは、レイヤー上のゾーン(テーマで指定) に追加するコード スニペットのようなもので、ウィジェットを好きなだけ配置できます。ホームページに「メインコンテンツ」ゾーンがあり、顧客がタグラインとニュースレターにサインアップするための小さなフォームを希望する場合があります。キャッチフレーズ用の HTML ウィジェット (HTML の WYSIWYG エディターなどの基本情報を含む) とカスタム フォーム ウィジェット (サインアップ リクエストの作成を処理します) を追加できます。

Why is TripelFirst a layer for example - not a widget?

TripelFirst はレイヤーではなく、ThemeMachine テーマのゾーン、つまり、ウィジェットを含む場合と含まない場合があるページ上の領域である必要があります。

Why can't I just make a 'contact' page and add a widget 
to it called 'Contact Form'?!

可能ですが、最初にいくつかのことを定義する必要があります。

  1. ContactFormRequest というコンテンツ タイプを作成します (「コンテンツ タイプ」モジュールを有効にする必要がある場合があります)。
  2. プロパティをクラス定義に追加するように、フィールド (名、姓など) を追加します。
  3. slug /contactを使用してContactというページを作成します
  4. ルールurl("/contact")を使用してContactLayerというレイヤーを作成します。
  5. カスタム フォーム ウィジェットを ContactLayer に追加し、コンテンツ タイプとしてContactFormRequestを選択してください。
  6. パーティ

これにより、探している基本的な動作が得られるはずです。もちろん、これをさらにカスタマイズすることもできます。

What would be the best practice way to add a Contact Us page - 
as a layer or a Content Type?

個人的には、ContactFormRequest などの独自のコンテンツ タイプを使用する柔軟性を好みます。将来、顧客が連絡先フォームに身長、体重、年齢をプロパティとして追加したい場合、これらのフィールドをコンテンツ タイプに追加するだけで、あとは Orchard が処理します。

于 2013-07-03T11:30:07.460 に答える