FranciscoVillen Posted January 28, 2014 Share Posted January 28, 2014 (edited) 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 January 29, 2014 by FranciscoVillen (see edit history) Link to comment Share on other sites More sharing options...
FranciscoVillen Posted January 29, 2014 Author Share Posted January 29, 2014 (edited) 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 January 29, 2014 by FranciscoVillen (see edit history) Link to comment Share on other sites More sharing options...
nadie Posted January 29, 2014 Share Posted January 29, 2014 Como veo que el autor del tema, tiene agregada la palabra "Solucionado" en el titulo del tema, procedo a cerrar el tema. Gracias a todos por colaborar con la Comunidad de Prestashop. Link to comment Share on other sites More sharing options...
Recommended Posts