TonyGun38 Posted January 16, 2013 Share Posted January 16, 2013 Bonsoir à tous, Bon je sais que la question est fréquente, j'ai vue beaucoup de topics la dessus et j'ai donc essayez un peu tout ce que je trouvais mais au final je n'y arrive pas Comme l'indique le sujet, je voudrais mettre en avant les produit ayant des "prix" dans la liste des produits d'une catégorie. J'utilise le thème Gameworld (game store) et prestashop 1.4.8.3 Apparament le bout de code à rajouté/modifier ce ferait dans product-list.tpl donc voici a quoi correspond le miens : {if isset($products)} <!-- Products list --> {assign var='nbItemsPerLine' value=4} <ul id="product_list" class="clear"> {foreach from=$products item=product name=products} <li class="ajax_block_product {if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if} {if $smarty.foreach.products.iteration%$nbItemsPerLine == 0}last_item_of_line{elseif $smarty.foreach.products.iteration%$nbItemsPerLine == 1}clear{/if} clearfix"> <div class="center_block"> <a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} /></a> <h3><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:25:'...':true|escape:'htmlall':'UTF-8'}</a></h3> <p class="category_name"> {$category->name|escape:'htmlall':'UTF-8'} </p> </div> <div class="right_block"> {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} <div> {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}{if ($product.allow_oosp || $product.quantity > 0)}<span class="availability">{l s='Available'}</span>{elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}{l s='Product available with different options'}{else}<span class="outofstock">{l s='Out of stock'}</span>{/if}{/if} {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><br />{/if} </div> {/if} {if isset($comparator_max_item) && $comparator_max_item} <p class="compare"><input type="checkbox" class="comparator" id="comparator_item_{$product.id_product}" value="comparator_item_{$product.id_product}" {if isset($compareProducts) && in_array($product.id_product, $compareProducts)}checked="checked"{/if}/> <label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label></p> {/if} {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE} {if ($product.allow_oosp || $product.quantity > 0)} <a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart.php')}?add&id_product={$product.id_product|intval}{if isset($static_token)}&token={$static_token}{/if}" title="{l s='Add to cart'}">{l s='Add to cart'}</a> {else} <span class="exclusive">{l s='Out of stock'}</span> {/if} {/if} </div> </li> {/foreach} </ul> <!-- /Products list --> {/if} Si quelqu'un à une idée, merci beaucoup ! Link to comment Share on other sites More sharing options...
Acuao Posted January 19, 2013 Share Posted January 19, 2013 Bonjour , je ne suis pas sur de bien comprendre la question : tu veux mettre un prix barré et un prix normal ou juste barrer le prix? Link to comment Share on other sites More sharing options...
TonyGun38 Posted January 19, 2013 Author Share Posted January 19, 2013 Bonjour, Enfaite je voudrais que quand un prix est "en solde", le prix normal soit barré et a coté qu'il y est le prix en solde. Link to comment Share on other sites More sharing options...
Acuao Posted January 20, 2013 Share Posted January 20, 2013 Je pense avoir trouvé de quoi t'aider: dans product-list.tpl (ligne 43 chez moi) remplacer {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><br /> {/if} par {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><br /> {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE OR isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} <strike>{convertPrice price=$product.price_without_reduction}</strike> {/if} {/if} ce qui dans ton cas devrait donner: {if isset($products)} <!-- Products list --> {assign var='nbItemsPerLine' value=4} <ul id="product_list" class="clear"> {foreach from=$products item=product name=products} <li class="ajax_block_product {if $smarty.foreach.products.first}first_item{elseif $smarty.foreach.products.last}last_item{/if} {if $smarty.foreach.products.iteration%$nbItemsPerLine == 0}last_item_of_line{elseif $smarty.foreach.products.iteration%$nbItemsPerLine == 1}clear{/if} clearfix"> <div class="center_block"> <a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}"><img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} /></a> <h3><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:25:'...':true|escape:'htmlall':'UTF-8'}</a></h3> <p class="category_name"> {$category->name|escape:'htmlall':'UTF-8'} </p> </div> <div class="right_block"> {if (!$PS_CATALOG_MODE AND ((isset($product.show_price) && $product.show_price) || (isset($product.available_for_order) && $product.available_for_order)))} <div> {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}{if ($product.allow_oosp || $product.quantity > 0)}<span class="availability">{l s='Available'}</span>{elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}{l s='Product available with different options'}{else}<span class="outofstock">{l s='Out of stock'}</span>{/if}{/if} {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><br /> {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE OR isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} <strike>{convertPrice price=$product.price_without_reduction}</strike> {/if} {/if} </div> {/if} {if isset($comparator_max_item) && $comparator_max_item} <p class="compare"><input type="checkbox" class="comparator" id="comparator_item_{$product.id_product}" value="comparator_item_{$product.id_product}" {if isset($compareProducts) && in_array($product.id_product, $compareProducts)}checked="checked"{/if}/> <label for="comparator_item_{$product.id_product}">{l s='Select to compare'}</label></p> {/if} {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity <= 1 && $product.customizable != 2 && !$PS_CATALOG_MODE} {if ($product.allow_oosp || $product.quantity > 0)} <a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart.php')}?add&id_product={$product.id_product|intval}{if isset($static_token)}&token={$static_token}{/if}" title="{l s='Add to cart'}">{l s='Add to cart'}</a> {else} <span class="exclusive">{l s='Out of stock'}</span> {/if} {/if} </div> </li> {/foreach} </ul> <!-- /Products list --> {/if} Link to comment Share on other sites More sharing options...
TonyGun38 Posted January 21, 2013 Author Share Posted January 21, 2013 Ok merci, par contre, pour que sa marche il faut focer smarty à recompiler non ? Enfaite j'ai un soucis, dés que j'active la fonction dans performance, le site affiche une page blanche... En gros ne fonctionne pas... Link to comment Share on other sites More sharing options...
Acuao Posted January 21, 2013 Share Posted January 21, 2013 (edited) quel bout de code as tu pris? celui que j'ai remis directement dans ton code ou l'autre? j'ai bien revérifié, et les codes (y compris le long) que je t'ai fourni marchent bien chez moi, cependant ma version de test locale est la 1.4.9.0 si ce n'est pas ce que tu avais fait, je te conseille de faire une copie de ton fichier product-list.tpl et de remplacer tout le contenu du fichier par le gros bout de code que je t'ai passé (product.tpl, pas la copie hein ) si ça ne marche pas, j'installerai une version 1.4.8.3 en local pour voir si c'est lié à la version... Edited January 21, 2013 by Acuao (see edit history) Link to comment Share on other sites More sharing options...
TonyGun38 Posted January 21, 2013 Author Share Posted January 21, 2013 Oui j'ai bien pris tout le code que tu m'as donné, mais smarty bug à chaque fois... Même en ayant le fichier de base... De toute façon je comprends rien, à l'installation de presta tout marche niquel et quelques mois après smarty ce met à déconner et impossible d'activer la fonction recompiler... Sa devient vraiment embêtant... Link to comment Share on other sites More sharing options...
Acuao Posted January 21, 2013 Share Posted January 21, 2013 Ah tu veux dire que le problème de la page blanche n'est pas liée à ma modification? forcément, si smarty ne peut recompiler, c'est sur que le modification ne peut être prise en compte... As-tu une page complètement blanche ou une page comme suit? http://image.noelshack.com/fichiers/2013/04/1358782583-capture.png quoi qu'il en soit, tu peux afficher les erreurs php en modifiant la ligne du fichier config.inc.php @ini_set('display_errors', 'off'); ta boutique est elle en ligne ou est tu en train de la monter en local? (j'imagine qu'elle est déjà en ligne sinon tu ne monterais pas une veille version de prestashop) peut être vaudrait il mieux faire l'opération à une heure désertée par les visiteurs et mettre le site en maintenance, car l'activation de cette option affiche les erreurs chez les visiteurs également... as tu fait des modifications dans les fichiers tpl ou installé de nouveaux modules au moment ou est apparue cette page blanche? as tu bien un fichier index.php dans le dossier tools/smarty/complie/ ? Je l'ai supprimé chez moi, pas de page blanche, mais j'ai déjà entendu parler de ce problème plusieurs fois : les personnes vident le cache en supprimant le contenu du dossier "compile" or celui ci contient un fichier "index.php", à ne pas supprimer (ce qui n'est pas le cas du dossier "cache") Link to comment Share on other sites More sharing options...
TonyGun38 Posted January 21, 2013 Author Share Posted January 21, 2013 (edited) Non j'ai carrément une page blanche sous Opera. Par contre sur Chrome j'ai sa : Erreur serveur Le site Web a rencontré une erreur lors de l'extraction de http://store.fws-gaming.com/. Cela peut être dû à une opération de maintenance ou à une configuration incorrecte. Voici quelques suggestions : Actualisez cette page Web ultérieurement. Erreur HTTP 500 (Internal Server Error) : Une situation inattendue s'est produite tandis que le serveur tentait de traiter la demande. Sinon nan, j'ai rien touché, de plus j'ai éssayé de ré-up les fichiers par défaut du thème mais rien... Questions modules je ne peux pas savoir, la fonction recompiler je ne l'utilise pas souvent... Mais de toute façon j'ai désinstaller tous les modules que j'avais mis... Pour l'index oui il y est bien. Edited January 21, 2013 by TonyGun38 (see edit history) Link to comment Share on other sites More sharing options...
Acuao Posted January 21, 2013 Share Posted January 21, 2013 L'erreur que tu me montres, est une erreur du navigateur, si tu actives l'affichage des erreurs php dans ton fichier de config qu'as tu? Sinon, si tu réactives le thème de base prestashop, et forces la compilation que se passe il? Par contre avant de faire cette manipulation, crées bien une copie de tes fichiers de cache: tools/smarty/cache tools/smarty/compile Car si ton smarty est incapable de refaire du cache et qu'il supprime tes fichiers actuels ça peut poser certains problèmes pour la suite, donc mieux vaut sauvegarder tes fichiers actuels pour pouvoir les restaurer en cas de soucis lors de la réactivation du thème actuel... Link to comment Share on other sites More sharing options...
TonyGun38 Posted January 21, 2013 Author Share Posted January 21, 2013 Voila, j'ai fais ce que tu m'a dis et voila l'erreur : Fatal error: Access to undeclared static property: Smarty::$_CHARSET in /public_html/store/tools/smarty/plugins/modifiercompiler.escape.php on line 35 Link to comment Share on other sites More sharing options...
Acuao Posted January 21, 2013 Share Posted January 21, 2013 (edited) c'est étrange, j'ai téléchargé la version 1.4.8.3 et ce fichier n'existe pas("modifiercompiler.escape.php"), par contre j'ai un "modifier.escape.php" as tu bricolé quelque chose? par contre dans la version 1.4.9.0 ce fichier existe bien... c'est vraiment bizarre, comme si tu avais fusionné les fichiers de 2 versions... peut être vaudrait il mieux que tu re-télécharges l'archive de la version 1.4.8.3 (en bas de page) : http://www.prestasho...ns-developpeurs renommes ton dossier tools/smarty en tools/smarty_old et réupload le dossier "smarty" d'origine de l'archive téléchargée... vers tools/ n'oublies pas faire une copie de ton cache comme je te l'ai conseillé précédemment, si ce n'est pas déjà fait... Edited January 21, 2013 by Acuao (see edit history) Link to comment Share on other sites More sharing options...
TonyGun38 Posted January 21, 2013 Author Share Posted January 21, 2013 (edited) J'ai envie de dire que tu es un génie ! C'est pas la première fois que cela m'arrive et j'avais du tout recommencer et la tu m'enlève une grosse aiguille du pied ! Ce que j'ai fais, c'est supprimer le dossier tools de mon FTP pour le remplacer par celui de l'archive prestashop 1.4.8.3 fraichement téléchargé. Du coup, maintenant sa marche et en prime les prix s'affichent barrés ! Encore merci à toi ! Sinon pendant qu'on y est, comment sa ce passe pour les modules ou autres pages ? Enfin ce que je veux dire, c'est comment faire pour afficher un prix barré sur la page produit ou sur ma page d'accueil le module en dessous du slider qui afficher les jeux les plus acheté par exemple ? Edited January 21, 2013 by TonyGun38 (see edit history) Link to comment Share on other sites More sharing options...
Acuao Posted January 21, 2013 Share Posted January 21, 2013 (edited) Ben c'est comme expliqué dans mon post, tu remplaces la ligne que j'ai mise par ce que j'ai mis Après ça dépend peut être des cas remarques... il faut peut être adapter le code que je t'ai fourni le mieux c'est peut être que tu essayes de déchiffrer ce code, il doit être adaptable un peu partout : {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><br /> {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE OR isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} <strike>{convertPrice price=$product.price_without_reduction}</strike> {/if} {/if} Edited January 21, 2013 by Acuao (see edit history) Link to comment Share on other sites More sharing options...
TonyGun38 Posted January 21, 2013 Author Share Posted January 21, 2013 Oui sauf que j'y est bien pensé, j'ai donc fais une recherche pour trouver la bonne ligne dans le fichier product.tpl en cherchant product.show_price mais ça ne trouve rien =/ Link to comment Share on other sites More sharing options...
Acuao Posted January 21, 2013 Share Posted January 21, 2013 (j'ai édité mon message précédent pendant que tu écrivais penses à regarder) pour trouver le bon endroit dans un fichier ce que je fait c'est : - à l'aide de firebug je vois dans quelle balise est affiché le prix par exemple pour la fiche produit je vois que le prix est dans: <span id="our_price_display">42,99 €</span> dans le code de product.tpl je cherche span id="our_price_display" dans ton cas je trouve : {if $priceDisplay >= 0 && $priceDisplay <= 2} <span id="our_price_display">{convertPrice price=$productPrice}</span> {if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) OR !isset($display_tax_label))} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if} {/if} {/if} je testerai bien (code non testé) {if $priceDisplay >= 0 && $priceDisplay <= 2} <span id="our_price_display">{convertPrice price=$productPrice}</span> {if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) OR !isset($display_tax_label))} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if} {/if} {if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE OR isset($product.reduction) && $product.reduction && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE} <strike>{convertPrice price=$product.price_without_reduction}</strike> {/if} {/if} Link to comment Share on other sites More sharing options...
TonyGun38 Posted January 22, 2013 Author Share Posted January 22, 2013 Bon alors j'ai essayer mais sa n'a pas fonctionner, je ne suis pas très doué dans tout ce qui est code ^^ Je te copie colle mon code dans product.tpl : {if $product->show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE} <p class="price"> {if !$priceDisplay || $priceDisplay == 2} {assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 2)} {assign var='productPriceWithoutRedution' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)} {elseif $priceDisplay == 1} {assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 2)} {assign var='productPriceWithoutRedution' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)} {/if} {if $product->on_sale} <img src="{$img_dir}onsale_{$lang_iso}.gif" alt="{l s='On sale'}" class="on_sale_img"/> <span class="on_sale">{l s='On sale!'}</span> {elseif $product->specificPrice AND $product->specificPrice.reduction AND $productPriceWithoutRedution > $productPrice} <span class="discount">{l s='Reduced price!'}</span> {/if} <br /> <span class="our_price_display"> {if $priceDisplay >= 0 && $priceDisplay <= 2} <span id="our_price_display">{convertPrice price=$productPrice}</span> {if $tax_enabled && ((isset($display_tax_label) && $display_tax_label == 1) OR !isset($display_tax_label))} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if} {/if} {/if} </span> {if $priceDisplay == 2} <br /> <span id="pretaxe_price"><span id="pretaxe_price_display">{convertPrice price=$product->getPrice(false, $smarty.const.NULL, 2)}</span> {l s='tax excl.'}</span> {/if} <br /> </p> {if $product->specificPrice AND $product->specificPrice.reduction} <p id="old_price"><span class="bold"> {if $priceDisplay >= 0 && $priceDisplay <= 2} {if $productPriceWithoutRedution > $productPrice} <span id="old_price_display">{convertPrice price=$productPriceWithoutRedution}</span> {if $tax_enabled && $display_tax_label == 1} {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if} {/if} {/if} {/if} </span> </p> {/if} {if $product->specificPrice AND $product->specificPrice.reduction_type == 'percentage'} <p id="reduction_percent">{l s='(price reduced by'} <span id="reduction_percent_display">{$product->specificPrice.reduction*100}</span> %{l s=')'}</p> {/if} {if $packItems|@count} <p class="pack_price">{l s='instead of'} <span style="text-decoration: line-through;">{convertPrice price=$product->getNoPackPrice()}</span></p> <br class="clear" /> {/if} {if $product->ecotax != 0} <p class="price-ecotax">{l s='include'} <span id="ecotax_price_display">{if $priceDisplay == 2}{$ecotax_tax_exc|convertAndFormatPrice}{else}{$ecotax_tax_inc|convertAndFormatPrice}{/if}</span> {l s='for green tax'} {if $product->specificPrice AND $product->specificPrice.reduction} <br />{l s='(not impacted by the discount)'} {/if} </p> {/if} {if !empty($product->unity) && $product->unit_price_ratio > 0.000000} {math equation="pprice / punit_price" pprice=$productPrice punit_price=$product->unit_price_ratio assign=unit_price} <p class="unit-price"><span id="unit_price_display">{convertPrice price=$unit_price}</span> {l s='per'} {$product->unity|escape:'htmlall':'UTF-8'}</p> {/if} Link to comment Share on other sites More sharing options...
Acuao Posted January 22, 2013 Share Posted January 22, 2013 En fait il est déjà activé sur ton site, c'est juste qu'il est masqué : http://image.noelshack.com/fichiers/2013/04/1358826114-capture.png Link to comment Share on other sites More sharing options...
TonyGun38 Posted January 22, 2013 Author Share Posted January 22, 2013 Et du coup comment l'activer ? ^^ Link to comment Share on other sites More sharing options...
Acuao Posted January 22, 2013 Share Posted January 22, 2013 (edited) il faut que tu modifies ta CSS, j'ai entouré la propriété à supprimer sur le screenshot après il te faudra peut être refaire un peu de CCS pour remettre tout ça en forme ou pour le déplacer... Edit : donc du coup c'est themes/gameworld/css/product.css ligne 45 supprimer le display none Edited January 22, 2013 by Acuao (see edit history) Link to comment Share on other sites More sharing options...
TonyGun38 Posted January 22, 2013 Author Share Posted January 22, 2013 Bon alors j'ai essayé en effet sa affiche l'ancien prix mais bon pas barré :/ Sa pourrait porté à la confusion pour les clients :/ 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