flipe Posted November 26, 2013 Share Posted November 26, 2013 (edited) Estou somente traduzindo a dica postada pelo usuário burpitt em Randomize Home Featured Products Se você quer fazer com que os produtos que aparecem de forma aleatória na página principal de sua loja é só procurar o arquivo loja/modules/homefeatured/homefeatured.php e encontrar a seguinte linha: $products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10)); Então você altera a mesma para o seguinte código: $products = $category->getProducts(intval($params['cookie']->id_lang), 1, ($nb ? $nb : 10), 'date_add', 'DESC', false, true, true, $nb); Eu testei isso no Prestashop 1.5.6 e funcionou perfeitamente, na dica alguns testaram em versões anteriores e também obtiveram resultado positivo. Edited November 26, 2013 by flipe (see edit history) Link to comment Share on other sites More sharing options...
aldoscully Posted December 11, 2013 Share Posted December 11, 2013 (edited) Lembrando que essa linha pode mudar um pouco tb. Uso a versao 1.5.6.0 e a linha que modifiquei estava assim: $products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 10)); Mas substitui como foi comentado e deu certinho. Obrigado pela ajuda. Edited December 11, 2013 by aldoscully (see edit history) Link to comment Share on other sites More sharing options...
VItor Hugo Posted January 8, 2014 Share Posted January 8, 2014 Olá sei que é uma pergunta muito óbvia mas como consigo mexer nas linhas de programação??? Posso mexer por algum módulo ou preciso instalar um programa específico??? Obrigado por ajudar !!! Amador Link to comment Share on other sites More sharing options...
aldoscully Posted January 8, 2014 Share Posted January 8, 2014 Vitor Hugo, pra voce "mexer" nas linhas de programação voce tem de acessar seu site por ftp e baixar os arquivos .tpl pra sua maquina e fazer as alterações. Sugiro que sempre faça um backup do arquivo que voce for "mexer" pq se der algo errado voce pode substituir com o original. Uso o programa ftp FilleZilla para acessar o meu servidor onde hospedo meu site. Pra "mexer" nos arquivos .tpl eu uso o notepad++. Gosto mto dele pq é bem simples e eficiente. Espero ter ajudado. Link to comment Share on other sites More sharing options...
flipe Posted January 8, 2014 Author Share Posted January 8, 2014 Você pode também usar o Cpanel para fazer isso, mas é sempre bom ter cuidado, monte uma loja de teste ou faça backup de seus arquivos. Link to comment Share on other sites More sharing options...
hrq1 Posted November 21, 2014 Share Posted November 21, 2014 (edited) Na Versao 1.6 In v1.6 shop/modules/homefeatured/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: * http://opensource.org/licenses/afl-3.0.php * 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.6'; $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); Configuration::updateValue('HOME_FEATURED_CAT', (int)Context::getContext()->shop->getCategory()); Configuration::updateValue('HOME_FEATURED_RANDOMIZE', false); 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 = Tools::getValue('HOME_FEATURED_NBR'); if (!Validate::isInt($nbr) || $nbr <= 0) $errors[] = $this->l('The number of products is invalid. Please enter a positive number.'); $cat = Tools::getValue('HOME_FEATURED_CAT'); if (!Validate::isInt($cat) || $cat <= 0) $errors[] = $this->l('The category ID is invalid. Please choose an existing category ID.'); $rand = Tools::getValue('HOME_FEATURED_RANDOMIZE'); if (!Validate::isBool($rand)) $errors[] = $this->l('Invalid value for the "randomize" flag.'); if (isset($errors) && count($errors)) $output = $this->displayError(implode('<br />', $errors)); else { Configuration::updateValue('HOME_FEATURED_NBR', (int)$nbr); Configuration::updateValue('HOME_FEATURED_CAT', (int)$cat); Configuration::updateValue('HOME_FEATURED_RANDOMIZE', (bool)$rand); Tools::clearCache(Context::getContext()->smarty, $this->getTemplatePath('homefeatured.tpl')); $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((int)Configuration::get('HOME_FEATURED_CAT'), (int)Context::getContext()->language->id); $nb = (int)Configuration::get('HOME_FEATURED_NBR'); if (Configuration::get('HOME_FEATURED_RANDOMIZE')) HomeFeatured::$cache_products = $category->getProducts((int)Context::getContext()->language->id, 1, ($nb ? $nb : 8), null, null, false, true, true, ($nb ? $nb : 8)); else 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) { $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'); } 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 corresponding 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).'), ), array( 'type' => 'text', 'label' => $this->l('Category from which to pick products to be displayed'), 'name' => 'HOME_FEATURED_CAT', 'class' => 'fixed-width-xs', 'desc' => $this->l('Choose the category ID of the products that you would like to display on homepage (default: 2 for "Home").'), ), array( 'type' => 'switch', 'label' => $this->l('Randomly display featured products'), 'name' => 'HOME_FEATURED_RANDOMIZE', 'class' => 'fixed-width-xs', 'desc' => $this->l('Enable if you wish the products to be displayed randomly (default: no).'), 'values' => array( array( 'id' => 'active_on', 'value' => 1, 'label' => $this->l('Yes') ), array( 'id' => 'active_off', 'value' => 0, 'label' => $this->l('No') ) ), ), ), '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', (int)Configuration::get('HOME_FEATURED_NBR')), 'HOME_FEATURED_CAT' => Tools::getValue('HOME_FEATURED_CAT', (int)Configuration::get('HOME_FEATURED_CAT')), 'HOME_FEATURED_RANDOMIZE' => Tools::getValue('HOME_FEATURED_RANDOMIZE', (bool)Configuration::get('HOME_FEATURED_RANDOMIZE')), ); } } Edited November 21, 2014 by hrq1 (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now