Jump to content

Prix barrés template gamestore


Recommended Posts

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

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

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 :D )

 

si ça ne marche pas, j'installerai une version 1.4.8.3 en local pour voir si c'est lié à la version...

Edited by Acuao (see edit history)
Link to comment
Share on other sites

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

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

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 :

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 by TonyGun38 (see edit history)
Link to comment
Share on other sites

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

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 by Acuao (see edit history)
Link to comment
Share on other sites

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 by TonyGun38 (see edit history)
Link to comment
Share on other sites

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 by Acuao (see edit history)
Link to comment
Share on other sites

(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

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

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 by Acuao (see edit history)
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...