Clave de seguridad inválida

En la versión actual de Prestashop 1.6.0.9 hemos comprobado que el paquete de instalación tiene un pequeño fallo (bug) que afecta en el momento que queremos crear un nuevo CMS y nos aparece un mensaje de aviso Clave de seguridad inválida.

tokeninvalido

Este se error se produce cuando nos dirigimos a Preferencias -> Cms y queremos crear un nuevo CMS desde el botón que muestro a continuación.

botontoken

Los demás botones para crear un cms no dan ningún error solo el error esta localizado en este botón de creación.

Si pulsamos en el botón mencionado anteriormente nos podemos fijar que el error viene dado porque la url no esta bien formada, la url es como la siguiente.

index.php?controller=AdminCmsContent&addcms&id_cms_category=1&token=cc6166e876b1382eb4cacf3710fa2d09

Si nos fijamos el problema viene porque en la url aparece este contenido & que lo que hace es romper la url y no cargar los siguientes parametros que se pasar por GET, el simbolo correcto seria &

La url correcta deberia aparecer como esta:

index.php?controller=AdminCmsContent&addcms&id_cms_category=1&token=cc6166e876b1382eb4cacf3710fa2d09

Como no vamos a estar borrando partes de la url cada vez que aparezca este error ya que es bastante tedioso, vamos a modificar el archivo que controla este enlace para modificarlo y ponerlo correctamente.

Para ello debemos acceder a los archivos de nuestro prestashop en el servidor y dirigirnos a la ruta /controllers/admin y modificar el fichero llamado AdminCmsController.php

Una vez que tengamos este fichero abierto buscaremos el siguiente código:

'href' => self::$currentIndex.'&add'.$this->table.'&id_cms_category='.(int)$this->id_cms_category.'&token='.$this->token,

Y lo sustituimos por el siguiente:

'href' => self::$currentIndex.'&add'.$this->table.'&id_cms_category='.(int)$this->id_cms_category.'&token='.$this->token,

Una vez tengamos esto realizado guardamos el fichero, lo subimos al directorio donde lo hemos descargado y borramos la cache del Prestashop desde Parámetros Avanzados -> Rendimiento

Con este cambio ya tendríamos funcionando nuestro botón para crear CMS sin ningún problema.

 Para que los cambios surjan efecto debe tener activo dentro de Parámetros Avanzados -> Rendimiento la opción “Recompilar las plantillas cuando los archivos sean modificados”