El 14 de septiembre de 2017, publicamos una versión revisada de nuestra Política de privacidad. Tu uso continuado de video2brain.com significa que aceptas este documento revisado, por lo que te recomendamos que dediques unos minutos a leerlo y comprenderlo.

PrestaShop: Módulos

Mostrar los datos del módulo creado con Prestashop

Prueba ahora LinkedIn Learning sin cargo y sin compromiso.

Prueba gratis Mostrar modalidades de suscripción
Por último, en este capítulo pasaremos ahora a aplicar en la plantilla los datos recuperados desde la base de datos. Crearemos un listado de fotografías/comentarios en la vista de detalle de los productos.

Transcripción

Vamos a aprender ahora a mostrar las fotografías que han ido subiendo los clientes. Tendré que recuperar esas fotografías dentro del 'hook' en concreto del módulo, porque es en este punto donde yo sé qué producto es el que se está visualizando y entonces puedo recuperar los datos y pasárselos a la plantilla. Voy a necesitar tres partes claramente diferenciadas. Por un lado, voy a necesitar este 'hook', por otro lado voy a necesitar la plantilla donde mostrar esos datos y voy a usar una cosa más y es esta clase 'FotoclienteObj'. Y es que yo podría en realidad hacer aquí una consulta SQL, podría hacer un "select" que me recuperase todas las fotografías para un producto concreto, meterlas en una variable y enviarlas directamente a la plantilla, pero sin embargo, si hiciese esto, me encontraría con que tengo aquí un montón de código SQL que no es muy bonito ni muy elegante. Para simplificar y para evitar problemas lo que se suele hacer es meter todo lo que tiene que ver con código relacionado con un tipo de objeto concreto, meterlo dentro de este objeto, o sea, que aquí dentro de esta clase debería de crear una nueva función que sea 'getProductFotos' y que me devuelva un listado con todos los productos. Esta función la voy a crear estática para que no necesite crear una nueva instancia de ese objeto. Como parámetro le voy a pasar el identificador de producto y aquí dentro de la función voy a añadir el SQL necesario. Voy a pedirle entonces a la base de datos que ejecute un "select", que me pida desde la base de datos correcta –aquí estamos utilizando de nuevo el "db prefix"– y donde el identificador de producto sea igual al identificador de producto que estoy enviando. Luego pido que esta función devuelva todas estas fotografías y por este lado está listo. Ahora en el 'hook' lo que tengo que hacer es, efectivamente, crear una variable '$fotos', pedirle a esta clase que ejecute su método 'getProductFotos' y le paso como parámetro el identificador. Ese identificador de producto lo voy a recuperar desde Tools Get Value y el identificador de producto. Ese identificador, en realidad, no está metido dentro del formulario, pero sin embargo sí forma parte de la página donde se está mostrando ese producto, con lo cual voy a tener acceso a él. Y luego tengo que pasar estas fotografías a Smarty. Así que voy a utilizar el "assign" Fotos para crear una variable 'Fotos' en el que pase ese "array". Es interesante aquí también pararse a mirar el que ya no estoy pasando un uno o un cero o un texto. Aquí estoy pasando un "array" con el que voy a poder trabajar dentro de la plantilla y así en esta plantilla primero creo un bucle sobre esas fotografías. Para ello, pues utilizo "foreach", dentro de este "foreach" defino sobre qué "array" se va a realizar ese bucle, 'from fotos'. Cada uno de los "items" de todo esa reiteración se va a guardar dentro de la variable 'Foto', o sea que esta variable 'Foto' es la que voy a poder utilizar para recuperar cada una de las fotos. Y ahora aquí ya simplemente añado un bloque en el que pongo una clase personalizada, que luego más adelante me servirá para aplicarle CSS, para darle un poco de formato más atractivo. Y tengo que añadir una imagen. Esta imagen, el turco va estar en su atributo SRC, pero también por otro lado vemos que con Bootstrap estoy pidiéndole que ocupe el total del ancho cuando la pantalla ser pequeña y la mitad del ancho en caso de que sea de tamaño medio en adelante. Bien, pues este SRC realmente va a ser de la foto coger el parámetro 'foto', así que utilizando Smarty lo añado. De todas formas, esto me va a devolver una ruta que será algo así como: "upload/jorge.png", por ejemplo. Y esto en realidad no es correcto, porque yo debería de poner previo a ello la base URL de donde tienen que sacarse las fotografías. Eso se consigue gracias a una variable que tiene Smarty de manera global que es el 'base_dir'. Hay bastantes más variables aparte de esta. Hay variables que sirven para devolverme pues información sobre el sitio, que puedo necesitar en cualquier parte, en cualquier plantilla. Bueno, pues una de ellas es este 'base_dir'. Y luego además de la imagen, necesito añadir comentario, así que creo un nuevo "div" que tiene la misma estructura de Bootstrap que la imagen, o sea que ocupe la mitad si hay sitio y si no que ocupe el total, y dentro de ella pues tendré que utilizar Smarty para poner que me recupere de la fotografía el comentario '$foto comment'. También este comentario tiene truco, porque realmente debería aparecer solamente en caso de que esté configurado el módulo para que se muestren los comentarios. Vemos aquí un ejemplo del código necesario para ello. Puedo utilizar también este '$enable_comment' precisamente para hacer que este objeto se muestre o no. Y en vez de utilizar estilos, puedo hacerlo mucho más fácil: puedo poner una condicional previa que pregunte si el "comment" es igual a uno y, en ese caso, que me muestre ese contenido, o sea, todo lo que hay dentro de este 'if' se va a ver, con lo cual va a aparecer o no dependiendo de si están puestos en marcha esos comentarios. Y ahora, volviendo de nuevo a la tienda, cuando recargue debería aparecer aquí la fotografía, aquí la vemos, aparece esa fotografía y aparece también el comentario. Aparece todo decolocado porque todavía no están metidos los archivos CSS, pero sin embargo el resultado final ya empieza a ser correcto, ya hemos conseguido hacer que se guarden las fotografías del cliente y hemos conseguido también que se empiecen a mostrar.

PrestaShop: Módulos

Introdúcete en la programación de módulos de Prestashop, empezando por conceptos básicos imprescindibles para crear bloques funcionales dentro de este CMS de comercio electrónico.

2:49 horas (33 Videos)
Actualmente no hay comentarios.
 
Software:
Fecha de publicación:12/10/2016

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.