Jump to content

"productos destacados" que se muestren alternativamente - SOLUCIONADO :)


Valwindcycles

Recommended Posts

Buenas :)

 

Tengo el módulo de "productos destacados" modificando por "nadie" para que muestre mas productos y que estos sean diferentes cada vez que entras en la tienda o en el inicio de la tienda.... 

 

pero desde hace unas semanas ya no van rotando esas imágenes...

 

alguna solución ? mil gracias por adelantado.. cualquier ayuda será bienvenida  :)

 

un saludo. Jorge

 

mi tienda:  http://valwindcycles.es

Edited by Valwindcycles (see edit history)
Link to comment
Share on other sites

Antes habia que modificar el código, creo que ahora en la ultima versión del modulo ese dentro de chu configurachion tiene una opción para mostrarlos aleatorios.

Ah, si no usas la ultima versión del módulo ni la ultima versión de Prestashop.

 

¿El file /modules/homefeatured/homefeatured.php la modificación que dices que tenias antes, como por ejemplo esta modificación: http://victor-rodenas.com/2013/01/29/guia-mostrar-los-productos-destacados-de-forma-aleatoria-en-prestashop-1-5/ que he visto en google y que también esta en los foros?

 

Pero si usas la ultima versión del modulo y de presta el asunto es que creo que ya no es necesario cambiar nada..

  • Like 1
Link to comment
Share on other sites

Mil gracias Rafael !!!!!

 

Efectivamente no tengo la ultima versión de presta...  hace unos meses pague por la actualización la verdad que bastante y por miedo a que no funcione correctamente los modelos externos y la plantilla no suelo actualizar a menudo..

 

Acabo de hacer la modificación que publico Nadie en su blog... y es muy raro pero se me queda la tienda en blanco....

 

simplemente añadiendo   , 'date_add', 'DESC', false, true, true, $nb);

 

es raro no ? el modulo lo tenia modificado por Nadie... puede ser que haciendo eso altere otras modificaciones.....

Link to comment
Share on other sites

Mil gracias Rafael !!!!!

 

Efectivamente no tengo la ultima versión de presta...  hace unos meses pague por la actualización la verdad que bastante y por miedo a que no funcione correctamente los modelos externos y la plantilla no suelo actualizar a menudo..

 

Acabo de hacer la modificación que publico Nadie en su blog... y es muy raro pero se me queda la tienda en blanco....

 

simplemente añadiendo   , 'date_add', 'DESC', false, true, true, $nb);

 

es raro no ? el modulo lo tenia modificado por Nadie... puede ser que haciendo eso altere otras modificaciones.....

 

Pega el código del módulo tuyo sin modificar en el foro que veamos..

  • Like 1
Link to comment
Share on other sites

el homefeatured.php :

 

<?php

/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2014 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/
 
if (!defined('_PS_VERSION_'))
exit;
 
class HomeFeatured extends Module
{
protected static $cache_products;
 
public function __construct()
{
$this->name = 'homefeatured';
$this->tab = 'front_office_features';
$this->version = '1.4';
$this->author = 'PrestaShop';
$this->need_instance = 0;
 
$this->bootstrap = true;
parent::__construct();
 
$this->displayName = $this->l('Featured products on the homepage');
$this->description = $this->l('Displays featured products in the central column of your homepage.');
}
 
public function install()
{
$this->_clearCache('*');
Configuration::updateValue('HOME_FEATURED_NBR', 8);
 
if (!parent::install()
|| !$this->registerHook('header')
|| !$this->registerHook('addproduct')
|| !$this->registerHook('updateproduct')
|| !$this->registerHook('deleteproduct')
|| !$this->registerHook('categoryUpdate')
|| !$this->registerHook('displayHomeTab')
|| !$this->registerHook('displayHomeTabContent')
)
return false;
 
return true;
}
 
public function uninstall()
{
$this->_clearCache('*');
 
return parent::uninstall();
}
 
public function getContent()
{
$output = '';
$errors = array();
if (Tools::isSubmit('submitHomeFeatured'))
{
$nbr = (int)Tools::getValue('HOME_FEATURED_NBR');
if (!$nbr || $nbr <= 0 || !Validate::isInt($nbr))
$errors[] = $this->l('An invalid number of products has been specified.');
else
Configuration::updateValue('HOME_FEATURED_NBR', (int)$nbr);
if (isset($errors) && count($errors))
$output .= $this->displayError(implode('<br />', $errors));
else
$output .= $this->displayConfirmation($this->l('Your settings have been updated.'));
}
 
return $output.$this->renderForm();
}
 
public function hookDisplayHeader($params)
{
$this->hookHeader($params);
}
 
public function hookHeader($params)
{
if (isset($this->context->controller->php_self) && $this->context->controller->php_self == 'index')
$this->context->controller->addCSS(_THEME_CSS_DIR_.'product_list.css');
$this->context->controller->addCSS(($this->_path).'homefeatured.css', 'all');
}
 
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;
}
 
