On veut ajouter une login box dans le site :
1- Copier le template form.phtml dans app/design/frontend/default/mon-theme/template/customer/form/ et enregistrez-le sous loginbox.phtml
Modifier en fonction de votre usage. Exemple :
<?php
$_isLoggedIn = $this->helper('customer')->isLoggedIn(); // Vérification si client logué
if(!$_isLoggedIn){ // si le client n'est pas loggué, on affiche la login box ?>
<div>
<div>
<strong><span>Accès Pro</span></strong>
</div>
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form">
<div>
<ul>
<li>
<input type="text" name="login[username]" value="Email" id="email" title="<?php echo $this->__('Email Address') ?> " />
</li>
<li>
<input type="password" name="login[password]" id="pass" title="<?php echo $this->__('Password') ?>" value="pass" />
</li>
</ul>
</div>
<div>
<button type="submit" title="<?php echo $this->__('Login') ?>" name="send" id="send2">
<span>
<span>
<?php echo $this->__('Login') ?>
</span>
</span>
</button>
<a href="<?php echo $this->getForgotPasswordUrl() ?>">
<?php echo $this->__('Forgot Your Password?') ?></a>
</div>
</form>
<script type="text/javascript">
//<![CDATA[
var dataForm = new VarienForm('login-form', true);
//]]>
</script>
</div>
<?php } else { // si le client est loggué, on affiche un lien vers le compte et de déconnexion ?>
<div>
<div>
<strong><span>Compte pro</span></strong>
</div>
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
<div>
<p><a href="<?php echo $this->getUrl('customer/account/') ?>" title="Mon compte">Mon compte</a><br />
<a href="<?php echo $this->getUrl('customer/account/logout/') ?>" title="Se déconnecter">Se déconnecter</a>
</p>
</div>
</div>
<?php } ?>
2- Insérer le template dans le site.
Pour cela il faut ajouter cette ligne dans le layout app/design/frontend/default/mon-theme/layout/customer.xml , entre <customer_logged_out> et </customer_logged_out> .
<reference name="header"> <block type="customer/form_login" name="login_box" template="customer/form/loginbox.phtml" after="-" /> </reference>
Si vous souhaitez mettre le module dans un block vous devez utiliser cette ligne :
<?php echo $this->getChildHtml('login_box') ?>
3- Créer un fichier welcome.phtlm dans app/design/frontend/default/mon-theme/template/customer/form/ (si par exemple dans le header, vous souhaiter faire apparaitre des liens, infos…, quand le client est logué)
De la sorte, les utilisateurs une fois connectés auront un message d’accueil et des liens pour se déconnecter et accèder à leur espace client.
Dans ce fichier copier le code suivant et adapter en fonction… :
<div>
<div>
<strong><span>Compte pro</span></strong>
</div>
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
<div>
<p><a href="<?php echo $this->getUrl('customer/account/') ?>" title="Mon compte">Mon compte</a><br />
<a href="<?php echo $this->getUrl('customer/account/logout/') ?>" title="Se déconnecter">Se déconnecter</a>
</p>
</div>
</div>
4- Insérer le template dans le site.
Pour cela il faut ajouter cette ligne dans le layout app/design/frontend/default/mon-theme/layout/customer.xml , entre <customer_logged_in> et </customer_logged_in> .
<reference name="header"> <block type="core/template" name="welcome" template="customer/welcome.phtml" after="-" /> </reference>
Si vous souhaitez mettre le module dans un block vous devez utiliser cette ligne :
<?php echo $this->getChildHtml('welcome') ?>