Jump to content
rc183

Modifier la page authentication pour boutique privée

Recommended Posts

Bonjour,

J'utilise depuis peu prestashop. J'étais auparavant habitué à os commerce.

Mon projet actuel est de créer, à partir de prestashop, une boutique de vente privée.

ça fonctionne à présent sans problème hormis que pour l'authentification j'ai réutilisé le template authentication.tpl et je l'ai renommé en private_authentication.tpl. Hélas en la renommant la traduction en français disparait et je me retrouve avec la version anglaise.

Je supose donc que le fait de la renommer a un inpact sur la traduction mais je n'arrive pas à trouver d'ou celà provient. Je demande donc de l'aide aux expert prestashop. Auriez vous une idée ?

D'avance merci.

Share this post


Link to post
Share on other sites

Bon hé bien j'ai trouvé.

Merci quand même pour ceux qui ont regardés.

Share this post


Link to post
Share on other sites

Merci d'en faire profiter tout le monde !

Au risque d ene pas avoir de réponse lorsque vous aurez besoin de quelqu'un !

Amicalement,

DL

Share this post


Link to post
Share on other sites

Bonjour,

Je désire rendre ma boutique privée : seul les clients que j'ai entré via le back office doivent y avoir accès (pas de possibilité de nouvelles inscription sur le front office), l'idéal serait que l'on tombe directement sur la page authentication.php (pour ce qui est de la suppression de la partie "Créez votre compte" je saurai faire...)

Newcomer : "ça fonctionne à présent sans problème hormis que pour l’authentification j’ai réutilisé le template authentication.tpl et je l’ai renommé en private_authentication.tpl" un peu plus de précisions de ta part auraient été fortement appréciés !!!

Dans l'attente d'une piste...

Share this post


Link to post
Share on other sites

j'ai testé private_shop mais pas fonctionnel sous la v2 ou alors je l'ai mal installé mais je pense pas.
tu l'as testé sur la dernière version de presta?

Share this post


Link to post
Share on other sites

j e rencontre aussi le meme probleme, la seul solution que j ai trouvé après recherche c est privateshop qui n est pas fonctionnel pour la v2.
denombreux sujet son ouvert a ce sujet mais aucune solution a vue le jour.
j ai installé le module maintenace & newsletter en home page, comment le modifier pour y faire apparaite les blocs d inscription ?

Share this post


Link to post
Share on other sites

personne a une petite idee pour remplace l inscription à la newsdans le module maintenance et newsletter par creer un compte avant d avoir acces a la boutique ?

Share this post


Link to post
Share on other sites

Tout dépend de ce que l'on veut faire avec sa boutique?!
Soit cacher les prix et les montrer qu'aux membres inscrits
Soit avoir 2 prix différents par produits (ps 1.2.5.0 le prend en compte)
Sinon c'est empêcher l'inscription automatique des clients pour pas qu'ils voient les prix en suivant. Une autorisation de l'admin est nécessaire.
Je ne sais pas à qui répondre et quoi répondre, donc si vous avez toujours des problèmes d'affichage de prix, contactez-moi.
Bonne continuation.

Share this post


Link to post
Share on other sites

Salut sur les pages que tu veux rendre privées il faut rediriger vers la page d'authentification/connexion:

if (!$cookie->isLogged())
   Tools::redirect('authentication.php');



après l'include header.php:

include(dirname(__FILE__).'/header.php');



Normalement ça devrait t'aider ;)

Share this post


Link to post
Share on other sites

je veu bien que tu me guide un peu car je ne suis pas doué en dev.
merci

on ne peut pas modifier le module maintenace et newsletter pour arriver a ce resultat ?

Share this post


Link to post
Share on other sites