public function hookDisplayHomeTab($params)
{
if (!$this->isCached('tab.tpl', $this->getCacheId('homefeatured-tab')))
$this->_cacheProducts();
 
return $this->display(__FILE__, 'tab.tpl', $this->getCacheId('homefeatured-tab'));
}
 
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());
}
 
public function hookDisplayHomeTabContent($params)
{
return $this->hookDisplayHome($params);
}
 
public function hookAddProduct($params)
{
$this->_clearCache('*');
}
 
public function hookUpdateProduct($params)
{
$this->_clearCache('*');
}
 
public function hookDeleteProduct($params)
{
$this->_clearCache('*');
}
 
public function hookCategoryUpdate($params)
{
$this->_clearCache('*');
}
 
public function _clearCache($template, $cache_id = NULL, $compile_id = NULL)
{
parent::_clearCache('homefeatured.tpl');
parent::_clearCache('tab.tpl', 'homefeatured-tab');
}
 
public function renderForm()
{
$fields_form = array(
'form' => array(
'legend' => array(
'title' => $this->l('Settings'),
'icon' => 'icon-cogs'
),
'description' => $this->l('To add products to your homepage, simply add them to the root product category (default: "Home").'),
'input' => array(
array(
'type' => 'text',
'label' => $this->l('Number of products to be displayed'),
'name' => 'HOME_FEATURED_NBR',
'class' => 'fixed-width-xs',
'desc' => $this->l('Set the number of products that you would like to display on homepage (default: 8).'),
),
),
'submit' => array(
'title' => $this->l('Save'),
)
),
);
 
$helper = new HelperForm();
$helper->show_toolbar = false;
$helper->table = $this->table;
$lang = new Language((int)Configuration::get('PS_LANG_DEFAULT'));
$helper->default_form_language = $lang->id;
$helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0;
$this->fields_form = array();
$helper->id = (int)Tools::getValue('id_carrier');
$helper->identifier = $this->identifier;
$helper->submit_action = 'submitHomeFeatured';
$helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false).'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name;
$helper->token = Tools::getAdminTokenLite('AdminModules');
$helper->tpl_vars = array(
'fields_value' => $this->getConfigFieldsValues(),
'languages' => $this->context->controller->getLanguages(),
'id_language' => $this->context->language->id
);
 
return $helper->generateForm(array($fields_form));
}
 
public function getConfigFieldsValues()
{
return array(
'HOME_FEATURED_NBR' => Tools::getValue('HOME_FEATURED_NBR', Configuration::get('HOME_FEATURED_NBR')),
);
}
}
Link to comment
Share on other sites

 

el homefeatured.php :

 

<?php

/*
* 2007-2014 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author PrestaShop SA <[email protected]>
*  @copyright  2007-2014 PrestaShop SA
*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*/
 
if (!defined('_PS_VERSION_'))
exit;
 
class HomeFeatured extends Module
{
protected static $cache_products;
 
public function __construct()
{
$this->name = 'homefeatured';
$this->tab = 'front_office_features';
$this->version = '1.4';
$this->author = 'PrestaShop';
$this->need_instance = 0;
 
$this->bootstrap = true;
parent::__construct();
 
$this->displayName = $this->l('Featured products on the homepage');
$this->description = $this->l('Displays featured products in the central column of your homepage.');
}
 
public function install()
{
$this->_clearCache('*');
Configuration::updateValue('HOME_FEATURED_NBR', 8);
 
if (!parent::install()
|| !$this->registerHook('header')
|| !$this->registerHook('addproduct')
|| !$this->registerHook('updateproduct')
|| !$this->registerHook('deleteproduct')
|| !$this->registerHook('categoryUpdate')
|| !$this->registerHook('displayHomeTab')
|| !$this->registerHook('displayHomeTabContent')
)
return false;
 
return true;
}
 
public function uninstall()
{
$this->_clearCache('*');
 
return parent::uninstall();
}
 
public function getContent()
{
$output = '';
$errors = array();
if (Tools::isSubmit('submitHomeFeatured'))
{
$nbr = (int)Tools::getValue('HOME_FEATURED_NBR');
if (!$nbr || $nbr <= 0 || !Validate::isInt($nbr))
$errors[] = $this->l('An invalid number of products has been specified.');
else
Configuration::updateValue('HOME_FEATURED_NBR', (int)$nbr);
if (isset($errors) && count($errors))
$output .= $this->displayError(implode('<br />', $errors));
else
$output .= $this->displayConfirmation($this->l('Your settings have been updated.'));
}
 
return $output.$this->renderForm();
}
 
public function hookDisplayHeader($params)
{
$this->hookHeader($params);
}
 
public function hookHeader($params)
{
if (isset($this->context->controller->php_self) && $this->context->controller->php_self == 'index')
$this->context->controller->addCSS(_THEME_CSS_DIR_.'product_list.css');
$this->context->controller->addCSS(($this->_path).'homefeatured.css', 'all');
}
 
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;
}
 
