Duplicazione form login

Creazione delle pagine necessarie:

Creiamo 2 nuovi elementi attraverso l’apposita procedura (Struttura->Amministra Pagine) . La prima (login2) conterrà la form di login, i relativi controlli e i messaggi di errore; la seconda (engine) sarà invece il motore php/mysql attraverso la quale salveremo i dati del cliente.
Login2 dovrà possedere tutti i campi obbligatori di Magento; in questa guida assumeremo quelli base, cioè: nome, cognome, email, password, password confirmation. Una volta creata questa form, controlliamo attraverso una funzione javascript sull’OnSubmit che tutto in fase di compilazione sia andato bene. Un esempio potrebbe essere il seguente:

function checkFields(){
      var form = document.getElementById('retailer-login');
      if (form.firstname.value==''){
        alert("Il campo nome e' obbligatorio!");
        return false;
      }
      if (form.firstname.value==''){
        alert("Il campo nome e' obbligatorio!");
        return false;
      }
      if (form.lastname.value==''){
        alert("Il campo cognome e' obbligatorio!");
        return false;
      }
      if (form.email.value==''){
        alert("Il campo email e' obbligatorio!");
        return false;
      }
      var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;;
      if (!filter.test(form.email.value)){
        alert('Il campo email deve essere valido!');
        return false;
      }
      if (form.password.value=='' || form.confirmation.value==''){
        alert('I campi password sono obbligatori!');
        return false;
      }
      if (form.password.value.length < 6){
        alert('Il campo password deve possedere almeno 6 caratteri!');
        return false;
      }
      if (form.password.value != form.confirmation.value){
        alert('I campi password devono essere uguali!');
        return false;
      }      
      return true;
}

Engine invece sarà una procedura esclusivamente php che salva nelle tabelle opportune i dati. Dovrà pertanto occuparsi di connettersi al database, costruire i dati da inserire ed aggiungere i dati nelle tabelle, controllando che non ci siano errori. In particolare, se una delle chiavi univoche è già presente, la procedura dovrà interrompersi senza aver scritto nulla sul database, restituendo un messaggio di errore all’utente.

Creazione legame tra le pagine:

Dopo la creazione, occorre inserire tali pagine all’interno del sito. Per fare questo, nell’edit di entrambe le pagine inseriamo nell’aggiornamento layout XML, un blocco centrale che richiama l’opportuno file dove abbiamo scritto le nostre procedure, come nell’esempio seguente valido per la pagina Login2:

<reference name="content">
  <block type="vertnav/navigation" name=”login2" after="-" template="vertnav/login2.phtml">
    <action method="setBlockId"><block_id>login2</block_id></action>
  </block>
</reference>

Successivamente creiamo il legame tra queste procedure: per fare ciò è sufficiente che l’action della form in Login2 punti al file Engine, il quale raccoglierà i dati tramite l’array $_POST e popolerà le tabelle.

Tabelle coinvolte nell’operazione:

Customer_entity -> i valori da inserire sono ((ultimo_id)+1,1,0,1,mail,1,increment_id,1,data_registrazione,data_ultimo_login,1)

Customer_entity_varchar -> i valori da inserire sono
((ultimo_id)+1,1,5,id_customer_entity,nome)
((ultimo_id)+2,1,7,id_customer_entity,cognome)
((ultimo_id)+4,1,3,id_customer_entity,Default Store View)
((ultimo_id)+5,1,12,id_customer_entity,Password_criptata)

(in grassetto I valori che necessitano di una programmazione via codice)

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento