web-dev-qa-db-ja.com

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

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に対して、特定のページへのリダイレクトを要求します。

ただし、常にプロフィールページに戻ります。

8
Nuno Nogueira

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

まず、次のファイルに Template Override を作成する必要があります。

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']); ?>" />

お役に立てれば

7
Lodder