var elementosPagina = 20; var ordenProductos = 'nombre'; var minimoPrecio=0; $(function() { generar_productos(1, elementosPagina, ordenProductos,minimoPrecio,maximoPrecio); generar_subcategorias(); generar_recientes(); generar_nube(); var $sliderRange = $("#rango_precio"), $sliderAmount = $("#monto"); $sliderRange.slider({ range: true, min: 0, step: 50, max: maximoPrecio, values: [0, maximoPrecio], slide: function(event, ui) { $sliderAmount.val("$" + ui.values[0] + " - $" + ui.values[1]); minimoPrecio=ui.values[0]; maximoPrecio=ui.values[1]; } }); $sliderAmount.val("$" + $sliderRange.slider("values", 0) + " - $" + $sliderRange.slider("values", 1)); //Reconoce el cambio de elementos por pagina $("#select_cantidad").change(function() { elementosPagina = parseInt(this.value); generar_productos(1, elementosPagina, ordenProductos,minimoPrecio,maximoPrecio); }); //Reconoce el cambio de elementos por orden $("#orden_productos").change(function() { ordenProductos = this.value; generar_productos(1, elementosPagina, ordenProductos,minimoPrecio,maximoPrecio); }); }); //Función que genera la nube de etiquetas function generar_nube(){ $.getJSON("functions/categorias/json_nube_etiquetas?noshow&slug="+slug, function(result) { result.map(function(categoria){ $("#nube_etiquetas").append(construirNube(categoria.nombreCategoria,categoria.slug)); }); }); } //Función que retorna el código de una nube de etiqueta function construirNube(nombreCategoria,slug){ return ` ${nombreCategoria} `; } //Función que genera las subcategorias function generar_subcategorias(){ $.getJSON("functions/categorias/json_subcategorias?noshow&slug="+slug, function(result) { //Recorre todas las subcategorias result.subCategorias.map(function(subCategoria) { $("#divisionSubCategorias").show(); $("#sub_categorias").append(construirSubCategoria(subCategoria.nombre_sub_categoria,subCategoria.slug,subCategoria.cantidadProductos)); }); }); } //función que retorna una subcategoria function construirSubCategoria(nombre,slug,cantidadProductos){ return `
  • ${nombre}(${cantidadProductos})
  • ` } //Función que genera los elementos recientes function generar_recientes(){ $.getJSON("functions/categorias/json_recientes?noshow&slug="+slug, function(result) { //Recorre todas los productos var ingreso=false; result.productos.map(function(producto) { ingreso=true; $("#productos_recientes").append(construir_recientes(producto.nombreProducto,producto.slug,producto.precio,producto.urlImagen)); }); if(!ingreso){ $("#productos_recientes").append(''); } }); } //Función que construye un producto reciente function construir_recientes(nombre,slug,precio,urlImagen){ return `
    ${nombre}
    $${precio}
    `; } //Función que se encarga de generar los productos function generar_productos(pagina, paginacion, orden,minimo,maximo) { $("#listado_de_productos").html(""); //Obtiene todo el JSON $.getJSON("functions/categorias/json_productos?noshow&slug=" + slug + "&pagina=" + pagina + "&paginacion=" + paginacion + "&orden=" + orden+"&minimo="+minimo+"&maximo="+maximo, function(result) { //Genera la paginación $("#paginacion_productos").html(generar_paginacion(result.paginas, paginacion, pagina, orden, result.cantidadProductos,minimo,maximo)); //Recorre todos los productos contador=1; result.productos.map(function(producto) { $("#listado_de_productos").append(construir_producto(producto.nombreProducto, producto.precio, producto.slug, producto.urlImagen)); if(contador==4){ $("#listado_de_productos").append(`
    `); contador=1; }else{ contador++; } }); $('html, body').animate({scrollTop: $("#seccionFiltros")}, "slow"); $('.lazy').Lazy(); }); } //Función que retorna un producto construido function construir_producto(nombre, precio, slug, imagen) { return `
    $${precio}
    `; } //función que genera la paginación function generar_paginacion(cantidadPaginas, paginacion, paginaActual, orden, cantidadProductos,minimo,maximo) { var cadenaPaginacion = ''; productoInicial = (((paginaActual - 1) * paginacion) + 1); productoFinal = (paginaActual == cantidadPaginas) ? cantidadProductos : ((paginaActual - 1) * paginacion + paginacion); cadenaPaginacion += '
    ' + '

    Mostrando ' + productoInicial + ' : ' + productoFinal + ' de ' + cantidadProductos + ' productos

    '; return cadenaPaginacion; } //Función que aplica el filtro de precio function aplicarFiltroPrecio(){ generar_productos(1, elementosPagina, ordenProductos,minimoPrecio,maximoPrecio); }