2016-10-03 2 views
0

今、私はこのように私のアクションコントローラに現在ログインしているユーザーのユーザーグループ(複数可)を取得しています:Typo3のfe_usergroupに応じて異なるビューを表示するには6.2エクステンションの拡張は効率的ですか?

$roles = $GLOBALS['TSFE']->fe_user->groupData['title']; 

私はもののように私の見解にこの情報を渡し、その後の操作を行います。

これは良い方法であれば、私はよく分からない
<f:if condition="{0:role} == {0:'management'}"> 
... 

...私はそうは思いません - ので、私はこの考え:listAction()::で例えば

ユーザーグループ別の特性に応じて を示すべきです。

<f:for each="{appointments}" as="appointment"> 
<f:render section="{0:role} arguments="{appointment:appointment}"/> 
... 

しかし、もっと良い方法があるのだろうか...:
私は、ユーザーグループ名を付けると、このような何かを行うことによって、そこのセクションでの作業について考えましたか?
私は自分の意見を最良の方法でテストする方法を考えました - 私の考え: すべてのユーザーグループに所属するテストユーザーがいる場合は、フロントエンドで自分のビューを切り替えてすべてのビュー毎回異なるユーザーグループの別のテストユーザーでログインする必要はありません。 私はそれをやっている方法は不可能です。

だから私の質問:

  1. 私のアプローチのベストプラクティスであるか、またはどのように私はこれがさらに簡単かつ自動化させるだろうか?
  2. すべてのユーザーグループに所属するテストユーザーで説明したように、ビューを簡単にテストする方法はありますか?

私はTypo3 Basicsで検索しましたが、解決策やベストプラクティスが見つかりませんでした。

答えて

1

権限を接続して、特定のフィールドをグループに表示したいとします。人が複数のグループに属することができるので、人が見ることのできるフィールドは大きく変わることがあります。グループごとにセクション/パーシャルを作成する場合は、テンプレートで多くのフィールドを繰り返す必要があります。 より柔軟な方法は、ユーザーがメンバーであるさまざまなグループに基づいてユーザーが見ることができるフィールドを最初に収集することです。あなたの内線番号のsettingsに、各グループに表示されるフィールドを設定することができます。コントローラでは、ユーザーのすべてのグループのフィールドを組み合わせて、最後にフィールドの配列をビューに渡すことができます。ビューは単純にリストを反復し、各可視フィールドをレンダリングすることができます。

+0

いいアイデアのように聞こえますが、それらの設定はどこですか? 「フィールド」とはどういう意味ですか?プロパティの名前の文字列、または各フィールドにセクションを作成して、それらのセクションの名前にする必要がありますか? –

+1

すべてのextbase拡張には、TypoScript設定の「settings」セクションがあります: 'plugin.tx_myextensionname.settings'。そのキーの下に、あなたが望む任意の構成を置くことができます。あなたのコントローラーでは、 '$ this-> settings'と' {settings} 'でFluidにアクセスすることができます。 「フィールド」とは、表示するプロパティを意味しました。 2-3のユーザーグループでは、グループごとに別々のセクションを持つのは問題ありませんが、グループの組み合わせも考慮する必要があります。次に、どのプロパティを表示する必要があるかを最初に確認する方が簡単です。 –

+0

ありがとう、私はまだ設定セクションについて知りませんでしたが、ビューが 'settings'のフィールドを反復するだけの場合、'

関連する問題