コンポーネントからログインした後、最後にアクセスしたページにユーザーをリダイレクトします


8

Joomla 3.5.1では、ユーザーをログイン前のページにリダイレクトします。

彼らがmod_loginからログインする場合、問題はありません。モジュールはトップメニューから保留されているため、そのページにとどまります。

この問題は、ユーザーがコンポーネントからログインしたときに発生します。ユーザーは常にプロファイルページにリダイレクトされます。

メニュー項目index.php?option=com_users&view=loginには、ログイン後にユーザーをリダイレクトするオプションがあります。

しかし、どのようにしてわかりますGet them back to the page they were beforeか: " "?

特定のコンポーネントは次のようなものを追加しています:

?return=L2YlQzMlQjNydW0tcGVyZ3VudGFzLWUtcmVzcG9zdGFzL2NvbnZlcnNhdGi9yZWFkLmh0bWw/aWQ9MjU=

URLに対して、特定のページへのリダイレクトを要求します。

しかし、彼らは常にプロフィールページに戻ります。


they always go back to the profile page.@Lodderが示唆するように変更するかどうかに関係なく、それは私に起こります。
kokbira 2017年

回答:


7

これを行うのは非常に簡単です。

最初に、次のファイルのテンプレートオーバーライドを作成する必要があります。

components/com_users/views/login/tmpl/default_login.php

完了したら、次のファイル(オーバーライド)を開きます。

templates/MY_TEMPLATE/html/com_users/login/default_login.php

81行目に移動すると、次のコードが表示されます。

<input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url', $this->form->getValue('return'))); ?>" />

そしてそれを次のように置き換えます:

<input type="hidden" name="return" value="<?php echo base64_encode($_SERVER['HTTP_REFERER']); ?>" />

お役に立てれば


+1とてもいい考えです。これ$_SERVER['HTTP_REFERER']が常に有効な選択肢かどうかはわかりませんが、私はこのアイデアが好きです。
mavrosxristoforos

@mavrosxristoforos-ええ、それはいくつかの欠点があります。より高度で信頼性の高いソリューションには、セッションまたはCookieを利用するシステムプラグインが含まれます
Lodder

助けてくれてありがとう、私は長年K2のテンプレートオーバーライドを使用してきましたが、コアjoomlaの場合は不可能のようです。「オーバーライドの作成」セクションを含む、リンクの指示を確認しましたが、行った変更はすべて無視されます。
Nuno Nogueira

@NunoNogueira-変更を加えるために開いたファイル、パスは私の回答で提供したものと一致していますか(2番目のコードスニペット)?MY_TEMPLATEもちろん、テンプレートの名前を除いて、まったく同じである必要があります
Lodder

@NunoNogueira-パスを間違えたので、更新しました。(削除/view/
Lodder 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.