public function hookDisplayHomeTab($params)
{
if (!$this->isCached('tab.tpl', $this->getCacheId('homefeatured-tab')))
$this->_cacheProducts();
 
return $this->display(__FILE__, 'tab.tpl', $this->getCacheId('homefeatured-tab'));
}
 
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());
}
 
public function hookDisplayHomeTabContent($params)
{
return $this->hookDisplayHome($params);
}
 
public function hookAddProduct($params)
{
$this->_clearCache('*');
}
 
public function hookUpdateProduct($params)
{
$this->_clearCache('*');
}
 
public function hookDeleteProduct($params)
{
$this->_clearCache('*');
}
 
public function hookCategoryUpdate($params)
{
$this->_clearCache('*');
}
 
public function _clearCache($template, $cache_id = NULL, $compile_id = NULL)
{
parent::_clearCache('homefeatured.tpl');
parent::_clearCache('tab.tpl', 'homefeatured-tab');
}
 
public function renderForm()
{
$fields_form = array(
'form' => array(
'legend' => array(
'title' => $this->l('Settings'),
'icon' => 'icon-cogs'
),
'description' => $this->l('To add products to your homepage, simply add them to the root product category (default: "Home").'),
'input' => array(
array(
'type' => 'text',
'label' => $this->l('Number of products to be displayed'),
'name' => 'HOME_FEATURED_NBR',
'class' => 'fixed-width-xs',
'desc' => $this->l('Set the number of products that you would like to display on homepage (default: 8).'),
),
),
'submit' => array(
'title' => $this->l('Save'),
)
),
);
 
$helper = new HelperForm();
$helper->show_toolbar = false;
$helper->table = $this->table;
$lang = new Language((int)Configuration::get('PS_LANG_DEFAULT'));
$helper->default_form_language = $lang->id;
$helper->allow_employee_form_lang = Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') ? Configuration::get('PS_BO_ALLOW_EMPLOYEE_FORM_LANG') : 0;
$this->fields_form = array();
$helper->id = (int)Tools::getValue('id_carrier');
$helper->identifier = $this->identifier;
$helper->submit_action = 'submitHomeFeatured';
$helper->currentIndex = $this->context->link->getAdminLink('AdminModules', false).'&configure='.$this->name.'&tab_module='.$this->tab.'&module_name='.$this->name;
$helper->token = Tools::getAdminTokenLite('AdminModules');
$helper->tpl_vars = array(
'fields_value' => $this->getConfigFieldsValues(),
'languages' => $this->context->controller->getLanguages(),
'id_language' => $this->context->language->id
);
 
return $helper->generateForm(array($fields_form));
}
 
public function getConfigFieldsValues()
{
return array(
'HOME_FEATURED_NBR' => Tools::getValue('HOME_FEATURED_NBR', Configuration::get('HOME_FEATURED_NBR')),
);
}
}

 

 

Esa es una version nueva del modulo, no la mas actual, pero tampoco la que llevaba antes prestashop, si actualizas el modulo ya lleva lo del random, pero bueno, como en tu caso no lo lleva, prueba esto: 

 

http://www.prestashop.com/forums/topic/316661-random-home-featured-in-v16/page-3?do=findComment&comment=1811554

  • Like 1
Link to comment
Share on other sites

Rafael !!!!!!! ahora si... con la modificación que me propones en tu último post perfectooooooo

 

MIL GRACIASSSSSSS !!!!!!!  :)

Un honor,

 

Creo que ahora tienes que añadir la palabra "Solucionado": http://www.prestashop.com/forums/topic/269515-solucionado-%C2%BFcomo-poner-la-palabra-solucionado-en-el-titulo-del-tema/ al título del tema.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...