gfidalgo Posted October 12, 2013 Share Posted October 12, 2013 Estoy trabajando en la versión 1.5.5.0 El template es default. He estado leyendo del foro para poder hacerlo, al final creo que me he liado y no sólo no lo he conseguido, sino que he fastidiado la página.. he deshecho lo hecho y parece que la página de todos modos está rota. Os cuento: Mi pretensión es añadir un campo en el registro que sea obligatorio, un campo de texto. Lo ideal sería que en este campo hubiera un desplegable con ciertos valores entre los que pudiera escoger, pero si no consigo esto último no me preocupa tanto. Ahora bien, leí en un blog que podía añadir una “nueva sugerencia”, (http://victor-rodenas.com/2012/07/25/anadir-nuevas-sugerencias-al-formulario-de-registro-en-prestashop/), Seguí todas las instrucciones y al llegar al final y después de realizar la traducción, el nuevo campo no aparecía en el registro, ni durante el registro ni después en “mis direcciones”. Así que supuse que el cambio estaba hecho pero yo no podía verlo.. .. Seguí leyendo en foros Y encontré este otro..(http://www.prestashop.com/forums/topic/250292-modify-customer-registration-form-prestashop-15/) Por tanto, he ido a la pestaña de clientes--> establezca los campos obligatorios para esta sección y no he visto allí la nueva opción. Entonces me dirijo a classes/address.php y pienso, “no pasa nada”, el campo que quiero no está aquí, pero lo introduzco yo “a pelo”, en una nueva línea y a ver qué pasa. Pues resumiendo, después de esto la página no se carga, deshice los últimos cambios y aún así no se carga. Como la página en este caso no puede ser cargada y debo reponerla, no creo que sea necesario daros una url donde no hay nada. Sería ideal saber cómo hay que hacerlo y os agradecería vuestra ayuda. Ya sé que he sido muy bruta. Ya sé que hay foros en los que se habla de ello, pero no me he aclarado en absoluto. Gracias de antemano a todos. 1 Link to comment Share on other sites More sharing options...
JavierP Posted October 13, 2013 Share Posted October 13, 2013 Buenos dias gfidalgo si as roto la web, elimina todos los archivos que as modificado, bajate la carpeta de prestashop nueva http://www.prestashop.com/download/old/prestashop_1.5.5.0.zip y vuelve a subir los archivos nuevos por los que as eliminado, o simplemente sustitúyelos. Tambien puedes activar el reporte de errores y pegarnos aqui los errores que te salen, despues de activarlos. http://victor-rodenas.com/2013/05/11/guia-habilitar-el-reporte-de-errores-en-prestashop-1-5-y-prestashop-1-4/ Saludos Pegate Tambien el link de la web, que comprobemos... Link to comment Share on other sites More sharing options...
nadie Posted October 13, 2013 Share Posted October 13, 2013 Es que el enlace que has dejado de añadir una nueva sugerencia, no tiene absolutamente nada que ver con añadir un nuevo campo en el formulario de registro. Para añadir un nuevo campo en el formulario de registro en Prestashop 1.5, mira estos post: http://www.prestashop.com/forums/topic/242364-insercion-de-nuevo-campo-al-formulario-de-registro-y-guardado-en-la-bd/ http://mqueridiam.tbfnation.com/prestashop-anadir-un-campo-personalizado-en-el-formulario-de-registro-del-cliente/ http://www.prestashop.com/forums/topic/242449-nuevo-campo-en-la-administracion-de-clientes/ http://www.bitsandchips.it/forum/viewtopic.php?t=4884&p=48157 1 Link to comment Share on other sites More sharing options...
gfidalgo Posted October 13, 2013 Author Share Posted October 13, 2013 Muchas gracias, voy a ello, la web la he repuesto, porque guardo copias de seguridad diarias, cada vez que le meto mano. Y con reponer los archivos ha sido suficiente. Muchas gracias, me pongo a ello y os cuento. Link to comment Share on other sites More sharing options...
gfidalgo Posted October 15, 2013 Author Share Posted October 15, 2013 (edited) Siguiendo el manual que es el segundo link …He modificado: - themes/NOMBRE_DEL_TEMA/authentication.tpl- “controllers/front/AuthController.php”- “classes/Customer.php”- Cambiado la traducción.- “controllers/admin/AdminCustomersController.php”.- He introducido un campo nuevo lamado referralcode en ps_customer de la BD con php-MyAdmin … el campo sigue sin aparecer ¿Es posible que las frases no las haya puesto en la línea que toca en authentication.tpl?, ¿hay algún sitio específico para esto?¿Es posible que le falte algo a este manual? En “classes/Customer.php”He escrito ... /** @ var string Referralcode */ public $referralCode; pero… ¿no debería escribir algo más por debajo de la línea 160? Edited October 17, 2013 by gfidalgo (see edit history) Link to comment Share on other sites More sharing options...
gfidalgo Posted October 18, 2013 Author Share Posted October 18, 2013 Por fin, ya lo tengo... Al final, la persistencia y cabezonería a veces tiene fruto. Lo he sacado de búsquedas por los foros, de aquí y de allí, y remasterizando os cuento. Por un lado se puede seguir la guía: http://mqueridiam.tbfnation.com/prestashop-anadir-un-campo-personalizado-en-el-formulario-de-registro-del-cliente/ Pero aquí falta la mitad... Lo que falta: En classes/Customer.php faltaba algo.. Cerca de la línea 160, hay una sección que pone… public static $definition = array( Buscamos la línea 'passwd' => array('type' => self::TYPE_STRING, 'validate' => 'isPasswd', 'required' => true, 'size' => 32), Justo antes de esta línea añadimos lo siguiente: 'referralcode' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'), En themes\default\identity.tpl, Buscamos la línea {if $newsletter} Y justo debajo añadimos: <p class="text"> <label for="referralcode">{l s='Referral code'}</label> <input name="referralcode" type="text" class="text" id="referralcode" value="{$referralcode}"/> </p> En controllers\front\IdentityController.php : En el bloque "initContent" Buscamos la línea parent::initContent(); Y justo debajo añadimos.. $referralcode=$this->context->cookie->customer_referralcode; Buscamos $this->setTemplate(_PS_THEME_DIR_.'identity.tpl'); Y justo antes añadimos… $this->context->smarty->assign('referralcode', $referralcode); En el bloque de "postProcess" Buscamos la línea… $this->customer->firstname = Tools::ucfirst(Tools::strtolower($this->customer->firstname)); Y justo debajo escribimos $this->customer->firstname = Tools::ucfirst(Tools::strtolower($this->customer->firstname)); Buscamos $this->context->cookie->customer_firstname = $this->customer->firstname; Y debajo ponemos: $this->context->cookie->customer_referralcode = $this->customer->referralcode; Y esto sí resulta porque lo he comprobado.. En caso de que no os salga es posible que a mí se me haya escapado algo, os dejo las páginas de referencia.. El hilo es el siguiente y hay que llegar hasta el final.. http://www.bitsandchips.it/forum/viewtopic.php?t=4884&p=48157 http://www.prestashop.com/forums/topic/166078-solved-how-can-i-add-custom-fields-to-new-user-registration/?do=findComment&comment=1235751 1 Link to comment Share on other sites More sharing options...
nadie Posted October 18, 2013 Share Posted October 18, 2013 Vaya se me habia olvidado este tema. Bueno, te pongo la palabra solucionado al titulo del tema y cierro el tema. Saludos, Link to comment Share on other sites More sharing options...
Recommended Posts