私は最新のprestashop 1.6.1.4
を使用しています。すべてのお客様に最初にログインしてから、ウェブサイトのすべてのページにアクセスします。ログインユーザーはサイト上で何もできません。PrestashopログインFirst
backoffice
に設定があり、の場合は、の場合はどのように設定できますか?
私は最新のprestashop 1.6.1.4
を使用しています。すべてのお客様に最初にログインしてから、ウェブサイトのすべてのページにアクセスします。ログインユーザーはサイト上で何もできません。PrestashopログインFirst
backoffice
に設定があり、の場合は、の場合はどのように設定できますか?
これを行う関数はありませんが、この動作を実現するためにFrontControllerを簡単にオーバーライドできます。
/override/classes/controller/FrontController.php
の内側にこのコードを入れてください:
<?php
class FrontController extends FrontControllerCore
{
public function init()
{
parent::init();
if (!$this->context->customer->isLogged() && $this->php_self != 'authentication' && $this->php_self != 'password')
{
Tools::redirect('index.php?controller=authentication?back=index');
}
}
}
ユーザーが認証ページや、彼が認証ページにリダイレクトされます忘れてしまったパスワードのページにない場合。ログイン後、彼は家にリダイレクトされます。
EDIT:
ファイルFrontController.php
が存在しない場合、あなたはそれを作成し、ファイル/cache/class_index.php
を削除する必要があります。 class_index
は、ウェブサイトのすべてのクラスパスをキャッシュします。新しいクラスファイルを作成する場合は、それを削除してPrestashopに新しく作成されたファイルを検索させる必要があります。
このような構成はバックオフィスではありません。これは、すべてのページ(hookDisplayHeaderまたはhookDisplayTopなど)で呼び出されるフックを使用するストアのカスタムモジュールを開発することによってのみ実現できます。
このためにモジュールを作成したくない場合はPrestaShopのすべてのページで呼び出されるので、FrontController.phpをオーバーライドすることによっても同じことができます。
絶対にコアファイルに触れないでください。これは上書きが対象となります。 – Eihwaz
そのようなものはありません。あなたが十分に快適であれば、それを編集することができます – Wolfack
Erm ...人にはアドバイスをしてはいけません。快適であることとは何の関係もありません。あなたが店を更新すると、あなたがコアに追加するものはなくなります。そして、オーバーライドのようなものがあるので、@フロリアン・レマイトレの答えは、彼の解決策がより良いので、より多くの票を受け取った理由です。あなたは答えを編集し、コアファイルを真剣に修正するためのアドバイスを削除するべきです。 – Eihwaz
'FrontController.php'ファイルが指定されたパスに存在しません – GuRu
私の編集をご覧ください。 –
@GuRuあなたは私のソリューションを試しましたか?何か助けが必要な方はお気軽に –