2

ZF2 ベースのサイトを構築していますが、2 つの異なるレイアウトがあります。いくつかの公開ページとユーザー認証を必要とするいくつかの内部ページがあり、ページの各セットにはレイアウトがあります。最初はコントローラー プラグインを作成し、ユーザーが ID を持っているかどうかを確認してからレイアウトを変更することを考えていましたが、ログインしているユーザーの公開ページのレイアウトも変更されてしまい、これは望ましくありません。また、コントローラープラグインからレイアウトを変更する方法もわかりません。

内部ページのレイアウトには、現在のユーザーに関する情報と、他のテーブルからのその他の情報も必要です。そのため、ユーザーがIDを持っているかどうかを確認し、レイアウト変数を設定する別のプラグインを作成することを考えていました。コントローラ プラグインでレイアウト オブジェクトを取得して変数を設定する方法がわかりません。また、あるプラグインから他のプラグインにアクセスする方法もわかりません。

また、内部ページについては、ユーザーがログインしているかどうかにかかわらず、すべてのアクションをチェックしています。身元がわからない場合は、ログイン ページに誘導します。これにより、多くの繰り返しコードが発生したため、このコードをコントローラープラグインに移動し、特定のページでユーザーの ID を確認し、ユーザーが ID を持っている場合はページにアクセスできるようにする方法はありますか?画面。

4

1 に答える 1

1

最終的に、これはユーザーが作成するカスタム LayoutModule のように見えます。すでにEdpModuleLayoutsをご覧になっていると思いますか? そうでない場合は、そうしてください。

このモジュールが基本的に行うことは、現在のモジュールをチェックしてから、このモジュールの構成内にアタッチされたレイアウトがあるかどうかをチェックすることです。

最終的に必要なのはそれだけです。唯一の違いは、レイアウトをモジュール全体にアタッチするのではなく、おそらく特定のルートにアタッチすることです。現在のRouteが何であるかを確認し、それがConfigurationにLayoutがアタッチされている Route である場合は、レイアウトを変更します。

于 2013-09-26T06:50:01.603 に答える