Magento Forum

   
doppia interfaccia “create account”
 
i2p0
Sr. Member
 
Total Posts:  179
Joined:  2008-03-28
 

ciao a tutti..
qualcuno conosce il modo per selezionare direttamente in fase di registrazione la tipologia di cliente??
cioè creare due pannelli di registrazione uno per utenti comuni senza partita iva..
e uno per clienti commerciali con partita iva…
e direttamente in fase di registrazione va a specificare il la classe di appartenenza e quindi il listino da visualizzare…

spulciando dal blog ho visto che una cosa analoga è stata fatta qui:

https://www.myriadfineart.com/customer/account/create

con link in alto che rimanda a

https://www.myriadfineart.com/customer/account/create/design-trade/

dove vengono richieste ulteriori specifiche....
qualcuno ha qualche idea??

 
Magento Community Magento Community
Magento Community
Magento Community
 
Black Cat
Moderator
 
Avatar
Total Posts:  3456
Joined:  2008-02-14
Assemini / Cagliari (Italy)
 

creare il secondo tipo di registrazione creando una pagina apposita con più form.. però non ti saprei dire come salvarli in db :(

 
Magento Community Magento Community
Magento Community
Magento Community
 
i2p0
Sr. Member
 
Total Posts:  179
Joined:  2008-03-28
 
Black Cat - 22 August 2008 03:49 AM

creare il secondo tipo di registrazione creando una pagina apposita con più form.. però non ti saprei dire come salvarli in db :(

io ho già pensato di duplicare la pagina di template create....
aggiungendo direttamente le voci diverse lì....
il mio problema è non tanto quello di far scrivere nel database.. quanto di far registrare con profili diversi in modo automatico..

 
Magento Community Magento Community
Magento Community
Magento Community
 
Black Cat
Moderator
 
Avatar
Total Posts:  3456
Joined:  2008-02-14
Assemini / Cagliari (Italy)
 

ah quindi separare o meglio creare due categorie utente.. uhm è un bel dilemma. Perchè non provi a contattare il webdesigner di quel sito?

 
Magento Community Magento Community
Magento Community
Magento Community
 
i2p0
Sr. Member
 
Total Posts:  179
Joined:  2008-03-28
 

ok ... ci son quasi

innanzitutto grazie a emily brondsema autrice di quel sito e di questa modifica che mi ha gentilmente comunicato la sua modifica....

purtroppo però lei ha fatto la modifica su una 1.0… nel passaggio da 1.0 a 1.3 hanno pensato bene di cambiare uno dei file necessari....
e quindi ci sto ancora lavorando sopra.. ma andiamo con ordine…

prima cosa modificare il form di registrazione:

prendere il file app/design/frontend/YOURTHEME/YOURDESIGN/template/customer/form/register.phtml
e aggiungere all’inizio

<? $where explode("/",trim($_SERVER['REQUEST_URI'],"/"));
if( 
end($where) == 'design-trade' $custom_form 1;  // change 'design-trade' to whatever you're using in the URL
else $custom_form 0?>

poi si va nei form interessati e si modificano seguendo questo criterio:
(questo vale per il titolo)

<? if ($custom_form) : ?>
<h2 id="page-header"><?=$this->__('Create a Design Trade Account')?></h2>
<
div id="dt">Not Design Trade? <a href="/customer/account/create">click here</a></div>
<? else : ?>
<h2 id="page-header"><?=$this->__('Create an Account')?></h2>
<
div id="dt">Design Trade, <a href="/customer/account/create/design-trade/">click here</a></div>
<? endif; ?>

ovviamente cambiate design-trade con la vostra voce..... ah tra l’altro è un link assoluto che parte dalla root del server se avete magento in una cartella inserite il giuto path..

il principio è inserire

<? if ($custom_form) : ?> ///  <? else : ?> /// <? endif; ?>
per definire le azioni sui form che vogliamo modificare o far scomparire a seconda del form

fin qui tutto ok e funziona perfettamente…

il problema adesso è far si che a seconda del form aggiudichi una classe utente piuttosto che un’altra

l’ideatrice di questo mod l’ha testato su una 1.0 e ha fatto così:
nel file register.phtml ha aggiunto

<? if($custom_form) : ?><input type="hidden" name="group_id" id="group_id" value="4"/><? endif;?>
con il valore di value riferito all’id del gruppo specificato

e poi

nel file app/code/core/Mage/Customer/controllers/AccountController.php

ha aggiunto intorno alla riga 174 ->setGroupId($this->getRequest()->getPost(’group_id’))

$customer Mage::getModel('customer/customer')
                ->
setFirstname($this->getRequest()->getPost('firstname'))
                ->
setLastname($this->getRequest()->getPost('lastname'))
                ->
setEmail($this->getRequest()->getPost('email'))
                ->
setPassword($this->getRequest()->getPost('password'))
                ->
setGroupId($this->getRequest()->getPost('group_id'))
                ->
setConfirmation($this->getRequest()->getPost('confirmation'))
                ->
setId(null);

questo dovrebbe essere il gruppo finale…

e qua viene il problema…
purtroppo hanno cambiato questo file nel passaggio da 1.1.0 a 1.1.3 e il blocco nnon è più così…

blocco registrazione 1.1.0 :

/**
     * Create customer account action
     */
    public function createPostAction()
    
{
        
if ($this->_getSession()->isLoggedIn()) {
            $this
->_redirect('*/*/');
            return;
        
}
        
if ($this->getRequest()->isPost()) {
            $errors 
= array();

            
$customer Mage::getModel('customer/customer')
                ->
setFirstname($this->getRequest()->getPost('firstname'))
                ->
setLastname($this->getRequest()->getPost('lastname'))
                ->
setEmail($this->getRequest()->getPost('email'))
                ->
setPassword($this->getRequest()->getPost('password'))
                ->
setConfirmation($this->getRequest()->getPost('confirmation'))
                ->
setId(null);

            if (
$this->getRequest()->getParam('is_subscribed'false)) {
                $customer
->setIsSubscribed(1);
            
}

ora nella 1.1.3 è diventato:

/**
     * Create customer account action
     */
    public function createPostAction()
    
{
        
if ($this->_getSession()->isLoggedIn()) {
            $this
->_redirect('*/*/');
            return;
        
}
        
if ($this->getRequest()->isPost()) {
            $errors 
= array();

         
$customer Mage::getModel('customer/customer')
->
setId(null);


            foreach (
Mage::getConfig()->getFieldset('customer_account') as $code=>$node{
                
if ($node->is('create') && ($value $this->getRequest()->getParam($code)) !== null{
                    $customer
->setData($code$value);
                
}
            }

            
if ($this->getRequest()->getParam('is_subscribed'false)) {
                $customer
->setIsSubscribed(1);
            
}

ho provato a modificare

$customer Mage::getModel('customer/customer')
->
setId(null);

con

$customer Mage::getModel('customer/customer')
->
setGroupId($this->getRequest()->getPost('group_id'))
->
setId(null);

ma non funziona....
sigh sigh
se qualcuno capisce qualcosa in più di me di codice… sa darmi una mano??

grazie a tutti

 
Magento Community Magento Community
Magento Community
Magento Community
 
Black Cat
Moderator
 
Avatar
Total Posts:  3456
Joined:  2008-02-14
Assemini / Cagliari (Italy)
 

uhm non ho capito bene. fammi vedere cosa devo modificare nella 1.0

 
Magento Community Magento Community
Magento Community
Magento Community
 
i2p0
Sr. Member
 
Total Posts:  179
Joined:  2008-03-28
 

hehe a saperlo…
il problema è che chi ha sviluppato questo hack l’ha fatto sull 1.0
e a me come l’ha fatto non va sulla 1.1.3 perchè hanno modificato il pezzo che mi serviva nel file app/code/core/Mage/Customer/controllers/AccountController.php

e non so bene come modificarlo…

 
Magento Community Magento Community
Magento Community
Magento Community
 
Black Cat
Moderator
 
Avatar
Total Posts:  3456
Joined:  2008-02-14
Assemini / Cagliari (Italy)
 

tu dimmi come e cosa si doveva modificare nel 1.0 e poi sotto il file 1.3 e specificali così capisco bene

 
Magento Community Magento Community
Magento Community
Magento Community
 
i2p0
Sr. Member
 
Total Posts:  179
Joined:  2008-03-28
 

ciao scusa se non sono stato chiaro…

allora la situazione è questa… la modifica funziona solo con 1.1.0

e bisogna modificare il file register.phtml come indicato
e inserire la voce

->setGroupId($this->getRequest()->getPost(’group_id’))

nel file app/code/core/Mage/Customer/controllers/AccountController.php
intorno alla riga 174
dove c’è il gruppo che inizia con
$customer = Mage::getModel(’customer/customer’)
->setFirstname($this->getRequest()->getPost(’firstname’))

 
Magento Community Magento Community
Magento Community
Magento Community
 
i2p0
Sr. Member
 
Total Posts:  179
Joined:  2008-03-28
 

io ora sto provando ad adattare questa modifica dalla 1.1.0 alla 1.1.3

e ho notato che nel file
app/code/core/Mage/Customer/controllers/AccountController.php

dove dovevo inserire la voce…

il testo è completamente cambiato

e da cosa sto provano temo non dipenda più solo da questo file..

 
Magento Community Magento Community
Magento Community
Magento Community
 
Black Cat
Moderator
 
Avatar
Total Posts:  3456
Joined:  2008-02-14
Assemini / Cagliari (Italy)
 

che errore ti da se lo metti prima della stringa uguale in tutti e due?

 
Magento Community Magento Community
Magento Community
Magento Community
 
i2p0
Sr. Member
 
Total Posts:  179
Joined:  2008-03-28
 

il problema è che non mi da nessun errore…
solo non mi cambia la group_id agli utenti…

pacioccando son venuto a capo di un paio di xlm che gestiscono le voci…

penso sia li il problema

 
Magento Community Magento Community
Magento Community
Magento Community
 
i2p0
Sr. Member
 
Total Posts:  179
Joined:  2008-03-28
 

risolto il problema…

stupidamente inserivo l’hidden troppo presto..

inserendo questo codice

<? if ($custom_form) : ?>
     
  
<input type="hidden" name="group_id" id="group_id" value="4"/>
<? endif; ?>

subito dopo a

<input type="hidden" name="error_url" value="<?php echo $this->getErrorUrl() ?>" />

sempre in register.phtml

funziona tutto perfettamente..

 
Magento Community Magento Community
Magento Community
Magento Community
 
Ferrara Alessandro
Jr. Member
 
Avatar
Total Posts:  9
Joined:  2009-05-18
Roma
 

Fantastico, post, mi è stato davvero utile!!!!
Adesso devo finire di aggiungere campi al form.... se ho problemi vi supplicherò di aiutarmi!!!

rasberry :D

Alex

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top