パネルを使用してログインページを上書きしたい。 Panels Everywhere を使用してそれを行う方法を示すチュートリアルを見つけましたが、これはページ全体を上書きします(site_template
)。ページのコンテンツを上書きしたいだけです。
これは可能ですか?
ページマネージャの既存のページモジュール で既存のパスを上書きできます。
ログインページでは使用していませんが、他のケースではうまく機能します。これを使用して、既存のページのパスをオーバーライドし、そのパスの元のコンテンツをカスタム追加と一緒にパネルペインとして追加できます。
問題全体を読みたくない人のために https://www.drupal.org/node/807754
次のモジュールを使用することをお勧めします: User Pages 。
User Pages モジュールを使用すると、次のユーザー関連ページを管理できます。
- ユーザー
- ユーザー/ログイン
- ユーザー/登録
- ユーザーパスワード
デフォルトでは、これらのユーザーページは Chaos Tool Suite では使用できません。インストールすると、Page Managerでページが自動的に利用可能になり、 Panels で管理できます。
あなたが望むことをするのは不可能ではありませんが、それは近いです。コーディング方法の詳細については触れませんが、何を行う必要があるかを説明します。
主な問題は、パネルが既存のパスを上書きできないことです。
1つの解決策は、user/login
でhook_menu_alter
パスの設定を解除してから、そのパスのパネルページを作成することです。ステップ2では、コンテンツペインとしてログインフォームを作成します。これが機能する場合、それは最も単純なソリューションですが、これは最も壊れやすいソリューションでもあります。
もう1つの解決策は、hook_menu_alter
を使用してコールバックを変更し、パネルAPIでパネルページをレンダリングすることです。これはかなりトリッキーなので詳細には触れませんが、この例は Commerce Panels Integration サンドボックスモジュールで確認できます。これは、より複雑な場合にのみ、コマースチェックアウトの進行状況に対して行われます。このソリューションでは、コンテンツペインとしてユーザーログインフォームを作成する必要もあります。
私はコマースパネル統合のコンセプトを使用してみましたが、AJAXのものを実行するときにいくつかのバグがあることがわかりました。したがって、これらのソリューションはどれも理想的ではないかもしれません。作成しているパネルページ。