Jump to content

Productos destacados aleatorios 1.6


Recommended Posts

Hola.

 

He leido todos los hilos sobre el tema.

He visto las modificaciones que hay que hacer pero yo no encuentro las lineas que hay que  modificar. Ayuda por favor

Gracias.

 

Esto es lo que tengo:

 

public_html/modules/homefeatured/homefeatured.php

 

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

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...