martes, 12 de marzo de 2013

el campo enlace_reescribible se requiere al menos Español (Spanish)

Me he actualizado a Prestashop 1.5.3 y cada vez que guardaba un artículo me daba el error del título de este post. Me he vuelto loco.

Al final parece ser que es un problema con los artículos y CMS que tienen acentos. En versiones anteriores estos acentos y/o carácteres extraños se trasladaban a las url amigables y es lo que da el error...

Se arregla con algo tan sencillo como ejecutándo a la base de datos la siguiente instrucción:

Para los artículos y CMS

UPDATE `ps_cms_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'ñ','n'),'Ñ','N');
UPDATE `ps_product_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'ñ','n'),'Ñ','N');
UPDATE `ps_cms_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'é','e'),'É','E');
UPDATE `ps_product_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'é','e'),'É','E');
UPDATE `ps_cms_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'á','a'),'Á','A');
UPDATE `ps_product_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'á','a'),'Á','A');
UPDATE `ps_cms_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'í','i'),'Í','I');
UPDATE `ps_product_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'í','i'),'Í','I');
UPDATE `ps_cms_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'ó','o'),'Ó','O');
UPDATE `ps_product_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'ó','o'),'Ó','O');
UPDATE `ps_cms_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'ú','u'),'Ú','U');
UPDATE `ps_product_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'ú','u'),'Ú','U');


Espero que le sea útil a alguien y no pierda tanto tiempo como yo...

P.S. - Con posterioridad he encontrado más tablas a las que les pasa eso... (que va a ser a todas). Voy a ir aquí pegando el código que lo soluciona... aunque se podría lanzar todo para curarnos en salud.

Para las categorías:

UPDATE `ps_category_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'ñ','n'),'Ñ','N');
UPDATE `ps_category_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'á','a'),'Á','A');
UPDATE `ps_category_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'é','e'),'É','E');
UPDATE `ps_category_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'í','i'),'Í','I');
UPDATE `ps_category_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'ó','o'),'Ó','O');
UPDATE `ps_category_lang` SET `link_rewrite` = REPLACE(REPLACE(`link_rewrite`, 'ú','u'),'Ú','U');

3 comentarios:

  1. hola, yo tengo este problema rarisimo, pero como hago lo que indicas aqui?

    ResponderEliminar
  2. Estimado Luis:

    Para hacer esto debes acceder a la base de datos de Prestashop con una herramienta como puede ser el PhpMyAdmin y ejecutar las consultas que pongo. Sin embargo si no sabes muy bien de qué hablo te recomiendo que no sigas por ahí puesto que esta es la manera más sencilla de destruir la base de datos.

    Afortunadamente desde la versión 1.5.4.1 de Prestashop tienes una solución intermedia que consiste en entrar en el BackOffice de la tienda y bajo las opciones de menú Preferencias -> Seo y URL's activar la opción URL con acentos.

    ResponderEliminar
  3. He tenido que cambiar el nombre de las tablas porque mi prefijo es distinto, pero ha funcionado quitar los acentos de la tabla de enlaces. Tenía los acentos conectados en las URLs y ha creado los enlaces así, al desconectar los acentos corrigió la tabla de categorías, pero la de productos por algún motivo no la arregla. Parece que los de Prestashop no tienen mucho interés en los que usamos acentos, porque no es el primer fallo, en la versión 1.5 producía errores.

    ResponderEliminar