Mushr00m Posted March 11, 2011 Share Posted March 11, 2011 Bonjour à tous,Pour un site en développement je dois être en mesure d'afficher sur l'affichage en liste le nom du fabricant du produit, j'ai donc simplement placé ceci pour l'afficher dans le product-list.tpl : {$product.manufacturer_name|escape:'htmlall':'UTF-8'} Cela marche parfaitement ! Par contre, je ne sais pas pourquoi, si un produit à une réduction, la marque ne s'affiche plus ! Cela parait bizarre comme ça mais ça l'est vraiment. J'ai mis un screenshot en pièce jointe pour mieux comprendre.Chaque produit affiche bien en bas, sous son nom, la marque, par contre le Macbook à une réduction et lui n'affiche pas la marque. Si je retire la réduction, la marque apparait à nouveau !J'ai passé un coups de {debug} et il apparait tout bonnement que la variable $product.manufacturer_name n'existe pas pour ce produit quand il à une réduction (normal donc que cela ne s'affiche pas).Alors je ne sais pas si c'est une erreu bête de ma part mais si quelqu'un pouvait tester ça et me dire si chez lui ça fait le même soucis, que je puisse voir si c'est un bug de PS ou je ne sais quoi. Bien sur si une personne sait comment afficher la marque se serait top !Merci vraiment de votre aide. Link to comment Share on other sites More sharing options...
Mushr00m Posted March 12, 2011 Author Share Posted March 12, 2011 Oups encore un bug, quand on ajoute une réduction on perd aussi l'affichage de "nouveau" (quand le produit est nouveau bien sur).... toujours bizarre !J'espère qu'un admin passera par là ;-) Link to comment Share on other sites More sharing options...
Mushr00m Posted March 12, 2011 Author Share Posted March 12, 2011 La piste du bug s'affine !En fait si jamais le bloc de réduction est affiché, et qu'il affiche un produit en réduction cela cause les problèmes dont je parle ci-dessus sur ce produit et ce produit seulement. Si j'ai donc 3 produits dans ma page en promotions, seul celui qui est dans le bloc de réduction (de gauche) va avoir des soucis. Si je désactive le bloc de réduction tout va bien.Il semblerait donc que par je ne sais quel tour de passe-passe le bloc de réduction fait sauter des valeurs... d'où les problèmes de mon premier post.J'espère donc que toutes ces précisions vous permettrons de mieux m'aider à régler cela ou au moins à me dire si cela le fait chez vous aussi.Merci Link to comment Share on other sites More sharing options...
Mushr00m Posted March 17, 2011 Author Share Posted March 17, 2011 Bon je me répond tout seul...En fait le problème vient des variables $products passé par le module promotion qui font sauter celle de base pour le reste de la page. Il suffit donc de changer le nom des variables dans le fichier blockspecials.php, j'ai passé les miennes en $product_sp et c'est bon !Voila si ça peu aider. Link to comment Share on other sites More sharing options...
mich0083 Posted March 24, 2011 Share Posted March 24, 2011 bonsoir,Pourrais me dire comment tu as fais pour résoudre ton souci car j'ai exactement le même problemePar avance merciMichel Link to comment Share on other sites More sharing options...
Mushr00m Posted March 24, 2011 Author Share Posted March 24, 2011 Si tu as quelques connaissance en PHP ce n'est pas bien compliqué, dans le fichier blockspecials.php j'ai modifié le nom de la variable smarty pour qu'elle s'appelle ainsi products_sp, en fait il faut juste qu'elle soit différentes de products qui est déjà utilisé pour afficher tout les produits.Et dans le fichier blockspecials.tpl je fais appel à cette variable smarty, j'ai un truc du type : >{if $products_sp|@count > 0} </pre> <ul> {foreach from=$products_sp item=product_sp name=products_sp} ..... Si tu as besoin de plus d'aide dis le moi. Je pourrais plus te guider plus si tu as des notions php. Link to comment Share on other sites More sharing options...
mich0083 Posted March 24, 2011 Share Posted March 24, 2011 Salut et merci pour ta réponse .Je suis très novice dans le php, je galère encore, je ne vois pas comment tu change le nom de la variable smarty.voici mon fichier blockspécial.php du module blockspécial<?phpif (!defined('_CAN_LOAD_FILES_')) exit;class BlockSpecials extends Module{ private $_html = ''; private $_postErrors = array(); function __construct() { $this->name = 'blockspecials'; $this->tab = 'Blocks'; $this->version = 0.8; parent::__construct(); $this->displayName = $this->l('Specials block'); $this->description = $this->l('Adds a block with current product Specials'); } function install() { return (parent::install() AND $this->registerHook('leftColumn')); } function hookRightColumn($params) { global $smarty; if ($special = Product::getRandomSpecial(intval($params['cookie']->id_lang))) $smarty->assign(array( 'special' => $special, 'priceWithoutReduction_tax_excl' => Tools::ps_round($special['price_without_reduction'] / (1 + $special['rate'] / 100), 2), 'oldPrice' => $special['price'] + $special['reduction'], 'mediumSize' => Image::getSize('medium'))); return $this->display(__FILE__, 'blockspecials.tpl'); } function hookLeftColumn($params) { return $this->hookRightColumn($params); }}?>Si tu peux m'aiguiller se serait super cool.Encore merci.Michel Link to comment Share on other sites More sharing options...
marco Cape Town Posted May 31, 2011 Share Posted May 31, 2011 je bloque aussi la dessus...comment avoir une solution complete ?N'est-ce pas possible que les modules Prestashop de base sauvegarde cette valeur $product.manufacturer_name pour tous les blocs ??? Link to comment Share on other sites More sharing options...
Mushr00m Posted June 2, 2011 Author Share Posted June 2, 2011 Salut !Alors je suis désolé mais ca fait un moment que j'ai fais cette modif donc le mieux est que je vous colle tout le code. Attention par contre cette modif est faites sous un PrestaShop 1.3, je n'ai pas testé sous 1.4. De plus ma modif change l'affichage général du module. Mais cela vous permettra de mieux comprendre surement :Fichier BlockSpecials.TPL : <!-- MODULE Block specials --> {l s='Specials' mod='blockspecials'} {if $products_sp|@count > 0} {foreach from=$products_sp item=product_sp name=products_sp} getImageLink($product_sp.link_rewrite, $product_sp.id_image, 'small')}" alt="{$product_sp.legend|escape:html:'UTF-8'}" height="{$smallSize.height}" width="{$smallSize.width}" title="{$product_sp.name|escape:html:'UTF-8'}" /> {$product_sp.name|escape:html:'UTF-8'} {if !$priceDisplay}{displayWtPrice p=$product_sp.price_without_reduction}{else}{displayWtPrice p=$priceWithoutReduction_tax_excl}{/if} {if !$priceDisplay}{displayWtPrice p=$product_sp.price}{else}{displayWtPrice p=$product_sp.price_tax_exc}{/if} {/foreach} {l s='All specials' mod='blockspecials'} {else} {l s='No specials at this time' mod='blockspecials'} {/if} <!-- /MODULE Block specials --> Fichier BlockSpecials.PHP : <?php if (!defined('_CAN_LOAD_FILES_')) exit; class BlockSpecials extends Module { private $_html = ''; private $_postErrors = array(); function __construct() { $this->name = 'blockspecials'; $this->tab = 'Blocks'; $this->version = 0.8; parent::__construct(); $this->displayName = $this->l('Specials block'); $this->description = $this->l('Adds a block with current product Specials'); } function install() { return (parent::install() AND $this->registerHook('rightColumn')); } function hookRightColumn($params) { global $smarty; $products_sp = Product::getPricesDrop(intval($params['cookie']->id_lang)); $rand_products_sp = array(); if ($products_sp) { $keys = array_rand($products_sp,2); shuffle($keys); foreach ($keys AS $key) { $rand_products_sp[] = $products_sp[$key]; } } $smarty->assign(array('products_sp' => $rand_products_sp,'smallSize' => Image::getSize('small'))); if($products_sp) return $this->display(__FILE__, 'blockspecials.tpl'); else return ''; } function hookLeftColumn($params) { return $this->hookRightColumn($params); } } ?> Hésitez pas si vous avez des questions. Normalement avec tout ça vous devriez avoir tout qui fonctionne. Link to comment Share on other sites More sharing options...
Mushr00m Posted June 5, 2011 Author Share Posted June 5, 2011 Alors c'est bon pour vous ? 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