Este sitio usa cookies, propias y de terceros.
Si se continúa con nosotros entendemos que se acepta el uso de cookies.

[Aporte] Productos Destacalos aleatorios en prestashop 1.6

Tema en 'Recursos y aportes gratuitos para Prestashop' iniciado por Josraso, 5 Nov 2014.

  1. Josraso

    Josraso Lo cortes no quita lo valiente. Miembro del equipo

    473
    17
    18
    Para mostrar los productos destacados de forma aleatoria en prestashop 1.6 hay que hacer el siguiente cambio.
    Nos vamos a modulos/homefeatures y editamos el fichero homefeatured.php


    Buscamos el siguiente codigo

    Insertar CODE, HTML o PHP:
    public function hookDisplayHome($params)
    {
    if (!$this->isCached('homefeatured.tpl', $this->getCacheId()))
    {
    $this->_cacheProducts();
    $this->smarty->assign(
    array(
    'products' => HomeFeatured::$cache_products,
    'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
    'homeSize' => Image::getSize(ImageType::getFormatedName('home')),
    )
    );
    }
    return $this->display(__FILE__, 'homefeatured.tpl', $this->getCacheId());
    }

    Y lo sustituimos por este


    Insertar CODE, HTML o PHP:
    
    public function hookDisplayHome($params){
    $category = new Category(Context::getContext()->shop->getCategory(), (int)Context::getContext()->language->id);
    $nb = (int)(Configuration::get('HOME_FEATURED_NBR'));
    /*$products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 10));*/
    $products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 10), 'date_add', 'DESC', false, true, true, $nb);
    shuffle($products);
    $this->smarty->assign(array(
    'products' => $products,
    'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'),
    'homeSize' => Image::getSize('home_default'),
    ));
    return $this->display(__FILE__, 'homefeatured.tpl');
    }
    
     
  2. wikiprestashop

    wikiprestashop Administrator Miembro del equipo

    203
    0
    16
    Por cierto, creo que el modulo actual ya lleva la función de aleatorio. (Al menos eso veo en la configuración del modulo.)
     
  3. catoku

    catoku Iniciado en Prestashop

    61
    0
    0
    En mi caso, como no usaba la ultima versión del módulo, pero si usaba una versión mas actual del módulo, tuve que cambiar este código:

    Insertar CODE, HTML o PHP:
    public function _cacheProducts()
    	{
    		if (!isset(HomeFeatured::$cache_products))
    		{
    			$category = new Category(Context::getContext()->shop->getCategory(), (int)Context::getContext()->language->id);
    			$nb = (int)Configuration::get('HOME_FEATURED_NBR');
    			HomeFeatured::$cache_products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 8), 'position');
    		}
    
    		if (HomeFeatured::$cache_products === false || empty(HomeFeatured::$cache_products))
    			return false;
    	}
    por

    Insertar CODE, HTML o PHP:
    public function _cacheProducts()
    	{
    		if (!isset(HomeFeatured::$cache_products))
    		{
    			$category = new Category(Context::getContext()->shop->getCategory(), (int)Context::getContext()->language->id);
    			$nb = (int)Configuration::get('HOME_FEATURED_NBR');
    			/*HomeFeatured::$cache_products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 8), 'position');*/
    			HomeFeatured::$cache_products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 10), NULL,NULL,false,true,true,($nb ? $nb : 100));
    		}
    
    		if (HomeFeatured::$cache_products === false || empty(HomeFeatured::$cache_products))
    			return false;
    	}
     

Compartir esta página