Solución codificación de caracteres extraños en los mensajes de la página "Detalles de pedido" en Prestashop 1.5

10 octubre, 2014 |

Si te gusta, compártelo ;)

Desde el "Historial de pedidos" de un determinado cliente, éste puede ver los mensajes que haya enviado sobre determinado producto. Si el mensaje contiene acentos o caracteres extraños es posible que no se visualicen bien. Como podemos ver en este hipotético caso, hay dos mensajes con acentos que no se han codificado bien. Veamos cómo solucionar esto en Prestashop 1.5

Mensajes de la página Detalles de pedido

Para solucionar esto debemos editar el archivo order-detail.tpl que se encuentra en la ruta ../prestashop/themes/nuestra_plantilla

Más o menos a la altura de la línea 382 debemos buscar esta línea…

<td>{$message.message|escape:'htmlall':'UTF-8'|nl2br}</td>
Archivo tpl order-detail

…borrando lo que vemos resaltado en azul, quedando la línea así:

<td>{$message.message|nl2br}</td>

De esta forma eliminaremos el problema de la incorrecta visualización de estos caracteres.

escape se usa para codificar los caracteres de una variable. Como el contenido de esta variable es extraída de la base de datos de PrestaShop, en concreto de la tabla pref_customer_message, y en el contenido de la misma no se muestran los acentos correctamente, tampoco se mostrarán correctamente en el Front-office.
Tabla customer-message

Como podemos ver el contenido de la tabla de la base de datos no está bien codificado, es por ello que en la página de "Detalles de Pedido" se muestra sin codificar, porque escape y sus valores escape:'htmlall':'UTF-8' "escapan" el contenido del mensaje, es decir, muestran el texto literalmente, tal y como está.

Por eso eliminando el texto escape:'htmlall':'UTF-8' se mostrarán correctamente los acentos y caracteres extraños.

No hay comentarios: