web-dev-qa-db-ja.com

ページマネージャーのバリアントとは何ですか?

私はこれを追従しようとしています チュートリアル が、バリアントの概念を明確に説明していません。それの定義を提供しません。

誰かがこの概念を分かりやすい英語で明確にできますか?バリアントを使用する実際的なケースは何ですか?

7

バリアントはパネルに関係し、varyを出力するための方法です。バリアントはほとんどの動作を継承でき、必要なものをオーバーライドできます。ビューの経験がある場合は、別のディスプレイを使用するのとほとんど同じです。バリアントは、パネルのレイアウトを変更したり、他の要素を追加したりする場合があります。 1つのバリアントを使用するか、もう1つのバリアントを使用するかの決定は、選択ルールまたはコンテキストに基づいて行うことができます。選択ルールの詳細はglobalであり、見ているもの、つまり表示されているノードなどのコンテキストの詳細です。

4
Malks

私は以前にそれを定義することを余儀なくされたことがありませんが、ここでそれを試みます。

「バリアントは、ページのリクエストに対する特定の応答です」、ページマネージャーで。ほとんどの場合、パネルを使用すると、ノードまたはその他のページ全体のレンダリングが必要になりますが、常にそうであるとは限りません。

「ビューの表示」にはいくつかの類似点がありますが、ディスプレイとは異なり、バリアントには相互間の継承がありません。特定のページのすべてのバリアントは、基本的なアクセスルールがあれば同じであり、ページマネージャーがURLから派生するコンテキストオブジェクトから始まりますが、お互いに気づいていません。選択ルールに基づいて、上から下に評価されます。 TRUEを返す最初の選択ルールが選択されます。

一般的な例は、2つの異なるコンテンツ/ノードタイプを互いに分離して、完全に異なる方法でレンダリングできるようにすることです。各バリアントは独自のレイアウトを選択し、フィールド/フォーム/その他を任意の方法で配置する場合があるため、「記事」と「ブログ」のタイプは完全に異なる場合があります。この場合、バリアントはnode-article.tpl.phpおよびnode-blog.tpl.phpに対応します。

PanelsContextual Administration やプレーンなHTTP応答コードなどの使用を必要としないバリアントには、他にもさまざまな「レスポンダ」がありますが、この答えは十分に長いです。

5
Letharion

レサリオンの答えとマルクスの答えはどちらも非常に良いですが、役に立つと思われるものを追加しましょう。 (私がこれを間違っていると思ったらコメントを残してください、私はそれを修正します。)

パネルは、「スマートブロック」(またはコンテキスト認識ブロック、またはそのようなもの)と呼ばれるようなブロックの代替品と考えることができます。場合によっては、ブロックのコンテンツの動作(表示)がページごとに少し異なる場合があるため、パネルはコンテキストによって表示が異なる場合があります。ブロックでこれを行うのは少々厄介なので、パネルは問題を改善しようとします。

バリアントは、表示方法の異なるversionまたはvariationです。コンテキストと選択ルールを設定して、使用するバリアントを決定できます。

つまり、簡単に言うと、バリアントはversion ブロックパネル、およびすべてのパネルには少なくとも1つのバージョンが必要です。

1
iconoclast