したがって、すべてのカテゴリビューページにカスタムレイアウトハンドルを追加したいと思います。ロードされるはずのハンドルは特定のカテゴリパラメータに依存するため、プログラムでハンドルを追加する必要があります。 $page->addPageLayoutHandles()
簡単そうです どうやら
Magento 2は、私が自然に使うつもりの素晴らしいプラグインシステムを提供します。afterExecute()
元のカテゴリの後に実行するプラグインを定義し、execute()
そこからすべての更新をPageオブジェクトにプッシュします。
残念ながら、この方法ではうまく機能しません。理由は、元のexecute()
メソッドが(最後に)実行されるためです。$page->getConfig()->addBodyClass()
このメソッドを呼び出すと、レイアウトが自動的に完全にロードおよび生成されるため、その後に新しいメソッドを追加しようとすると、 Pageへのレイアウトハンドルは完全に役に立ちません。私は周りを見回して同じことを達成するためにそれほどエレガントではない方法を見つけました(まだプラグインを使用しています)。何も見つかりませんでした。
結局、カテゴリビュー用に独自のコントローラを実行することになりましたが、そのままにしたくありません。
だから私の質問は.. カテゴリビューに新しい(プログラムで)ページレイアウトハンドルを追加するにはどうすればよいですか?エレガントにそれを行います。
$page->getConfig()->addBodyClass()
レイアウトが読み込まれて生成されるのはどこで確認できるでしょうか。現在、CMSページのみで同様のタスクを実行しています。