J'pense pas que utiliser le module maintenance soit une bonne solution parce que ça voudrait dire que ta boutique doit rester en maintenance pour la faire fonctionner (c'est qu'un avis).
avec les codes que je t'ai passé tu as juste à les mettre dans les fichier .tpl respectifs c'est à dire category.tpl pour pas avoir accès aux catégories de la boutique sans connexion etc... (j'avais effectivement oublié de préciser où mettre les lignes de codes ^^)

Share this post


Link to post
Share on other sites

"pour pas avoir accès aux catégories de la boutique sans connexion"
je sais pas si j ai tout compris mais ce que je cherche doit permettre d afficher le bloc identification avant d avoir acces à la boutique,
soit sur la forme d un bloc qui vien par dessus la boutique empechant l acces avant identification soit par une page d identification comme sur le lien mis plus haut.

Share this post


Link to post
Share on other sites

Dans ce cas voyez dans le fichier index.php à la limite.

Si vous remplacer ça :

<?php  
include(dirname(__FILE__).'/config/config.inc.php');  
if(intval(Configuration::get('PS_REWRITING_SETTINGS')) === 1)     
   $rewrited_url = __PS_BASE_URI__;  
include(dirname(__FILE__).'/header.php');  
$smarty->assign('HOOK_HOME', Module::hookExec('home')); 
$smarty->display(_PS_THEME_DIR_.'index.tpl');  
include(dirname(__FILE__).'/footer.php');  
?>



Par ça:

<?php  
include(dirname(__FILE__).'/config/config.inc.php');  
if(intval(Configuration::get('PS_REWRITING_SETTINGS')) === 1)     
   $rewrited_url = __PS_BASE_URI__;  
include(dirname(__FILE__).'/header.php');  
$smarty->assign('HOOK_HOME', Module::hookExec('home')); 
////////////// 
global $cookie; 
if($cookie->isLogged()){     
   $smarty->display(_PS_THEME_DIR_.'index.tpl'); 
} 
else{     
   $smarty->display(_PS_THEME_DIR_.'authentication.tpl'); 
} 
////////////// 
include(dirname(__FILE__).'/footer.php');  ?>



Le client sera alors redirigé vers l'inscription tant qu'il n'est pas connecté sur la boutique!

;-)

Share this post


Link to post
Share on other sites

ouaip me suis planté c'est ds les fichiers .php -.-.

sympa tes modules checaman comment on peut commander?

Share this post


Link to post
Share on other sites

merci !!!!!!!!!!!!!!
je test ca en rentrant ce soir en espérant que tous ce déroule correctement car le site est en prod :-)
domage qu aucun module existe permettant l affichage d une page avec un css qui lui est propre

Share this post


Link to post
Share on other sites

Et bien cela dépend en faite. Chez moi il me semble que l'accès est bloqué sur toute les pages vu que tant que le client n'est pas loggé il sera redirigé vers la page de connexion.
Sinon après si chez toi le client voit toujours les catégories, il faut rajouter une condition au niveau du menu et/ou des blocs pour empêcher l'affichage si client non enregistré.
Voilà, j'espère t'avoir aidé.
Bon courage.

Share this post


Link to post
Share on other sites
Et bien cela dépend en faite. Chez moi il me semble que l'accès est bloqué sur toute les pages vu que tant que le client n'est pas loggé il sera redirigé vers la page de connexion.
Sinon après si chez toi le client voit toujours les catégories, il faut rajouter une condition au niveau du menu et/ou des blocs pour empêcher l'affichage si client non enregistré.
Voilà, j'espère t'avoir aidé.
Bon courage.

en fait il à toujours acces au top menu
par contre une foie connecté comment le redirigé vers la home page au lieu du recapitulatif du compte?

Share this post


Link to post
Share on other sites

Bon ....
Le plus simple à faire pour ne pas avoir a modifier azmilles pages :

dans init.php ajouter çà à la fin

if(!$cookie->logged AND $page_name!='authentication')
{
   header('Location:./authentication.php');
}



Voilà. Si vous voulez atterir sur une page en particulier après l'authentification, l'index par exemple :

if(!$cookie->logged AND $page_name!='authentication')
{
   header('Location:./authentication.php?back=index.php');
}



Pierre.

Share this post


Link to post
Share on other sites
Bon ....
Le plus simple à faire pour ne pas avoir a modifier azmilles pages :

dans init.php ajouter çà à la fin

if(!$cookie->logged AND $page_name!='authentication')
{
   header('Location:./authentication.php');
}



Voilà. Si vous voulez atterir sur une page en particulier après l'authentification, l'index par exemple :

if(!$cookie->logged AND $page_name!='authentication')
{
   header('Location:./authentication.php?back=index.php');
}



Pierre.


