|
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
|