web-dev-qa-db-ja.com

Drupal 8登録リンク?

Drupal 8 bootstrapテーマでインストールします。ユーザーアカウントメニューの登録フォームへの簡単なリンクを追加したいだけですログインしていない場合に表示されます。

ログインと私のアカウントリンクは既に標準になっていますが、なぜそこに登録ボタンがないのですか?これに対する解決策は何でしょうか?

通常、メニューでリンクを作成する->リンクを追加するオプションを選択すると、常に表示されます。

3
Daniel Scholz

これを簡単にするかもしれないコントリビュートされたモジュールを見つけることができなかったので、他の唯一の可能性はコードです。

基本的に求めているのは、Userモジュールによって定義された既存のルートの変更です。新しいDrupal 8アーキテクチャとAPIを使用してどの程度の経験があるかわかりません。ここにいくつかのリンクをダンプします:p

最初は 新しいルーティングシステム のドキュメントです== Drupal 8が使用しています。変更するルートはパス/ user/registerなので、ルートの名前を探して変更する必要があります。

それを行う方法についての良い記事は here にあります。あなたのユースケースは、logoutルートで例が示すものと非常に似ています。

したがって、基本的には、現在のユーザーのloginInステータスに基づいてルートを変更するRouteSubscriberを作成する必要があります。今は自分のPCにいないので、コード例を示すことはできませんが、必要に応じて解決策を共有できます。

最初に理解する必要のある新しい概念はたくさんありますが、Drupal 8)をすでに知っている場合は、前述の解決策で問題はないことに注意してください。

別の可能性は、アカウントメニューの前処理関数で、テーマレイヤーからリンクを非表示にすることです。

2
benelori

新しいルートを作成する理由もう一つあります!管理パネルを介して、「アカウント」メニューで新しいメニュー項目を作成します。ログイン後にリンクが非表示になります(RegisterAccessCheckクラスによって非表示になります)。

fill fields:
name = Register
uri = route:user.register

UPDATE1あなたはリンクを管理者として表示しますが、他の人-しないでください

3
Vovka

この問題を解決する小さなモジュールを提供しました: https://www.drupal.org/project/registration_link

3
Ivo Radulovski