simchgab Posted June 6, 2017 Share Posted June 6, 2017 Bueno rompiendome un poco el marote para hacer un poco mas intuitivo los formularios, me tope con el problema que en prestashop 1.7.1.1 no se puede modificar los fields de los formularios desde el archivo .tpl. Para esto tenemos que seguir unos pasos: Abrir el archivo CustomerFormater.php en un editor de texto (Para los fields del formulario de registro): Y agregar la siguiente linea al field donde queramos agregarle el placeholder: ->addAvailableValue('placeholder', $this->translator->trans('Lo que quieras')) En mi caso Agregue el placeholder "[email protected]" al field email del formulario de registro: $format['email'] = (new FormField) ->setName('email') ->setType('email') ->setLabel( $this->translator->trans( 'Email', [], 'Shop.Forms.Labels' ) ) ->addAvailableValue('placeholder', $this->translator->trans('[email protected]')) ->setRequired(true) ; 1 Link to comment Share on other sites More sharing options...
kik-off Posted June 7, 2017 Share Posted June 7, 2017 (edited) Hola, seria mejor hacerlo desde el .tpl. En concreto el form-fields.tpl alojado en la carpeta _patials de la plantilla en uso. Justo después del cierre del código del password ({/block}) y antes del {else} añadimos esto: {elseif $field.type === 'email'} {block name='form_field_item_email'} <input class="form-control" name="{$field.name}" type="{$field.type}" value="{$field.value}" placeholder="{l s='[email protected]' d='Shop.Forms.Help'}" {if $field.maxLength}maxlength="{$field.maxLength}"{/if} {if $field.required}required{/if} > {if isset($field.availableValues.comment)} <span class="form-control-comment"> {$field.availableValues.comment} </span> {/if} {/block} De esta manera no será eliminado al actualizar (siempre y cuando la plantilla no sea la de por defecto y sea actualizada) y aparecerá en todos los campos email de todos los formularios de la tienda. Un saludo Edited June 7, 2017 by kik-off (see edit history) 1 Link to comment Share on other sites More sharing options...
yogaoutlet Posted August 17, 2017 Share Posted August 17, 2017 Hola, Estoy complicado con este tema... quisiera agregar un placeholde al campo dni y phonenumber en formulario de de dirección. Me pude ayudar con eso??? Tengo la vesión 1.7.2 Gracias 1 Link to comment Share on other sites More sharing options...
simchgab Posted December 21, 2017 Author Share Posted December 21, 2017 On 17/8/2017 at 1:04 PM, yogaoutlet said: Hola, Estoy complicado con este tema... quisiera agregar un placeholde al campo dni y phonenumber en formulario de de dirección. Me pude ayudar con eso??? Tengo la vesión 1.7.2 Gracias Para ese inconveniente, solamente encontré esto (Conviene hacer un override para que al actualizar prestashop no se modifique dicho archivo... Por las dudas guardate un backup) Solución Link to comment Share on other sites More sharing options...
nadie Posted December 22, 2017 Share Posted December 22, 2017 (edited) 20 hours ago, simchgab said: Para ese inconveniente, solamente encontré esto (Conviene hacer un override para que al actualizar prestashop no se modifique dicho archivo... Por las dudas guardate un backup) Solución Hola, Gracias por el enlace hacia mi blog, aunque creo que es basicamente lo mismo que comentastes hace unos meses también en el foro en el primer mensaje. xDDD Respecto a lo que comenta @kik-off, posiblemente la solución que nos comenta de editar el TPL sea mas adecuada. ------------------- Por otro lado, creo recordar, que por ejemplo, el "Telefono" del cliente, no es un dato del cliente propiamente sino de la dirección del cliente. Por lo que quizas, estamos hablando (si decidimos tocar la clase) de la clase: /classes/form/CustomerAddressFormatter.php (Recordar evitar en lo posible tocar las clases originales) Y añadir dentro de: foreach ($fields as $field) { Esto: if ($field === 'phone') { $formField->addAvailableValue('placeholder', $this->translator->trans('Oh My God')); } Otra opción, quizas es ir al fichero: /themes/classic/templates/customer/_partials/address-form.tpl --- PD: Esto lo digo a ojo y al menos hasta PS 1.7.2.4, porque supuestamente van a cambiar supuestamente algunas cosillas en el futuro Estoy en el movil, y posiblemete se hayan colado erratas. Edited December 22, 2017 by nadie (see edit history) Link to comment Share on other sites More sharing options...
NBlack Posted March 8, 2018 Share Posted March 8, 2018 Gracias por vuestras respuestas, me han venido al dedillo. Link to comment Share on other sites More sharing options...
Sofitec Posted July 3, 2018 Share Posted July 3, 2018 hola, he intentado insertar los placeholder al formulario de direcciones, pero la verdad no funciona, no se ven los resultados en el formulario propiamente tal alguna idea? he usado esto: !! On 22/12/2017 at 3:54 PM, nadie said: /classes/form/CustomerAddressFormatter.php (Recordar evitar en lo posible tocar las clases originales) Y añadir dentro de: foreach ($fields as $field) { Esto: if ($field === 'phone') { $formField->addAvailableValue('placeholder', $this->translator->trans('Oh My God')); } Otra opción, quizas es ir al fichero: /themes/classic/templates/customer/_partials/address-form.tpl --- Link to comment Share on other sites More sharing options...
Sofitec Posted July 3, 2018 Share Posted July 3, 2018 lo arregle... basta solo con ingresar en /classes/form/CustomerAddressFormatter.php despues de : foreach ($fields as $field) { $formField = new FormField(); $formField->setName($field); $fieldParts = explode(':', $field, 2); lo siguiente: if ($field == 'phone') { $formField->addAvailableValue('placeholder',"+56987654321"); } cabe señalar que : if ($field == 'phone') puede ser cualquier FIELD.!! ejemplo vat_number, dni, Etc.. Gracias !!! Link to comment Share on other sites More sharing options...
eridamega Posted July 3, 2018 Share Posted July 3, 2018 En 22/12/2017 a las 1:54 PM, nadie dijo: Hola, Gracias por el enlace hacia mi blog, aunque creo que es basicamente lo mismo que comentastes hace unos meses también en el foro en el primer mensaje. xDDD Respecto a lo que comenta @kik-off, posiblemente la solución que nos comenta de editar el TPL sea mas adecuada. ------------------- Por otro lado, creo recordar, que por ejemplo, el "Telefono" del cliente, no es un dato del cliente propiamente sino de la dirección del cliente. Por lo que quizas, estamos hablando (si decidimos tocar la clase) de la clase: /classes/form/CustomerAddressFormatter.php (Recordar evitar en lo posible tocar las clases originales) Y añadir dentro de: foreach ($fields as $field) { Esto: if ($field === 'phone') { $formField->addAvailableValue('placeholder', $this->translator->trans('Oh My God')); } Otra opción, quizas es ir al fichero: /themes/classic/templates/customer/_partials/address-form.tpl --- PD: Esto lo digo a ojo y al menos hasta PS 1.7.2.4, porque supuestamente van a cambiar supuestamente algunas cosillas en el futuro Estoy en el movil, y posiblemete se hayan colado erratas. @nadie Seria de ayuda para los novatos como yo encontrar en tu blog como hacer un override. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now