Modificar Titulos en Imagenes Prestashop 1.6

Por algún motivo no es posible editar los títulos de las imágenes en versiones anteriores a la 1.6.1.0, cosa que limita un aspecto Seo tan importante como es gestionar la información del título de las imágenes. Como hay muchas tiendas que están en versiones 1.6.0.14 o anteriores y no se pueden permitir actualizar (por muchos motivos) siguiendo unos pasos se puede conseguir hacerlo.

En 1.6.1.0 y adelante, se puede editar aunque no es la forma ideal, ya que tienes que ir una por una. Así que este tutorial es también válido para estas versiones ya que permite hacerlo de una forma mas amigable.

alt_imagen_1.6.1.4

Edicion de titulos en 1.6.1.4

De hecho esta “receta” se aplico hace un tiempo a una 1.6.0.9, versión que ya lleva algún tiempo por ahí con muy buenos resultados. Ahora se ha replicado de igual forma a una 1.6.0.14 y 1.6.1.4 para testear este tuto.

Posiblemente estos pasos sirvan también para las 1.5

Modificar plantilla images.tpl

Se trata de modificar la plantilla de imágenes del backoffice

Se copia el original de

adminbackoffice\themes\default\template\controllers\products\images.tpl

a la carpeta override

override\controllers\admin\templates\products\images.tpl

Buscamos en el fichero images.tpl

<td>legend</td>

y lo substituimos por la edición multilenguaje:

 

Cambiamos  la función js imageLine, tanto la función como la llamada.

La función imageLine original es algo así

Se substituye por

Luego la llamada pasa de

a ser

Es decir añadimos todo el array de leyendas de la imagen en lugar de sólo la default $image->legend[$default_language], a parte de indicarle con un nuevo parametro que estamos llamandolo desde la carga inicial de la página. Esto es para distinguir de otra llamada que se puede realizar al subir una nueva imagen.

De esta forma tenemos la parte frontal solucionada

alt_imagen_1.6

Ahora falta que el controlador haga algo con esta información que se ha editado en la parte frontal

Añadir funcionalidad al controlador AdminProductsController

Sobrescribimos el controlador AdminProductsController en override\controllers\admin\AdminProductsController.php.

Simplemente la función processUpdate() llama al padre y recoge la nueva información para modificarla directamente en base de datos.

No olvidarse de borrar cache\class_index.php para que la sobrescritura tenga efecto.

 

  • FxNefen

    En primer lugar gracias por la aportación.
    La primera parte, la de editar el archivo image.tpl lo he realizado, lo que no entiendo es la última parte la de AdminProductsController.php. Lo he copiado a la ruta que indicas pero no se que parte debo editar o si debo borrar todo el contenido del archivo, sustituyendo por el texto que indicas.
    Un saludo y gran aporte.

    • http://pelechano.es/ Enrique Gómez

      Buenas

      en overridecontrollersadmin

      creas un fichero que se llame AdminProductsController.php en blanco. Lo editas y pones el contenido que se indica.
      Borras la cacheclass_index.php para que la sobrescritura tenga efecto.

      • FxNefen

        Gracias por responder Enrique,
        He creado un archivo nuevo, en blanco, con el nombre de AdminProductsController.php y he pegado el contenido sin las etiquetas php. Copie el archivo images.tpl y pegado donde se indicaba, como la carpeta admin del override no había carpeta llamada products, se ha creado una y depositado el archivo ahí. He modificado el archivo, y donde ponía “legend” he eliminado el texto y dentro de las etiquetas “tb” he pegado el contenido que se indicaba. Mas abajo, dentro del mismo archivo, he editado la función imageLine y sustituido por el contenido dado. Tras finalizar los cambios, he borrado el archivo de la cache.

        Después de seguir todos los pasos y comprobar el efecto, NO me funciona, las imagenes no me aparecen con el título editable como aparece en la imágen de arriba y también me surge la duda de que son o a qué corresponde las casillas seleccionadas que se observa en la imagen, porque solo veo la de color azul que corresponde con la imagen que aparecerá en portada.

        Gracias por su ayuda y su tiempo. Un saludo.

        • http://pelechano.es/ Enrique Gómez

          Si no te aparecen las imagenes editables es que no esta cogiendo la sobrescritura de la plantilla del admin images.tpl. Es decir si cambias cualquier cosa (digamos que pones tu nombre) en la plantilla y no lo ves en la ficha de imagenes del producto posiblemente estés en modo no recompilar plantillas (Rendimiento) o haya algún fallo en el camino de carpetas overridecontrollersadmintemplatesproducts.

          Entiendo que estas en una versión de prestashop 1.6.0.?

          Asegurate de que el nombre de las carpetas sea correcto , pon recompilar plantillas y borra la cache de Prestashop para ver cualquier cambio por pequeño que sea.

          • Alberto López

            Buenas Enrique,
            El caso es que tengo activado eso que mencionas “Recompilar las plantillas cuando los archivos sean modificados”, el fallo debe estar sin duda en la ruta, porque la carpeta products no estaba creada (por lo menos en mi caso) en la ruta que mencionas.

            Sí actualmente estoy usando la versión 1.6.1.4, no sé si actualizando a la ..1.5 habrá algún cambio en este sentido.

            Debe haber alguna forma de declarar esa carpeta o ruta para que tengan efecto los cambios pero desconozco cómo hacerlo.

          • http://pelechano.es/ Enrique Gómez

            Hola Alberto.

            es raro con la 1.6.1.4 todo y que no es necesario este “hack” ya que te permite modificar el título de una en una debería funcionar.

            fijate en el nombre de carpetas, pero yo lo tengo así y me coje lo que hay en esa plantilla. No hace falta declarar esa carpeta en ningún sitio

          • Alberto López

            Hola Enrique,

            Igual lo tengo pero no veo los resultados.

            Como ves en la captura, los títulos de las imágenes no son editables, hay que hacerlos desde el desplegable, indicar la posición a editar e insertar el texto. Quiero actualizar y cambiar un puñado de títulos de las imágenes y hacerlo de la forma tradicional lleva su tiempo, mientras que si fueran las casillas de los titulos editables podría hacerlo más rápido (cosas de Prestashop de hacer lo más fácil un mundo).

            Seguiré haciendo pruebas, pero esta vez en un servidor local, a ver si averiguo de donde viene el problema, si de la versión de Prestashop o de algun otro sitio, quizás la plantilla que instale modificó algún comportamiento de Prestashop no sé.

            En fin, muchas gracias por tu ayuda y tu tiempo. Un saludo.

          • http://pelechano.es/ Enrique Gómez

            Si, la verdad es que es raro. si me pasas por mail un ftp y acceso BO puedo echarle un vistazo (no te cobro nada). Te debería ir ok

  • Alex

    Me ha funcionado perfectamente pero estoy haceindo unas modificaciones y tengo unos problemas
    Estoy intentando poner un segundo titulo para las imagenes y he duplicado el input del legend y he conseguido que se guarde en la base de datos en una nueva columna que he creado cuando guardo pero luego cuando se recarga la pagina no me pone el resultado que se ha guardado en la base de datos en el backoffice, es decir, en la base de datos se ha guardado bien pero el recuadro de texto no me sale el resultado.
    Si me puedes ayudar para saber como puedo solucionarlo, ya que el resultado lo guarda pero no aparece en el input y como sale vacio si vuelvo a guardar se sobreescribe el primer resultado y en la base de datos sale vacio pero es porque no me sale el resultado directamente en el input y no lo entiendo porque lo he hecho como esta en el legend.
    Muchas gracias y espero que me puedas ayudar.