メニュー(または記事)のアクセスが登録済みユーザーのみに設定されているとします。
ページへのパス:http://localhost/menu
この[〜#〜] url [〜#〜]が任意のGUEST USERによって直接アクセスされると、次のようにリダイレクトされます:
http://localhost/...?view=login
では、最初にログインするように求められます。
リダイレクトページへのパスを変更する方法..カスタムログインページを作成しました。http://localhost/...?view=login
ではなく、カスタム作成ログインページにリダイレクトされるようにしたいです。それを達成するためにどのファイルを編集する必要がありますか?
私はそれを自分で見つけました! :)
このファイルを編集する必要があります:/templates/your_template/html/com_users/login/default.php
または、テンプレートフォルダーがhtmlフォルダーで構成されていない場合は、次のように編集します:/components/com_users/views/login/tmpl/default.php
そして変化
if ($this->user->get('guest')):
echo $this->loadTemplate('login');
に
if ($this->user->get('guest')):
header("Location: URL_WHERE_YOU_WANT_TO_REDIRECT");
ログインページの外観を変えたい場合は、テンプレートを上書きすることができ、別のページにリダイレクトする必要はありません。テンプレートフォルダを見つけて、使用しているテンプレートを選択します。 htmlフォルダーがない場合は作成します。オーバーライドするコンポーネントはcom_usersです。
/components/com_users/views
フォルダーでは、テンプレートフォルダーでオーバーライドできるすべてのビューを確認できます。今必要なのはログインフォルダです。 /components/com_users/views/login/tmpl
-default.phpdefault_login.phpとdefault_logout.phpがあります。
テンプレートにすでにhtmlフォルダーを作成しているので、これらのファイルを次の場所にコピーする必要があります。
/templates/yourtemplate/html/com_users/login
その結果、3つのファイルが作成されます。
/templates/yourtemplate/html/com_users/login/default.php
/templates/yourtemplate/html/com_users/login/default_login.php
/templates/yourtemplate/html/com_users/login/default_logout.php
tmplフォルダーは必要ありません。
default_login.phpを編集して上書きできます。
URLとユーザーグループをチェックするプラグインを作成する必要があります。ユーザーがゲストの場合、ユーザーを目的のURLにリダイレクトできます。
以下のリンクはあなたを助けるかもしれません。
@saibbywebの回答により、Joomla 3.9で無限リダイレクトループが発生しました。
次に、問題はアクセスしようとしているコンポーネント_com_akeebasubs
_にあることがわかりました。
$this->container->platform->redirect(\JUri::base() .'index.php?option=com_users&view=login&return=' . $myURI);
この行を次のように変更した後、リダイレクトは適切に機能しました。
$this->container->platform->redirect(\JRoute::_('index.php?option=com_users&view=login&return=' . $myURI));
_User > Login Form
_メニュー項目が必要です。
ログインとログアウト後にユーザーがリダイレクトされる場所を変更する場合は、joomlaのログインモジュールでこれを実行します。これには2つのフィールドがあります。