sandbzh Posted October 16, 2012 Share Posted October 16, 2012 (edited) Bonjour, je cherche le moyen d'obliger les clients à s'identifier avant de voir le site (boutique B2B). J'avais réussi à le faire sur mon site, en version 1.4 : le client arrivait sur la page d'authentification directement, puis était redirigé vers l'index.php une fois identifié. Seulement, la mise à jour en 1.5.1 a fait disparaitre cette fonction....et malheureusement, je ne me souviens plus comment j'avais fait ça. :-(( J'ai certainement modifié du code dans le coeur (erreur de débutante !! lol), mais c'était il y a un an, et je ne me souviens plus où. Une bonne âme pour m'aider please ?? Merci d'avance. Edited October 17, 2012 by sandbzh (see edit history) Link to comment Share on other sites More sharing options...
Dev On Web Posted October 16, 2012 Share Posted October 16, 2012 Bonjour, Un simple if ($this->context->customer->isLogged()) puis une redirection... Link to comment Share on other sites More sharing options...
sandbzh Posted October 16, 2012 Author Share Posted October 16, 2012 Oui...mais où ? Merci Dev On Web (encore !). Link to comment Share on other sites More sharing options...
Dev On Web Posted October 16, 2012 Share Posted October 16, 2012 Oui...mais où ? Merci Dev On Web (encore !). Dans un override du contrôleur Index me semble bien, a tester Link to comment Share on other sites More sharing options...
sandbzh Posted October 16, 2012 Author Share Posted October 16, 2012 Ca ne marche pas. Quoique je mette dans mon IndexController, j'obtiens : Erreur HTTP 500 (Internal Server Error) : Une situation inattendue s'est produite tandis que le serveur tentait de traiter la demande Je ne comprends pas... Link to comment Share on other sites More sharing options...
Prestaspirit Posted October 16, 2012 Share Posted October 16, 2012 Bonsoir, Pour avoir un accès privé sur ta boutique il faut modifier le fichier FrontController.php dans le dossier override/classes/controller Dans la méthode init() juste après l'appel au controller parent (ligne 69), il faut ajouter ce code : /* OVERRIDE ACCES PRIVEE */ if (!$this->context->customer->isLogged() && $this->php_self != 'authentication') Tools::redirect('index.php?controller=authentication?back=my-account'); /* OVERRIDE ACCES PRIVEE */ En espérant avoir répondu à ta question. Cordialement Franck Link to comment Share on other sites More sharing options...
sandbzh Posted October 16, 2012 Author Share Posted October 16, 2012 Ca marche !!! Je n'ai toujours pas réussi à le mettre dans override, j'ai du rater un truc. Je l'ai mis directement dans FrontController.php, mais cette fois ci j'ai noté ce que j'ai fait !!! Un grand grand MERCI Franck !!!! Link to comment Share on other sites More sharing options...
kittypaw Posted December 21, 2012 Share Posted December 21, 2012 sandbzh: si tu override FrontController n'oubli pas de remplacer parent:: par Controller:: Ainsi, tout devrait marcher. Link to comment Share on other sites More sharing options...
sandbzh Posted January 10, 2013 Author Share Posted January 10, 2013 La solution de Prestaspirit fonctionne très bien (encore merci )...mais je viens tout de même de repérer un petit souci. Cela bloque toutes les pages du site si l'on est pas identifié (ce que j'avais demandé !lol), mais du coup, cela bloque aussi la page "mot-de-passe-oublie"... un peu génant tout de même. J'aurais aussi souhaité que la page "mentions-legales" soit accessible de tous. Bref, est-il possible de mettre une exception à ce code ? Merci d'avance !!! Link to comment Share on other sites More sharing options...
upsilon Posted January 10, 2013 Share Posted January 10, 2013 Bonjour à tous ! Je viens de trouver en lisant le post la solution à une de mes (nombreuses) questions. Par contre je rejoint "sandbzh" si il y a un moyen de pouvoir laisser les mentions et le mot de passe oublié je suis aussi à l'écoute. Après comme je débute Prestashop je ne comprend pas le principe de l'override donc j'ai bien ouvert le fichier comme indiqué plus haut mais moi il est quasiment vide... une piste pour m'aider ? Merci Link to comment Share on other sites More sharing options...
sandbzh Posted January 10, 2013 Author Share Posted January 10, 2013 Je ne sais pas si j'ai tout fait dans les règles de l'art, mais si je peux aider à mon tour (et pour mon site, ça fonctionne). L'override te permet de modifier les fonctions de Prestashop sans toucher au coeur. Si tu fais une mise à jour, tu ne seras pas obligé de refaire tes modifications. Que les pros me corrigent si je dis des bétises... Copie le code de ton classes/controllers/frontcontroller.php et mets le dans override/classes/controllers/frontcontroller.php, en n'oubliant pas la modif donnée par Prestaspirit, et tout devrait fonctionner... A part que ça bloque toutes les pages. En espérant que quelqu'un trouve une solution pour ça!! Link to comment Share on other sites More sharing options...
upsilon Posted January 11, 2013 Share Posted January 11, 2013 Merci beaucoup pour la réponse, je teste ça et je ferai mon retour après Link to comment Share on other sites More sharing options...
upsilon Posted January 11, 2013 Share Posted January 11, 2013 Bon je viens au rapport, ca ne fonctionne pas ^^ je vais continuer de chercher pourquoi. Par contre si je copie/colle mon fichier dans l'override en cas de mise a jour celui ci ne le sera pas ? Link to comment Share on other sites More sharing options...
Prestaspirit Posted January 11, 2013 Share Posted January 11, 2013 Bonjour, Pour conditionner l'accès sur d'autres pages il suffit d'ajouter la même condition que j'ai faite pour la page authentification /* OVERRIDE ACCES PRIVEE */ if (!$this->context->customer->isLogged() && $this->php_self != 'authentication' && $this->php_self != 'password') Tools::redirect('index.php?controller=authentication?back=my-account'); /* OVERRIDE ACCES PRIVEE */ cette exemple est pour la page mot de passe oublié, pour savoir quoi mettre comme id en condition il faut afficher le code source de la page en question et récupérer l'id de la balise body. Cordialement Franck Link to comment Share on other sites More sharing options...
sandbzh Posted January 21, 2013 Author Share Posted January 21, 2013 Bonjour, j'ai un peu tardé pour vous répondre, mais je tenais à signaler que tout fonctionne à merveille ! Encore un grand merci Franck !!!! @upsilon : as-tu résolu le problème ? Link to comment Share on other sites More sharing options...
sridhar2do Posted January 29, 2013 Share Posted January 29, 2013 Hey guys, it works gr8 thank you. Link to comment Share on other sites More sharing options...
demba Posted January 30, 2013 Share Posted January 30, 2013 Bonjour j'ai le même problème que upsilon a la différence que moi maintenant quand j'enlève les modifications sur les fichiers j'ai toujours le problème avec l'erreur suivante: Erreur HTTP 500 (Internal Server Error) : Une situation inattendue s'est produite tandis que le serveur tentait de traiter la demande. S'il vous plait j'ai vraiment besoin d'aide urgent. Link to comment Share on other sites More sharing options...
florent974 Posted June 18, 2013 Share Posted June 18, 2013 Bonjour, La solution de PrestaShop Apprentice fonctionne très bien,(merci). Cependant j'aimerai que lorsque on clique sur "Consulter la version mobile du site" on arrive sur la page d'authenfication mais en version mobile mais je ne sais pas comment m'y prendre. Merci de votre aide! Link to comment Share on other sites More sharing options...
sandbzh Posted August 9, 2013 Author Share Posted August 9, 2013 Bonjour, je reviens à nouveau sur ce sujet car j'ai un nouveau problème. J'ai voulu faire la mise à jour vers 1.5.4.1, qui n'a pas correctement fonctionné je crois. Je suis donc repassée à la 1.5.3.1 et depuis j'ai plein de bugs... que j'arrive à résoudre petit à petit. Par contre, mon accès privé ne fonctionne plus, j'arrive directement à ma page d'accueil, sans identification. Je n'ai pourtant rien changé à la solution donnée par Prestaspirit, qui fonctionnait très bien pour moi. Quelqu'un aurait-il une idée pour m'aider ? Merci d'avance !! Link to comment Share on other sites More sharing options...
sandbzh Posted August 9, 2013 Author Share Posted August 9, 2013 Petite précision : j'ai modifié directement le fichier coeur FrontController et tout fonctionne. J'ai aussi remarqué que d'autres modifications faites dans l'override ne fonctionnait plus, le problème viendrait donc de là.... Si quelqu'un a une idée.... je prends !!! Link to comment Share on other sites More sharing options...
patfrat Posted September 18, 2013 Share Posted September 18, 2013 (edited) Dans le dossier override, il y a un fichier readme qui dit ceci Q: I added an override file but it seems to be ignored by PrestaShop A: You need to trigger the regeneration of the /cache/class_index.php file. This is done simply by deleting the file. It is the same when manually removing an override: in order to reinstate the default behavior, you must delete the /cache/class_index.php file. Il faut donc supprimer le fichier /cache/class_index.php pour prendre en compte les modifications. Le fichier supprimé se régénère ensuite. Ca peut aider je pense Edited September 18, 2013 by patfrat (see edit history) Link to comment Share on other sites More sharing options...
aishosho Posted April 21, 2014 Share Posted April 21, 2014 je cherche a faire la méme chose mais je trouve pas le fichier frontcontroller dans override/classes/controller version 1.5.6.2 ,, MErci de me répondre Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now