Jump to content

[SOLUCIONADO] Añadir campo de imagen en un tab de la administracion de productos


FranciscoVillen

Recommended Posts

La solución a esta pregunta no es facil, pero si alguien lo ha hecho alguna vez, agradecería que lo compartiera:

 

¿Como se puede añadir un campo nuevo a un producto y que sea un input file para cargar una imagen?

 

La idea es tener un campo para cargar un imagen que estaria en otra parte de la ficha de producto a parte de las propias imagenes del producto.

 

Hasta ahora he conseguido añadir campos de texto adicionales a un producto, pero no campos de  imagenes.

 

Un saludo y gracias.

Edited by FranciscoVillen (see edit history)
Link to comment
Share on other sites

Lo he conseguido solucionar metiendo un nuevo campo en el producto que tenga el editor tinyMCE (como la descripción corta y la descripción larga), el cual te permite meter imagenes. No es la solución idonea pero funciona correctamente.

 

Para lo cual tenemos que editar /classes/product.php

 

Meterle un nuevo atributo que sea por ejemplo:

public $imagen_extra;

Y en la parte de:

public static $definition = array(

Añadirle el atributo, en este caso:

'imagen_extra' =>                 array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml')

Editar admin/themes/default/template/controllers/products/informations.tpl para añadirle el campo en la plantilla de la administración del producto, en este caso, justo despues del codigo que introduce el textarea de la descripcion larga (no se porque, si no lo pongo justo del <tr> </tr> de la descripcion larga, no se me despliega el editor tinyMCE en el nuevo campo, asi que lo he tenido que hacer asi), el codigo del nuevo campo quedaria asi:

<tr>
                <td class="col-left">
                    {include file="controllers/products/multishop/checkbox.tpl" field="description_short" type="tinymce" multilang="true"}
                    <label>{l s='Imagen de promocion:'}<br /></label>
                    <p class="product_description">({l s='Seccion para la imagen extra.'})</p>
                </td>
                <td style="padding-bottom:5px;">
                        {include file="controllers/products/textarea_lang.tpl"
                        languages=$languages
                        input_name='imagen_extra'
                        input_value=$product->imagen_extra
                        }
                    <p class="clear"></p>
                </td>
            </tr>

Y por ultimo dentro del product.tpl de nuestra plantilla poner donde queramos que aparezca el nuevo campo con el siguiente codigo por ejemplo:

<div id="imagen_extra">
    {$product->imagen_extra}
 </div>

Espero que le sea de utilidad a quien necesite hacer lo mismo,

 

NOTA: tened en cuenta que al estar modificando codigo del core de prestashop, al actualizar de versión estas modificaciones se perderian. Lo suyo es hacer un override, aunque a mi no me ha funcionado hacer override de archivos de la carpeta admin.

 

Un saludo

Edited by FranciscoVillen (see edit history)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...