yoya peut tu me donner l script total de ton fichier ini.php car dés que je rentre ton bout de code j ai le site qui ne remarche plus même en rechargeant les fichiers de base
dc j ai peut être merdé dans l intégration du bout de code
merci ;)

Share this post


Link to post
Share on other sites

tu es un champion !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
merci beaucoup ca marche !!!!!!!!!
je l avais pas collé au bon endroit ( a savoir la fin du script)n

Share this post


Link to post
Share on other sites

Très bon srcipt, parcontre j'ai pas bien compris la fin là!

J'aimerai savoir quelque chose. Une fois que la personne a appuyé sur le bouton s'inscrire ( à la fin du formulaire), comment faire pour qu'elle n'arrive pas sur la page mon compte ou sur la page avec marqué accéder à mon compte, mais plutot sur l'index justement?

merci d'avance!

Share this post


Link to post
Share on other sites

Bonjour Arnaud,

if(!$cookie->logged AND $page_name!='authentication')
{
   header('Location:./authentication.php?back=index.php');
}



Tu peu noter le

back=index.php

où index.php est la page de retour. Si tu veux par exemple revenir sur "ta_page.php" :

if(!$cookie->logged AND $page_name!='authentication')
{
   header('Location:./authentication.php?back=ta_page.php');
}



A bientot.

Pierre.

Share this post


Link to post
Share on other sites

Merci c'est nickel chrome! Petite précision si des gens sont interressés, il faut ajouter ce code après le code précedemment rajouté dans le fichier ini.php

;)

Share this post


Link to post
Share on other sites

Je suis embétant, mais je sais pas si ça le fait chez vous, quand je clique sur "Mot de passe oublié?" il veut pas me renvoyer sur la page password.php.

Même en rentrant l'adresse manuellement, il me fait ce renvoie.

EDIT: Dailleurs je m'aperçois que les 3 petits liens que j'ai mis sur la page d'autentification me renvoient tous au même endroit. Serai-t'il possible d'intégrer des exceptions?

Share this post


Link to post
Share on other sites
Tout dépend de ce que l'on veut faire avec sa boutique?!
Soit cacher les prix et les montrer qu'aux membres inscrits
Soit avoir 2 prix différents par produits (ps 1.2.5.0 le prend en compte)
Sinon c'est empêcher l'inscription automatique des clients pour pas qu'ils voient les prix en suivant. Une autorisation de l'admin est nécessaire.
Je ne sais pas à qui répondre et quoi répondre, donc si vous avez toujours des problèmes d'affichage de prix, contactez-moi.
Bonne continuation.


Bonjour Monsieur Checaman,

Tu indique dans ta réponse "Soit cacher les prix et les montrer qu'aux membres inscrits" ... Et voila ce que je voudrais faire, j'ai fouillé un peu le product.tpl avec cette idée {if $logged} le prix {/if} mais à part un gros fouilli je n'obtiens rien

Si tu as une solution, je suis acheteur <= Normal !

Merci

Share this post


Link to post
Share on other sites

bonjour,

j'ai installé le code pour inscription obligatoire du clent sur le init.php et merci, ça marche !

ma question est comment le rendre visible qu'aprés paiement du droit d'inscription, la boutique étant réservée aux grossistes.

merci d'avance

Share this post


Link to post
Share on other sites

Bonjour,

It works, but the button "I forgot my password" not, why?

Can someone help me? Thanks!

Share this post


Link to post
Share on other sites

Bonjour,

En suivant les étapes, j'ai réussi à vérouillé mes catégories en ajouté le script dans catégorie.php. Jusqu'ici tout marche.
Mon problème est quand l'inscription est fait, le client a directement accès aux sites sans le validation du admin de son inscription.
Dans ce cas, est ce qu'il y aurais un moyen de le redirigé sur une autre page. Et qu'il attend l'activation de son compte?

Merci
Erik

Share this post


Link to post
Share on other sites

Juste une remarque sur cette redirection :

if(!$cookie->logged AND $page_name!='authentication')
{
   header('Location:./authentication.php?back=ta_page.php');
}



Ca ne fonctionne que sur les pages qui se trouvent à la racine de l'installation.
Pour des pages qui se trouvent dans un module, ca ne fonctionne pas

