2016-04-12 10 views
2

私は最新のprestashop 1.6.1.4を使用しています。すべてのお客様に最初にログインしてから、ウェブサイトのすべてのページにアクセスします。ログインユーザーはサイト上で何もできません。PrestashopログインFirst

backofficeに設定があり、の場合は、の場合はどのように設定できますか?

答えて

5

これを行う関数はありませんが、この動作を実現するために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に新しく作成されたファイルを検索させる必要があります。

+0

'FrontController.php'ファイルが指定されたパスに存在しません – GuRu

+0

私の編集をご覧ください。 –

+0

@GuRuあなたは私のソリューションを試しましたか?何か助けが必要な方はお気軽に –

4

このような構成はバックオフィスではありません。これは、すべてのページ(hookDisplayHeaderまたはhookDisplayTopなど)で呼び出されるフックを使用するストアのカスタムモジュールを開発することによってのみ実現できます。

このためにモジュールを作成したくない場合はPrestaShopのすべてのページで呼び出されるので、FrontController.phpをオーバーライドすることによっても同じことができます。

+1

絶対にコアファイルに触れないでください。これは上書きが対象となります。 – Eihwaz

+0

そのようなものはありません。あなたが十分に快適であれば、それを編集することができます – Wolfack

+0

Erm ...人にはアドバイスをしてはいけません。快適であることとは何の関係もありません。あなたが店を更新すると、あなたがコアに追加するものはなくなります。そして、オーバーライドのようなものがあるので、@フロリアン・レマイトレの答えは、彼の解決策がより良いので、より多くの票を受け取った理由です。あなたは答えを編集し、コアファイルを真剣に修正するためのアドバイスを削除するべきです。 – Eihwaz