Vincenzo Posted July 28, 2010 Share Posted July 28, 2010 Salve ragazzi, ho dei piccoli problemi per quanto riguarda il modulo block special...Se ho capito bene mostra i prodotti in offerta.Sono riuscito, sistemando gli hook, a sistemarlo nella parte centrale dell'homepage, e non nella colonna di destra...Ora nasce un problema, non potendolo configurare da BO il modulo, come posso far mostrare più di un prodotto in offerta?Grazie anticipatamente, ciao! Link to comment Share on other sites More sharing options...
Vincenzo Posted July 29, 2010 Author Share Posted July 29, 2010 Da quanto vedo, usa una funzione random per mostrare l'articolo..Nessuno che riesce a sistemare la cosa?edit: ci sono 4 "1" nella funzione.. Uno di quelli forse indica il numero di prodotti da mostrare in home? Link to comment Share on other sites More sharing options...
Vincenzo Posted July 29, 2010 Author Share Posted July 29, 2010 Risolto, grazie lo stesso Link to comment Share on other sites More sharing options...
GIG Posted December 18, 2010 Share Posted December 18, 2010 Ciao ragazzi io sono alle prime armi...vorrei sapere solo come posso aumentare il numero di prodotti in offertavisualizzati nella pagina iniziale ( lasciando invariata la loro posizione)PS* adesso me ne visualizza solo 1 , per gli altri devo cliccare sul pulsante sotto : visualizza tutte ele offerte.BYE BYE ;-P Link to comment Share on other sites More sharing options...
supialus Posted October 7, 2011 Share Posted October 7, 2011 Salve, Forse a qualcuno potrebbe interessare: Prestashop Versione 1.4.4.0 File: classes/Product.php Funzione: getRandomSpecial() Tip: Invece di prendere un prodotto a random, modifichiamo la prima query per individuare diversi "id" (non solo uno) dei prodotti speciali a random e poi construiamo la seconda query con un numero limitato degli "id" presi prima (nel esempio lo limitiamo a 5, la prima variabile dichiarata) public static function getRandomSpecial($id_lang, $beginning = false, $ending = false) { // Numero di prodotti RandomSpecial da visualizzare nell'homepage $Numero_Prodotti_Speciali = 5; $currentDate = date('Y-m-d H:i:s'); $ids_product = self::_getProductIdByDate((!$beginning ? $currentDate : $beginning), (!$ending ? $currentDate : $ending)); $groups = FrontController::getCurrentCustomerGroups(); $sqlGroups = (count($groups) ? 'IN ('.implode(',', $groups).')' : '= 1'); // Please keep 2 distinct queries because RAND() is an awful way to achieve this result $sql = ' SELECT p.id_product FROM `'._DB_PREFIX_.'product` p WHERE 1 AND p.`active` = 1 AND p.`id_product` IN ('.implode(', ', $ids_product).') AND p.`id_product` IN ( SELECT cp.`id_product` FROM `'._DB_PREFIX_.'category_group` cg LEFT JOIN `'._DB_PREFIX_.'category_product` cp ON (cp.`id_category` = cg.`id_category`) WHERE cg.`id_group` '.$sqlGroups.' ) ORDER BY RAND()'; $id_products = array(); if ($results = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($sql)) foreach ($results as $row) $id_products[] = $row['id_product']; $rowsql = 'SELECT p.*, pl.`description`, pl.`description_short`, pl.`link_rewrite`, pl.`meta_description`, pl.`meta_keywords`, pl.`meta_title`, pl.`name`, p.`ean13`, p.`upc`, i.`id_image`, il.`legend`, t.`rate` FROM `'._DB_PREFIX_.'product` p LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)($id_lang).') LEFT JOIN `'._DB_PREFIX_.'image` i ON (i.`id_product` = p.`id_product` AND i.`cover` = 1) LEFT JOIN `'._DB_PREFIX_.'image_lang` il ON (i.`id_image` = il.`id_image` AND il.`id_lang` = '.(int)($id_lang).') LEFT JOIN `'._DB_PREFIX_.'tax_rule` tr ON (p.`id_tax_rules_group` = tr.`id_tax_rules_group` AND tr.`id_country` = '.(int)Country::getDefaultCountryId().' AND tr.`id_state` = 0) LEFT JOIN `'._DB_PREFIX_.'tax` t ON (t.`id_tax` = tr.`id_tax`) WHERE'; // Loop per inserire gli "id" dei prodotti con il limite impostato all'inizio della funzione $i = 0; foreach ($id_products as $id_product) { $rowsql .= " p.id_product = ".(int)$id_product." ||"; if (++$i == $Numero_Prodotti_Speciali) break; } // Togliamo gli ultimi due caratteri alla fine della stringa = || $rowsql = substr($rowsql, 0, -2); $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS($rowsql); if (!$result) return false; // Ritorniamo un array di prodotti con le sue proprietà, invece di un solo prodotto return Product::getProductsProperties($id_lang, $result); } File: modules/blockspecials.php Funzione: hookRightColumn() Tip: cambiata la variabile "special" per "specials" public function hookRightColumn($params) { if (Configuration::get('PS_CATALOG_MODE')) return ; global $smarty; if (!$specials = Product::getRandomSpecial((int)($params['cookie']->id_lang)) AND !Configuration::get('PS_BLOCK_SPECIALS_DISPLAY')) return; $smarty->assign(array( 'specials' => $specials, 'mediumSize' => Image::getSize('medium') )); return $this->display(__FILE__, 'blockspecials.tpl'); } File: themes/"yourtheme"/modules/blockspecials/blockspecials.tpl Funzione: getRandomSpecial() Tip: usiamo un foreach per percorrere i prodotti speciali e stamparli <!-- MODULE Block specials MODIFICATO--> <div id="special_block_right" class="block products_block exclusive blockspecials"> <h4><a href="{$link->getPageLink('prices-drop.php')}" title="{l s='Specials' mod='blockspecials'}">{l s='Specials' mod='blockspecials'}</a></h4> <div class="block_content"> {if $specials} <div id="forspecial"> {foreach from=$specials item=special name=products} <!-- nuovo --> <a href="{$special.link}"> <ul class="products"> <li class="product_image"> <img src="{$link->getImageLink($special.link_rewrite, $special.id_image, 'medium')}" alt="{$special.legend|escape:html:'UTF-8'}" height="{$mediumSize.height}" width="{$mediumSize.width}" title="{$special.name|escape:html:'UTF-8'}" /> </li> <li> <h5>{$special.name|escape:html:'UTF-8'}</h5> <span class="price-discount">{displayWtPrice p=$special.price_without_reduction}</span> {if $special.specific_prices} {assign var='specific_prices' value=$special.specific_prices} {if $specific_prices.reduction_type == 'percentage' && ($specific_prices.from == $specific_prices.to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $specific_prices.to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $specific_prices.from))} <span class="reduction">(-{$specific_prices.reduction*100|floatval}%)</span> {/if} {/if} <span class="price">{if !$priceDisplay}{displayWtPrice p=$special.price}{else}{displayWtPrice p=$special.price_tax_exc}{/if}</span> </li> </ul> </a> {/foreach} <!-- nuovo --> <p> <a href="{$link->getPageLink('prices-drop.php')}" title="{l s='All specials' mod='blockspecials'}" class="button_large">{l s='All specials' mod='blockspecials'}</a> </p> {else} <p>{l s='No specials at this time' mod='blockspecials'}</p></div> {/if} </div> </div> <!-- /MODULE Block specials MODIFICATO--> Link to comment Share on other sites More sharing options...
GIG Posted October 7, 2011 Share Posted October 7, 2011 Puoi mettere una immagine del risultato finale che hai ottenuto ? Saluti. GIG. Link to comment Share on other sites More sharing options...
supialus Posted October 10, 2011 Share Posted October 10, 2011 Ciao GIG, Ecco l'immagine. Come si vede i prodotti speciali sono nella colonna destra: Saluti. Supialus Link to comment Share on other sites More sharing options...
3o33y Posted October 14, 2011 Share Posted October 14, 2011 Ciao Supialus, forse puoi aiutarmi .. sto utilizzando prestashop con il suo tema base, e la lista dei prodotti mi viene visualizzata in verticale. Come posso fare per fare visualizzare la lista prodotti uno di fianco all'altro e poi a capo come nell'immagine che hai postato tu? Grazie anticipatamente Ciao Link to comment Share on other sites More sharing options...
diana13 Posted November 4, 2011 Share Posted November 4, 2011 Thanks a lot for your post. I used it in 1.4.5.1 and to display corectly the products, File: themes/"yourtheme"/modules/blockspecials/blockspecials.tpl should be: <!-- MODULE Block specials --> <div id="special_block_right" class="block products_block exclusive blockspecials"> <h4><a href="{$link->getPageLink('prices-drop.php')}" title="{l s='Promotii' mod='blockspecials'}">{l s='Promotii' mod='blockspecials'}</a></h4> <div class="block_content"> {if $specials} <ul class="products"> {foreach from=$specials item=special name=products} <li class="product_image"> <a href="{$special.link}"><img src="{$link->getImageLink($special.link_rewrite, $special.id_image, 'medium')}" alt="{$special.legend|escape:html:'UTF-8'}" height="{$mediumSize.height}" width="{$mediumSize.width}" title="{$special.name|escape:html:'UTF-8'}" /></a> </li> <li> <h5><a href="{$special.link}" title="{$special.name|escape:html:'UTF-8'}">{$special.name|escape:html:'UTF-8'}</a></h5> <span class="price-discount">{if !$priceDisplay}{displayWtPrice p=$special.price_without_reduction}{else}{displayWtPrice p=$priceWithoutReduction_tax_excl}{/if}</span> {if $special.specific_prices} {assign var='specific_prices' value=$special.specific_prices} {if $specific_prices.reduction_type == 'percentage' && ($specific_prices.from == $specific_prices.to OR ($smarty.now|date_format:'%Y-%m-%d %H:%M:%S' <= $specific_prices.to && $smarty.now|date_format:'%Y-%m-%d %H:%M:%S' >= $specific_prices.from))} <span class="reduction">(-{$specific_prices.reduction*100|floatval}%)</span> {/if} {/if} <span class="price">{if !$priceDisplay}{displayWtPrice p=$special.price}{else}{displayWtPrice p=$special.price_tax_exc}{/if}</span> </li> <div style="clear:both;"></div> {/foreach} </ul> <p> <a href="{$link->getPageLink('prices-drop.php')}" title="{l s='All specials' mod='blockspecials'}" class="button_large">{l s='All specials' mod='blockspecials'}</a> </p> {else} <p>{l s='No specials at this time' mod='blockspecials'}</p> {/if} </div> </div> <!-- /MODULE Block specials --> Link to comment Share on other sites More sharing options...
tatygrassini Posted December 17, 2011 Share Posted December 17, 2011 Any chance to add short description as well?? I tried copy/paste the homefeatured.tpl snippet {$product.description_short} and is not working, can't figure it out... [sOLVED] http://www.prestasho...945#entry708945 ------------------------------------------------------------------------------------------------- Now, how to place an Add to Cart button for each product within this Specials loop?? Link to comment Share on other sites More sharing options...
GIG Posted December 19, 2011 Share Posted December 19, 2011 Ciao a tutti, ho fatto alcune prove ma non riesco ad ottenere il rislutato voluto, probabilmente sbaglio da qualche parte nell'inserire il codice da voi gentilmenete fornito. Potete mettere in allegato i vostri files gia' modificati ? product.php blockspecials.php blockspecials.tpl PS. la mia ver. di prestashop è 1.4.4.1 Ciao GIG. Link to comment Share on other sites More sharing options...
Flaunt Posted February 8, 2012 Share Posted February 8, 2012 Been looking for something like this. Worked brilliantly and first time! Many thanks, supialus Link to comment Share on other sites More sharing options...
varcoco Posted June 22, 2012 Share Posted June 22, 2012 Ragazzi qualcuno sa dirmi come fare nella versione prestashop 1.4.8 per mettere piu immagini nel blockspecials e anche fare in modo che siano in movimento? Vi ringrazio anticipatamente... Link to comment Share on other sites More sharing options...
innovaforniture Posted September 4, 2012 Share Posted September 4, 2012 Ciao a tutti, anche io cerco delucidazioni su come fare apparire più prodotti nel block specials in prestashop 1.4.9 Ho cercato di seguire i parametri su indicati ma non succede nulla. Spero in un vostro aiuto Grazie 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