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


7

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

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


2
バリアントはDrupalのコアコンセプトではありませんが、明らかにパネル/ページマネージャーのコンセプトです。パネルで再タグ付け。

回答:


4

バリアントはパネルと関係があり、出力をわずかに変化させる方法です。バリアントはほとんどの動作を継承し、必要なものをオーバーライドできます。ビューの経験がある場合、それは別のディスプレイを持っていることに最もよく似ています。バリアントは、パネルのレイアウトを変更したり、他の要素を追加したりする場合があります。1つの変異体または他のを使用するという決定は、選択ルールがよりされ、選択ルールやコンテキストに基づいて行うことができる世界的に見ているかについての詳細や文脈、すなわちノードをなどを見ています


では、OOについて話していて、BがAを継承している場合、BはDrupalのAのバリアントですか?
ジェローム・Verstrynge

3
うーん、バリアントが厳密であることはわかりません。AとBはどちらも、ページ自体である他のオブジェクトから継承しています。
マルクス

5

私は以前にそれを定義することを強いられたことはありませんが、ここでそれを試みます。

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

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

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

コンテキスト管理やプレーンなHTTP応答コードなど、パネルの使用を必要としないバリアントで利用可能な他のさまざまな「レスポンダー」がありますが、この答えは十分長いと思います。


1

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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.