Un accès, par exemple à
www.monsite.fr/modules/monmodule/information.php,
renvoie vers la page
www.monsite.fr/modules/monmodule/authentication.php?back=lapage.php
Page qui n'existe pas.

Pourquoi ne pas utiliser

Tools::redirect ('authentication.php?back=lapage.php'); 


(Pas sur que ca marche mieux d'ailleurs ;)

Share this post


Link to post
Share on other sites

Bonjour,

Ce code fonctionne, mais le bouton "J'ai oublié mon mot de passe" pas, pourquoi?

Quelqu'un peut-il m'aider? Merci!

Share this post


Link to post
Share on other sites

justement c'est ce que je cherche aussi. mais il semblerait que code avec le logged cookie bloc les pages qui sont loin dans le site. Possible alors qu'il bloque la page password.

Bref je suis toujours en train de bidouiller

Share this post


Link to post
Share on other sites
if(!$cookie->logged AND $page_name!='authentication')
{
   header('Location:./authentication.php?back=ta_page.php');
} 



Le test redirige toutes les pages vers la page d'authentification.
Pas possible de voir la page "contact", ni "qui sommes nous", ni "password oubliée".....

Il faudrait faire un truc du genre, en listant toutes les pages à laisser passer :

if(!$cookie->logged AND $page_name!='authentication' AND $page_name!='contact' AND $page_name!='password'))
{
   header('Location:./authentication.php?back=ta_page.php');
} 



Pour "Qui sommes nous", je ne sais pas si on peut laisser passer certaisn ID de CMS et pas d'autres

Share this post


Link to post
Share on other sites

Pour qui sommes nous, moi j'ai créé une page html. Elle prend le dessus et s'affiche correctement. Il suffit juste de lui attribuer le style css de vos page d'authentification.

Mais sinon c'est vrai que c'est assez embétant de ne pas pouvoir accéder à cette page password car c'est quand même important :)

Share this post


Link to post
Share on other sites

le truc marche! J'ai ajouté de cette manière, en inversant l'ordre des pages à afficher.

if(!$cookie->logged AND $page_name!='authentication' AND $page_name!='password')
{
   header('Location:./authentication2.php?back=password.php');
header('Location:./authentication2.php?back=index.php');

}




Merci!

Share this post


Link to post
Share on other sites

