Cambiar “31/05/1970” que vemos debajo del campo fecha de nacimiento en Prestashop

Cuando estamos situados en el formulario de registro de la tienda, vemos que debajo del campo, correspondiente a la fecha de nacimiento, aparece el dato => 31/05/1970.

Formulario datos Prestashop

¿De dónde proviene este dato? ¿Podemos cambiarlo en las traducciones de Prestashop (revisar información) ?

Si vamos al fichero => /classes/form/CustomerFormatter.php, vemos que procede de la siguiente línea de código:

Tools::formatDateStr

Es decir, dentro del campo fecha de nacimiento (format[‘birthday’] = (new FormField)) en la parte donde hace referencia a => Tools::formatDateStr(’31 May 1970′)) que vemos dentro de $this->translator->trans. Realmente el valor queda asignado a la variable => %date_format% que luego se usa dentro de las traducciones ($this->translator->trans).

Por otro lado, vemos que pertenece a una traducción de tipo => Shop.Forms.Help

Tipo de traducción

Si vas al panel de administración, en la pestaña “Internacional => Traducciones” => Bloque modificar traducciones

Tipo de traducción => traducción de temas
Seleccione su tema => classic
Seleccione su idioma => español

Modificar traducciones

Pulsamos en modificar, y buscamos la palabra “Ejemplo” (que es la que acompaña la fecha =>  31/05/1970).

Traducción

Si no os aparece la palabra a la primera, ir buceando por la columna izquierda en “Shop => Forms => Help”-

Buscando traducciones

Vamos, a lo que vamos hemos encontrado:

(Ejemplo: %date_format%)

Texto + variable

Si volvemos al fichero =>  /classes/form/CustomerFormatter.php

Veíamos, por un lado la palabra clave “E.g.” y por otro lado, la variable “%date_format%”

Viendo código
Viendo código

Y vemos que la variable => %date_format% toma un valor fijo, que es una fecha formateada.

Fecha formateada

Si cambiamos el valor de la fecha “manualmente” en el fichero (recuerdo que estamos editando una clase original, y lo recomendable es hacer un override siempre que se pueda).

Valor fijo fecha

Fecha cambiada en el código (he puesto 4 Dec 1988)

Fecha cambiada en el código

Veremos en el formulario, la nueva fecha:

Fecha nueva en el formulario

Aquí =>
array(‘%date_format%’ => Tools::formatDateStr(’04 Dec 1988′)), ‘Shop.Forms.Help’)

Lo que hace es asignar el valor => 04 Dec 1988 (formateado como fecha) a la variable date_format. Formateado, porque usa la función formatDateStr, pero podríamos dejar de usar la función formatDateStr, y establecer cualquier otro dato que no fuera una fecha. La idea es que sepáis, como se asigna el valor de una variable “fija” que luego se imprime al usar la variable. No confundir, con una palabra clave para las traducciones.

Recordar, que estamos situados dentro del campo format[‘birthday’], que corresponde a la de la fecha de nacimiento y que hablamos solo de cambiar el valor de la fecha, no de la traducción de la palabra “E. g”, que esa podemos cambiarla sin problemas desde el panel de administración de la tienda (revisar gestión de traducciones) e incluso añadir información adicional, pero tener en cuenta que al ser una traducción de tipo => Shop.Forms.Help es posible que la misma información que cambiemos en el panel aparezca en otros sitios. Con panel me refiero, aquí:

Traducción

Documento creado bajo Prestashop 1.7.4.2

* Actualización del artículo (1)

Cuando pulsamos en guardar los datos,  y no colocamos la fecha correctamente, nos salta un mensaje (sombreado de color rosa) que dice => “El formato debe ser 31/05/1970.”

Mensaje error

La fecha, procede del fichero:

/classes/ValidateConstraintTranslator.php

Fichero ValidateConstraintTranslator.php
Fichero ValidateConstraintTranslator.php

PD: Por cierto, en este caso, es una traducción de tipo => Shop.Forms.Errors