0

誰が見ているかに基づいて異なる情報を表示する必要があるサイトでページを作成する場合、最もエレガントなデザインは何ですか?私が思いついたいくつかの可能性:

  1. すべてのデータを、ユーザーが持つ特権の種類を示す変数とともにテンプレートに渡し、それに基づいてテンプレートに表示するかどうかを選択させます。

  2. アクセスレベルに基づいて、テンプレートのさまざまなバージョンを用意します。

  3. アクセスレベルに基づいて、ビューのさまざまなバージョンを用意します。

具体的な例として、ユーザーのプロファイルを持つページがあるとします。ユーザーがログインしている場合は、すべての情報が表示されます。別のユーザーがログインしている場合、そのユーザーが公開したものだけが表示されます。管理者がログインしている場合は、すべての情報と一連の管理アクションボタンが表示されます。

4

2 に答える 2

2

バージョン1はひどいです。テンプレートにアクセス ロジックを配置し、おそらく公開したくないものを (偶然に) 公開する可能性があります。

表示を決定するために別の変数をリレーして、すべてをテンプレートに渡すだけでは絶対にいけません。

ビュー(テンプレートに単一の正しいオブジェクトを提示する)またはモデルで何らかの方法でフィルタリングを行います。

常に 100% 可能というわけではありませんが、ビジネス ロジックをテンプレートから除外するように努める必要があります。

ユーザーの役割に応じて劇的に異なるテンプレートが必要な場合は、役割ごとに個別のテンプレートを使用するのが私のやり方です。

于 2013-02-25T17:53:34.693 に答える
0

バージョン 1 が最善の策です。コンテキスト プロセッサを介して、必要な値をコンテキストに挿入します。

于 2013-02-25T16:16:35.457 に答える