私には次の役割があります。
URLエイリアスで、USER PATHSで次のように変更しました:[user:roles:join-path]/[user:name]
ユーザー用に2つのビューを作成しました。1つはメンバーロール用、2つ目はパートナーロール用です(ビューにはuserpictureとusernameが含まれています)。両方の役割のこれらのユーザーのリンクは次のとおりです。
認証済みユーザーの役割が認証済みユーザーのデフォルトであることを知っていますが、USER PATHから削除できます:„ www.example.com/authenticated-user/members/username”から„ www.example.com/members/username” ?
ありがとうございました。
pathauto_create_alias() から呼び出される hook_pathauto_alias_alter() を実装できます。この関数は、トークンが$context['pattern']
で置き換えられる前に、Pathautoモジュールから使用されるパターンを渡します。パターンが"[user:roles:join-path]"
を明示的に使用している場合、"authenticated-user"
が削除されないように、パターンに"authenticated-user"
が含まれていることを確認する必要があります。
代替案は次のとおりです。
hook_tokens_alter() を実装してそのトークンの出力を変更しますが、Pathautoモジュールから作成されたエイリアスだけでなく、トークンが使用される任意の場所で変更されます
hook_tokens() および hook_token_info() を実装して、[user:roles]
と同様のトークンを実装しますが、認証されたユーザーロールの文字列は含まれません
pathauto_tokens() のトークンの:join-path部分を処理するのはPathautoモジュールであることに注意してください。
Pathautoで単一のロールを指定できない場合は、pathautoと同じことを行う小さなモジュールを作成し、お気に入りのロールのみを追加する必要があると思います。
PathautoにはいくつかのAPIとフックもあります。そこで検索してみてください。