OH YEAH rRock'N'roll petit patapon!!!!! en effet, il faut donc remplacer dans le fichier init.php (pour ceux qui n'aurait pas suivi depuis le début):


if(!$cookie->logged AND $page_name!='authentication')
{
   header('Location:./authentication.php');
}
if(!$cookie->logged AND $page_name!='authentication')
{
   header('Location:./authentication.php?back=index.php');
}




par

if(!$cookie->logged AND $page_name!='authentication' AND $page_name!='password')
{
   header('Location:./authentication.php?back=password.php');
header('Location:./authentication.php?back=index.php');

}

Share this post


Link to post
Share on other sites

Bonjour,

Après avoir ajouté dans init.php, effectivement il marche. Mais mon problème est quand le client valide l'inscription, il est directement redirectionné dans la partie connecté. Or ce que je veux c'est pouvoir gérer les inscriptions, c'est à dire je valide à partir du back office ceux que je veux laisser accéder ou ne pas valider ceux que je ne veux pas.

En gros après l'inscription, le client attend un mail de confirmation de l'activation de leur compte avant de pouvoir accéder dans la partie catalogue du site. Sans cela, le client ne peut voir que les infos nous concernant sur le site.

Merci

Share this post


Link to post
Share on other sites

@erikzhang

J'ai développé le module customerRegistration qui permet cela.
Il est dispo sur le forum (j'ai pas le lien sous la main, mais par la recherche tu le trouveras)

Share this post


Link to post
Share on other sites

Bonjour,

Peut on faire la même chose pour la partie nouveautés, meilleurs vente, promotions?
C'est à dire tant que le client n'est pas connecté, quand il click sur le block nouveautés, il est redirigé vers la page de création de compte et connection?

Merci

Share this post


Link to post
Share on other sites

Bonsoir,

Je rejoins ce post pour une question qui rejoint celle de la boutique privée.
Si j'ai bien suivi tout le poste, c'est donc dans le fichier init.php qu'il faut insérer la redirection pour un client non loggué.

Dans mon cas, je souhaiterais le renvoyer vers une page où il saisierait son code postal.
Je souhaiterais ensuite conserver cette information pour la rapprocher d'une liste d'états (Zone---> Etats du menu Transporteurs de l'Admin), afin de pouvoir lui proposer des tarifs de livraison adaptée à sa localisation FR...

Est-ce que selon vous, je suis sur la bonne route (j'entend sur l'utilisation de votre code) sauf que j'enverrais vers une page type CMS?id_xx ou geolocalisation.php...

Selon ce que j'ai compris des variables :( pour conserver une info, il est préférable d'opter pour la page php.... Mais ceci est le sujet d'un autre post...

Si qqn pouvait déjà me confirmer pour la première partie (ou m'indiquer une autre marche à suivre).

D'avance, merci.

Share this post


Link to post
Share on other sites

Bonjour à tous ..
Avec mes peu de connaissances, j'arrive à faire fonctionner l'authentification obligatoire (2 lignes de code dans le init.php).
Seulement je me sens limité pour le "conjuguer" avec le module customerregistration qui, seul, fonctionne bien aussi. En fait, avec les 2 principes activés, on me renvoit à

modules/customerregistration/authentication.php was not found on this server

- Je sais pas qui prend la main sur quoi, j'imagine gentiment qu'il suffirait de renseigner correctement la Location, mais je crains que ce ne soit plus délicat. Une idée ?

Share this post


Link to post
Share on other sites

Bonjour,

Comment faut il faire pour mettre ce script dans prestashop 1.4

Mon init.php contient les lignes suivantes:


$controller = new FrontController();
$controller->init();


Merci d'avance pour votre aide :)

Share this post


Link to post
Share on other sites

Salut tout le monde,

 

ma question et la meme que celle de "chmorchip",

 

"Comment faut il faire pour mettre ce script dans prestashop 1.4"

 

le fichier contient

$controller = new FrontController();

$controller->init();

 

Merci d'avance pour toute réponse

Share this post


Link to post
Share on other sites

Pour version 1.4 :

Class FrontController.php (dossier classes)

 

Et copier/coller de la modif de code à la Ligne 321 (juste avant le } de fermeture de la fonction init() )

 

if(!$cookie->logged AND $page_name!='authentication' AND $page_name!='password')

{

header('Location:./authentication.php?back=password.php');

header('Location:./authentication.php?back=index.php');

 

}

Share this post


Link to post
Share on other sites

Bonjour,

En cherchant sur le forum je suis tombé sur ce sujet qui correspond exactement à ce que je cherche à faire!!!

Je suis sous prestashop 1.4.2.5 et lorsque j'ouvre le fichier "Frontcontroller.php"

voici ce que je trouve à la ligne 321 (j'ai rajouté le n° de la ligne dans le code)

 

 

/* Display a maintenance page if shop is closed */

protected function displayMaintenancePage()

{

321 if (!in_array(Tools::getRemoteAddr(), explode(',',

 

Configuration::get('PS_MAINTENANCE_IP')))) {

header('HTTP/1.1 503 temporarily overloaded');

self::$smarty->display(_PS_THEME_DIR_.'maintenance.tpl');

exit;

}

}

 

 

Pas de fonction "init()" ?

Du coup je n'ose pas coller le code à cet endroit. Est ce que quelqu'un sait pourquoi je n'ai pas le même code ?

 

Merci

Rom1

Share this post


Link to post
Share on other sites

Bonjour :D

 

je suis tombé sur ce topic en faisant des recherches pour rendre une boutique en ligne private, je vais devoir le faire car j'aurais besoin de créer une multiboutique, la première sera la principale et celle par défaut, par contre il y aura un lien vers la deuxième mais pour la voir on devra se logger dpour qu'elle soit visible. En d'autres termes, elle doit être private mais sachant que je n'ai qu'une seule installation prestashop pour les deux boutiques, comment lui dire qu'il ne sagira que de la deuxième boutique et non la première???

 

Merci :D

Share this post


Link to post
Share on other sites

Bonjour, Je relance ce topic avec la mise a jour de prestashop 1.6.1.3 si quelqu'un pouvait de nouveau détailler les fichiers à modifier et les lignes à remplacer ou pas ce serait cool ;)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More