AlexM4 Posted March 10, 2016 Share Posted March 10, 2016 (edited) Buenas tardes a todos, He estado personalizando la página de mi web para tenerla más al estilo de la empresa y he visto que los empleados pueden tener una imagen de perfil, pero para que aparezca tienen que estar registrados a PrestaShop.com. Mi versión de PrestaShop es la 1.6.1.0 Hay alguna manera de modificar el codigo de Prestashop (backoffice) para que se puedan subir una imagen para cada empleado, es decir, que en el mismo formulario donde se crea un empleado se pueda subir una imagen para su perfil y no se tengan que registrar en la web de PrestaShop para tener su foto Muchas grácias por toda la ayuda que me podais ofrecer. Edited March 29, 2016 by AlexM4 (see edit history) Link to comment Share on other sites More sharing options...
AlexM4 Posted March 17, 2016 Author Share Posted March 17, 2016 He estado haciendo pruebas con el codigo y aunque no es del todo lo que queria me sirve y hace lo que queria pero para cada empleado se tiene que modificar el codigo para añadir las condiciones para que coja la imagen que nosotros queramos para ese empleado. Por si ha alguien le interesa, voy a poner lo que he hecho y en algun momento me gustaria hacer lo que ponia en el primer mensaje. Versión de Prestashop usada: 1.6.1.0. Para hacerlo se tiene que modificar el archivo employee.php de la carpeta /clases. En ese archivo he modificado la función getImage. Codigo original: public function getImage() { if (!Validate::isLoadedObject($this)) return Tools::getAdminImageUrl('prestashop-avatar.png'); return Tools::getShopProtocol().'profile.prestashop.com/'.urlencode($this->email).'.jpg'; } Lo que he hecho ha sido comentar esas linias y modificarlas por estas. public function getImage() { /*Codigo comentado*/ /*if (!Validate::isLoadedObject($this)) return Tools::getAdminImageUrl('prestashop-avatar.png'); return Tools::getShopProtocol().'profile.prestashop.com/'.urlencode($this->email).'.jpg';*/ /*Modificación*/ if ( $this->id == 1) { return Tools::getAdminImageUrl('avatar_empleados/a.png'); } elseif ($this->id == 2) { return Tools::getAdminImageUrl('avatar_empleados/b.jpg'); } elseif ($this->id == 3) { return Tools::getAdminImageUrl('avatar_empleados/c.gif'); } /*Para más empleados solo se necesita copiar y pegar la ultima linia elseif{.....} y cambiarle el id de empleado, el nombre de la imagen y extension que tenga la imagen*/ } Para tenerlo más ordenado, he creado una carpeta en el directorio de imagenes /img llamada avatar_empleados, asi sera más sencillo saber donde se tiene que subir las imagenes de los avatares. De esta forma no se tiene porque estar registrado en Prestashop.com y se puede tener una imagen para tu avatar. Espero que les sirva y espero poder mejorarlo para no tener que modificar cada vez el codigo cuando se tiene un empleado nuevo pero también es verdad que no hay el mismo numero de empleados que de clientes Link to comment Share on other sites More sharing options...
LuiggiBerto Posted July 1, 2016 Share Posted July 1, 2016 Buenas tardes a todos, He estado personalizando la página de mi web para tenerla más al estilo de la empresa y he visto que los empleados pueden tener una imagen de perfil, pero para que aparezca tienen que estar registrados a PrestaShop.com. Mi versión de PrestaShop es la 1.6.1.0 Hay alguna manera de modificar el codigo de Prestashop (backoffice) para que se puedan subir una imagen para cada empleado, es decir, que en el mismo formulario donde se crea un empleado se pueda subir una imagen para su perfil y no se tengan que registrar en la web de PrestaShop para tener su foto Muchas grácias por toda la ayuda que me podais ofrecer. Hola: Es mi primera aportación; al ver que no hay temas al respecto, te cuento lo que hice. 1. Siguiendo la ruta dentro de mi tienda: tienda/controllers/admin/AdminEmployeesController.php 2. Abrí el archivo: "AdminEmployeesController.php" 3. Comenté el array original siguiente: /*inicia comentario de original array( 'type' => 'html', 'name' => 'employee_avatar', 'html_content' => '<div id="employee-thumbnail"><a href="http://www.prestashop.com/forums/index.php?app=core&module=usercp" target="_blank" style="background-image:url('.$obj->getImage().')"></a></div> <div class="alert alert-info">'.sprintf($this->l('Your avatar in PrestaShop 1.6.x is your profile picture on %1$s. To change your avatar, log in to PrestaShop.com with your email %2$s and follow the on-screen instructions.'), '<a href="http://www.prestashop.com/forums/index.php?app=core&module=usercp" class="alert-link" target="_blank">PrestaShop.com</a>', $obj->email).'</div>', ), termina comentario de original*/ 4. Lo dupliqué abajo y modificándolo para que quede el siguiente: array( 'type' => 'html', 'name' => 'employee_avatar', 'html_content' => '<div><img src="../img/employee100x100.png"></div>', ), array( 'type' => 'text', 'class'=> 'fixed-width-xxl', 'prefix' => '<i class="icon-envelope-o"></i>', 'label' => $this->l('Email address'), 'name' => 'email', 'required' => true, 'autocomplete' => false ), Por lo que suplanté el contenido únicamente de 'html_content': 'html_content' => '<div><img src="../img/employee100x100.png"></div>', En donde el nombre: "employee100x100.png" es el que tendrás que cambiar por el nombre de tu archivo y su respectiva extensión... que en mi caso es de 100x100px en .png ¡Y listo! *El único detalle es que la misma imagen se repetirá para todos los empleados. Si encuentras alguna manera de personalizar a modo de colocar una imagen distinta para cada empleado, por favor no dudes en comentarnos para enriquecer el tema.* Saludos. Link to comment Share on other sites More sharing options...
ventura Posted July 1, 2016 Share Posted July 1, 2016 Tambien se puede hacer como habeis comentado subiendo las imagenes de cada empleado a la carpeta admin . Se puede hacer tambien mediante subida de la imagen desde el backoffice pero haria falta ya crear registros en la base de datos 'html_content' => '<div class="block"><img src="'.$this->context->link->getMediaLink(_PS_IMG_.'admin/employee-'.$this->context->employee->id.'.jpg') .'"width="100" height="100"></div>' nombrando las imagenes segun el id del empleado asi por ejemplo employee-1.jpg Y para que se muestre en el header del backoffice, en adminxxx\themes\default\template\header.tpl cambiamos <img class="imgm img-thumbnail" alt="" src="{$employee->getImage()}" width="32" height="32" /> por <img class="imgm img-thumbnail" alt="" src="../img/admin/employee-{$employee->id}.jpg" width="96" height="96" /> y lo mismo un poco mas abajo en <img class="imgm img-thumbnail" alt="" src="{$employee->getImage()}" width="96" height="96" /> por <img class="imgm img-thumbnail" alt="" src="../img/admin/employee-{$employee->id}.jpg" width="32" height="32" /> 1 Link to comment Share on other sites More sharing options...
Recommended Posts