Jump to content
geys

Ajouter un bandeau "nouveau" sur les nouveaux produits

Recommended Posts

Bonjour,

 

Je n'ai pas trouvé de solution pour mettre une image (un bandeau ou un slash) Nouveau sur tous les nouveaux produits de ma boutique.

Quelqu'un sait comment faire ?

Merci

 

PS : j'ai déjà cherché sur google mais je n'ai pas trouvé de réponses satisfaisants, pourtant je suis sure que le sujet a déjà été traité.

Share this post


Link to post
Share on other sites

Un peu long à expliquer mais les exemples ne manquent pas y compris sur mes thèmes.

 

Avec "Firebug" (encore lui) regardes comment est construit le code et le css correspondant.

 

La mention "nouveau" ou autre d'ailleurs, ne s'affichera que si dans la page le code de cette condition est prévu!

Share this post


Link to post
Share on other sites

Bonjour à tous,

 

Version Prestashop : 1.5.3

 

Je me permet de faire remonter le sujet car je rencontre un problème trés proche. Je souhaite afficher un bandeau "nouveau" sur les photos des produits présents dans les pages produits (product-list). Je souhaiterais obtenir le même résultat que dans le bloc produits phares en page d'accueil.

 

J'ai réussi sans difficultés à intégrer le bandeau dans le fichier template product-list.tpl de mon thème et j'ai également modifier le css pour qu'il s'affiche à peu prés où je le souhaite. Mon problème est que le bandeau déborder de l'image à la différence du bandeau du module "produits phares". Je ne comprends pas d'où cela viens. C'est pourquoi, je vous demande conseille.

 

Ci-dessous, le début du code de mon template. Le code que j'ai ajouté se trouve à la fin.

{if isset($products)}
<!-- Products list -->
<ul id="product_list" class="clear clearfix">
{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.index % 2}alternate_item{else}item{/if} {if $smarty.foreach.products.index % 3 == 0}first_item_line{/if} {if ($smarty.foreach.products.index + 1) % 3 == 0}last_item_line{/if} clearfix">
  <div class="center_block">
{if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}
<img src="{$img_dir}onsalemini_{$lang_iso}.png" alt="{l s='On sale'}" class="reduction_img"/>
{/if}
<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, 'pageproduits')}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} />[color=#ff0000]{if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}[/color]</a>

 

Ci dessous le code css correspondant à l'élément :

 

ul#product_list li .new {
display: block;
position: absolute;
top: -270px;
right:-120px;
padding: 1px 4px;
width: 101px;
font-size:10px;
font-weight: bold;
color: #D3FD6E;
text-align: center;
text-transform: uppercase;
-moz-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
-o-transform:rotate(45deg);
/*-ms-transform: rotate(45deg);*/
background: #91e842; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIxMCUiIHN0b3AtY29sb3I9IiM5MWU4NDIiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSI0MCUiIHN0b3AtY29sb3I9IiM3ZGFmMDUiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSI2MCUiIHN0b3AtY29sb3I9IiM3ZGFmMDUiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSI5MCUiIHN0b3AtY29sb3I9IiM5MWU4NDIiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
background: -moz-linear-gradient(top,  #91e842 10%, #7daf05 40%, #7daf05 60%, #91e842 90%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(10%,#91e842), color-stop(40%,#7daf05), color-stop(60%,#7daf05), color-stop(90%,#91e842)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top,  #91e842 10%,#7daf05 40%,#7daf05 60%,#91e842 90%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top,  #91e842 10%,#7daf05 40%,#7daf05 60%,#91e842 90%); /* Opera 11.10+ */
background: -ms-linear-gradient(top,  #91e842 10%,#7daf05 40%,#7daf05 60%,#91e842 90%); /* IE10+ */
background: linear-gradient(to bottom,  #91e842 10%,#7daf05 40%,#7daf05 60%,#91e842 90%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#91e842', endColorstr='#91e842',GradientType=0 ); /* IE6-8 */

transform: rotate(45deg);  /* Newer browsers */
filter: progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476); /* IE6,IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476)"; /* IE8 */
}

 

Je vous remercie par avance pour votre aide.

Edited by Céline13240 (see edit history)

Share this post


Link to post
Share on other sites

Non désolée. Je suis encore en local.

 

Mais en poursuivant mes essais, je me suis retrouvée avec le bandeau en diagonale sous ma barre de menu. Et là, je me suis aperçue que le bandeau ne déborde pas sur celle-ci. Mais je n'arrive pas à comprendre pourquoi.

 

Je ne sais pas si vous serez en mesure de m'éclairer dans la mesure où vous ne pourrez pas voir par vous-même le résultat, mais dans tous les cas, je vous remercie pour votre retour.

Share this post


Link to post
Share on other sites

Je viens de m'apercevoir qu'il y a une erreur dans le code fournit ci-dessus. Ce n'était pas

position: absolute;

 

 

mais

position: relative;

 

Ensuite en ce qui concerne les valeurs, je les ai modifiées pour positionner mon élément où je le souhaite :

top: -280px;

right:-130px;

 

Du coup, c'est peut-être pour cette raison que le bandeau dépasse de la photo. Mais pour vérifier mon hypothèse, je dois modifier les valeurs et là, je galère pas mal pour positionner mon élément au même endroit que précédemment (et c'est pour cette raison que j'ai essayé par la suite : "position: relative").

Share this post


Link to post
Share on other sites

Je viens d'essayer les valeurs que vous m'avez indiqué mais mon élément se retrouve en haut à droite, sous la barre de menu.

 

Je vais continuer mes essais de positionnement.

 

Merci.

Share this post


Link to post
Share on other sites

Je viens d'essayer les valeurs que vous m'avez indiqué mais mon élément se retrouve en haut à droite, sous la barre de menu.

 

Je vais continuer mes essais de positionnement.

 

Merci.

Avez vous bien remis en absolute ?

Share this post


Link to post
Share on other sites

Il y a tout de même un truc que je ne comprend pas, normalement dans la 1.5.3 le news est natif dans le productlist.

Share this post


Link to post
Share on other sites

Bon, il y a en effet un souci. Les valeurs sont élevées car mon élément bandeau se positionne par rapport à la colonne centrale et non par rapport à la boîte que je nommerai image dans laquelle il est censé se positionner. C'est ce que j'en ai déduit en faisant des comparaison avec le bandeau du bloc produits phares grâce à firebug.

 

Néanmoins, je ne comprends pas comment remédier à ce problème car je n'arrive pas à identifier où est l'erreur.

 

Arrrg.

 

Je n'ai pas précisé que j'ai modifié le template product-list pour afficher les produits en colonne. Il ne s'agit donc pas de l'original. Mais je ne me rappelais pas que par défaut il y avait un bandeau nouveau dans la page des produits. Je vais jeter un coup d'oeil.

 

Merci.

Edited by Céline13240 (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

Il faut rajouter dans le css à <li> une position relative puis à la <span class="new"> une position absolute + des coordonnés du style top:10px et right ou left:10px (il faut tester différentes positions afin de trouver celle qui convient le mieux.)

C'est facile à comprendre, la <li></li> est le conteneur, il a donc une position relative et l'étiquette "new" (ou autre) est contenu dans le conteneur et doit à ce titre avoir une position absolute + l'indication précise ou l'on veut qu'il apparaisse (top et left/right).

Cordialement

Share this post


Link to post
Share on other sites

Bonjour,

 

Je te remercie pour ta réponse. Mettre la position relative mon élément <li> </li> m'a facilicité été trés utile mais n'a que partiellement résolu mon souci. .

 

En effet, mon bandeau, étant positionné en diagonale, (de la même manière que celui du bloc "produits phares" dans le thème par défaut), il dépassait de l'image du produit au lieu que les bords dipsraissent au delà de l'image du produit. Du coup, le résultat était plutôt moche.

 

En fait, pour faire disparaître les bords du bandeau au-delà du conteneur, il faut également utiliser

 

overflow:hidden

 

J'ai dû réajuster la taille de mon bloc "conteneur" et c'est bon.

 

Encore merci à tous les deux, Muche et Jacques, car sans votre aide je n'aurai jamais trouvé.

 

Vous avez été super. ;)

 

Merci.

Edited by Céline13240 (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

J'ai un petit problème qui a un rapport avec ce sujet !

Par défaut et a chaque fois que j'ajoute un produit au site; une bande "nouveau" en vert s'affiche au dessous de mes produits donc j'ai réglé ce petit problème et la bande s’est enlève de toute les produits :)  mais il y'avais quelque produit que j'avais envie de leur rajouté cette bande et en la rajoutant la bande s'applique sur tout les produits du site :(

comment faire pour que je manipule cette bande sur des produits prècis !  :huh:

Share this post


Link to post
Share on other sites

Coucou

 

voila comment procéder

 

1°) via phpmyadmin créer un colonne "imgnew" dans la table product et product_shop avec les requetes sql

ALTER TABLE  `ps_product` ADD  `imgnew` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT  '0'
ALTER TABLE  `ps_product_shop` ADD  `imgnew` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT  '0'

ATTENTION ps_ doit être remplacer par le prefix de tes tables si ce n'est pas ps_ 

 

2°) création d'une case a cocher dans l'admin product on prend exemple sur la case a cocher "activé"

dans classes/product.php
apres ligne 165

/** @var boolean Product statuts */
     public $imgnew = false;

apres ligne 289
'imgnew' => 	array('type' => self::TYPE_BOOL, 'shop' => true, 'validate' => 'isBool'),

3°) ajout de la case a coche dans le formulaire dans admin/theme/default/templates/controllers/products/information.tpl
apres la ligne 184
{* status informations *}
ajouter
<div class="form-group">		
	<label class="control-label col-lg-3">
		{include file="controllers/products/multishop/checkbox.tpl" field="imgnew" type="radio" onclick=""}
		{l s='Display Img New'}
	</label>
	<div class="col-lg-9">
		<span class="switch prestashop-switch fixed-width-lg">
		<input onclick="toggleDraftWarning(false);" type="radio" name="imgnew" id="imgnew_on" value="1" {if $product->imgnew}checked="checked" {/if} />
		<label for="imgnew_on" class="radioCheck">
		{l s='Yes'}
		</label>
		<input onclick="toggleDraftWarning(true);"  type="radio" name="imgnew" id="imgnew_off" value="0" {if !$product->imgnew}checked="checked"{/if} />
		<label for="imgnew_off" class="radioCheck">
		{l s='No'}
		</label>
		<a class="slide-button btn"></a>
		</span>
	</div>
</div>

4°) affichage de l'image dans la liste de produits  dans theme/default_bootstrap/product-list.tpl

ligne  79
remplacer
{if isset($product.new) && $product.new == 1}
	<span class="new-box">
	<span class="new-label">{l s='New'}</span>
	</span>
{/if}
par						
<!--{if isset($product.new) && $product.new == 1}
	<span class="new-box">
	<span class="new-label">{l s='New'}</span>
	</span>
{/if}-->
{if isset($product.imgnew) && $product.imgnew == 1}
	<span class="new-box">
	<span class="new-label">{l s='New'}</span>
	</span>
{/if}

voila  tester sur ps 1.6.0.6

 

EDIT : donc maitenant pour tout tes produits tu dois configurer en BO  oui ou non pour "display img new" que tu peut traduire dans la traduction de la BO

 

@++

 

Loulou66

Edited by loulou66 (see edit history)
  • Like 3

Share this post


Link to post
Share on other sites

bonjour loulou !

merci beaucoup pour ta reponse :) malgrè qui chui en presta 1.5 pas 1.6 mais je vais essayè et je te met au courant bisou

Edited by salma24 (see edit history)

Share this post


Link to post
Share on other sites

Coucou

 

Pour une 1.5 (1.5.6.2)

 

etape 1 ne change pas 

etape 2 recherche le mot active et colle le même info du post pécédent

etape 3

apres

{* status informations *}
	<table cellpadding="5" style="width: 40%; float: left; margin-left: 10px;">
	
ajouter
<tr>
		<td class="col-left">
			{include file="controllers/products/multishop/checkbox.tpl" field="imgnew" type="radio" onclick=""}
			<label class="text">{l s='Status:'}</label>
		</td>
		<td style="padding-bottom:5px;">
			<ul class="listForm">
				<li>
					<input onclick="toggleDraftWarning(false);" type="radio" name="imgnew" id="imgnew_on" value="1" {if $product->imgnew checked="checked" {/if} />
					<label for="imgnewe_on" class="radioCheck">{l s='Enabled'}</label>
				</li>
				<li>
					<input onclick="toggleDraftWarning(true);"  type="radio" name="imgnew" id="imgnew_off" value="0" {if !$product->imgnew checked="checked"{/if} />
					<label for="imgnew_off" class="radioCheck">{l s='Disabled'}</label>
				</li>
			</ul>
		</td>
	</tr>

etape 4

remplacer
	<!--{if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}-->
	par
        <!--{if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}-->
	{if isset($product.imgnew) && $product.imgnew == 1}<span class="new">{l s='New'}</span>{/if}

je n'ai pas tester juste mais ça devrait fonctionner

 

@++

 

Loulou66

  • Like 1

Share this post


Link to post
Share on other sites

MMerkiii Looulou t'es trop un Bon t'es un Dieu de Prestashop je KIIIIFFFFFFFFFFF

+1 Millaird de milliard de milliard de ... Milliard xD

Share this post


Link to post
Share on other sites

+1 pour Loulou66

 

Merci pour ton astuce, j'utilisais déjà une autre astuce pour l'affichage d'un bandeau nouveau, mais en rajoutant ton astuce, cela me permet vraiment de contrôle le truc article par article.

 

Mon autre astuce, me permet de automatiquement avoir un bandeau Nouveau si condition X et condition ( Y ) soit sur 1 , un bandeau " En stock " si condition X = 1 mais que condition Y = 0 , ... même chose pour les Soldes...

Mon autre possibilité pour le bandeau étant, grâce à la modification en B.O sur la page d'un produit, la date de nouveauté de l'article.

 

 

Si cette astuce intéressent quelqu'un je pourrais mettre le code ici ;)

 

Bien à vous, 

Edited by utaku (see edit history)

Share this post


Link to post
Share on other sites

+1 pour Loulou66

 

Merci pour ton astuce, j'utilisais déjà une autre astuce pour l'affichage d'un bandeau nouveau, mais en rajoutant ton astuce, cela me permet vraiment de contrôle le truc article par article.

 

Mon autre astuce, me permet de automatiquement avoir un bandeau Nouveau si condition X et condition ( Y ) soit sur 1 , un bandeau " En stock " si condition X = 1 mais que condition Y = 0 , ... même chose pour les Soldes...

Mon autre possibilité pour le bandeau étant, grâce à la modification en B.O sur la page d'un produit, la date de nouveauté de l'article.

 

 

Si cette astuce intéressent quelqu'un je pourrais mettre le code ici ;)

 

Bien à vous, 

Bonjour je suis éventuellement intéressé.Merci

Share this post


Link to post
Share on other sites

Coucou

 

@Le sultant

voir le post #17 ou #19 de la page 1 suivant votre version de PS

 

 

@++

 

Loulou66

Share this post


Link to post
Share on other sites

Coucou

 

@Le sultant

voir le post #17 ou #19 de la page 1 suivant votre version de PS

 

 

@++

 

Loulou66

 

Bonjour loulou66 ,

 

Sur ma boutique je vends des produits à l'unité mais aussi en pack de 5 .

 

J'aimerais pouvoir rajouter un bandeau supplémentaire à la photo ( dans le même esprit que celle pour les produits 'Nouveau' ou "Promo") indiquant " Pack de 5" par exemple afin que le client en soit informe

 

Dois-je utiliser le même procédé que celui annoncé dans le poste #17 ?

Si oui où est ce que je modifie le texte du bandeau ?

Merci par avance pour ton aide.

 

 

Cordialement

James

Edited by JamesBen08 (see edit history)

Share this post


Link to post
Share on other sites

Coucou

dans le fichier TPL ( le product-list.tpl dans mon exemple) il te suffit de changer la traduction {l s='New'} par {l s='pack de 5'

 

@++

Loulou66

Share this post


Link to post
Share on other sites

Coucou

 

dans le fichier TPL ( le product-list.tpl dans mon exemple) il te suffit de changer la traduction {l s='New'} par {l s='pack de 5'

 

@++

Loulou66

Merci pour ta reponse.

J'ai bien dans la B.O pour une fiche produit , le Display New Product qui apparait , cependant lorsque je l'active , rien n'apparait sur la fiche produit en Front.

Pour info je suis en 1.6.0.9

 

Merci par avance pour ton aide.

Share this post


Link to post
Share on other sites

Coucou

 

si tu as mis le switch sur oui et que rien ne s'affiche s'est que tu a oublier quelque chose vérifie bien les etapes

 

@++

 

Loulou66

Share this post


Link to post
Share on other sites

Coucou ,

 

J'ai revérifier étape par étape et rien n'y fait.

 

Peut-être est-ce parce que je n'utilise pas le Template par défaut mais que j'ai ajouté un thème a mon site ?

 

 

Ce que je cherche est qu'un produit que je viens de rajouter à mon site aura le logo "Nouveau" et s'il s'agit d'un pack de 5 il y'aura aussi la mention "Pack de 5"

 

Merci par avance

Share this post


Link to post
Share on other sites

Coucou ,

 

J'ai revérifier étape par étape et rien n'y fait.

 

Peut-être est-ce parce que je n'utilise pas le Template par défaut mais que j'ai ajouté un thème a mon site ?

 

 

Ce que je cherche est qu'un produit que je viens de rajouter à mon site aura le logo "Nouveau" et s'il s'agit d'un pack de 5 il y'aura aussi la mention "Pack de 5"

 

Merci par avance

Salut, c'est peut être pour ça, as tu une adresse du site ? 

Share this post


Link to post
Share on other sites

@loulou66

Bonjour et merci beaucoup pour cette astuce qui fonctionne très bien sur PS 1.6.0.6 !

 

Astuce exécutée sur mon theme personnel !

 

@JamesBen08

 

Essayez de vider le cache et si cela ne fonctionne toujours pas, vous rendre dans :

 

prestashop\cache\class_index.php

 

Supprimer le fichier : class_index.php

 

Amicalement

 

*Edit : Cela provient du fait qu'en utilisant l'astuce de loulou66, il est possible de choisir soit le bandeau Nouveau, soit le bandeau Pack de 5 !

Ils utilisent le même emplacement (à gauche de l'mage) !!

Edited by myselfidem (see edit history)

Share this post


Link to post
Share on other sites

coucou

peut etre qu'il s'affiche mais qu'il est cacher par un autre bandeau (nouveau, promo) il faut regarder le code dans la console(F12) et adapter le css si besoin

 

@++

 

Loulou66

Share this post


Link to post
Share on other sites

@loulou66

 

Il est possible de mettre les deux bandeaux avec ton astuce !

 

Pourrais-tu plutôt créer un override en créant les nouvelles valeurs en sql, pour Product.php ?

 

Amicalement

 

*Edit : afin de parvenir à également voir le bandeau nouveau dans détail du produit, il est possible d'ajouter dans : product.tpl

{*{if $product->new}
     <span class="new-box">
	<span class="new-label">{l s='New'}</span>
     </span>
{/if}*}
{if $product->imgnew}
     <span class="new-box">
	<span class="new-label">{l s='New'}</span>
     </span>
{/if}
Edited by myselfidem (see edit history)

Share this post


Link to post
Share on other sites

Non! "Soyons Solidaires"

 

La logique c'est d'effectuer les modifications dans les deux fichiers : product.tpl et product-list.tpl

 

Mais chacun fait comme bon lui semble !

 

Amicalement

Share this post


Link to post
Share on other sites

Non! "Soyons Solidaires"

 

La logique c'est d'effectuer les modifications dans les deux fichiers : product.tpl et product-list.tpl

 

Mais chacun fait comme bon lui semble !

 

Amicalement

Oui tout à fait myselfidem je suis d'accord avec toi  ! Amitiés

Share this post


Link to post
Share on other sites

Pour la version 1.5 de Prestashop, il y avait une petite erreur dans le code à ajouter dans informations.tpl (<label for="imgnew_on" au lieu de <label for="imgnewe_on" et il manquait "}" après {if $product->imgnew et {if !$product->imgnew :

<tr>
		<td class="col-left">
			{include file="controllers/products/multishop/checkbox.tpl" field="imgnew" type="radio" onclick=""}
			<label class="text">{l s='Status:'}</label>
		</td>
		<td style="padding-bottom:5px;">
			<ul class="listForm">
				<li>
					<input onclick="toggleDraftWarning(false);" type="radio" name="imgnew" id="imgnew_on" value="1" {if $product->imgnew} checked="checked" {/if} />
					<label for="imgnew_on" class="radioCheck">{l s='Enabled'}</label>
				</li>
				<li>
					<input onclick="toggleDraftWarning(true);"  type="radio" name="imgnew" id="imgnew_off" value="0" {if !$product->imgnew} checked="checked"{/if} />
					<label for="imgnew_off" class="radioCheck">{l s='Disabled'}</label>
				</li>
			</ul>
		</td>
	</tr>

Du coup, ça fonctionne chez moi ;)

Share this post


Link to post
Share on other sites

Bonjour à tous je réouvre  ce sujet car j'ai encore plus complexe  :blink: comme question :

Avec le même principe, serait-il possible de retrouver les bandeaux nouveauté et promo sur les catégories et sous-catégories (qui chez moi sont des collections), et encore mieux :rolleyes: de les mettre automatiquement lorsqu'un produit à l'intérieur est en promotion ou nouveau ?
Haaaaaa :huh:  :huh:  :huh: 
Qui saura trouver la solution ???

Share this post


Link to post
Share on other sites

 

Coucou

 

voila comment procéder

 

1°) via phpmyadmin créer un colonne "imgnew" dans la table product et product_shop avec les requetes sql

ALTER TABLE  `ps_product` ADD  `imgnew` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT  '0'
ALTER TABLE  `ps_product_shop` ADD  `imgnew` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT  '0'

ATTENTION ps_ doit être remplacer par le prefix de tes tables si ce n'est pas ps_ 

 

2°) création d'une case a cocher dans l'admin product on prend exemple sur la case a cocher "activé"

dans classes/product.php
apres ligne 165

/** @var boolean Product statuts */
     public $imgnew = false;

apres ligne 289
'imgnew' => 	array('type' => self::TYPE_BOOL, 'shop' => true, 'validate' => 'isBool'),

3°) ajout de la case a coche dans le formulaire dans admin/theme/default/templates/controllers/products/information.tpl
apres la ligne 184
{* status informations *}
ajouter
<div class="form-group">		
	<label class="control-label col-lg-3">
		{include file="controllers/products/multishop/checkbox.tpl" field="imgnew" type="radio" onclick=""}
		{l s='Display Img New'}
	</label>
	<div class="col-lg-9">
		<span class="switch prestashop-switch fixed-width-lg">
		<input onclick="toggleDraftWarning(false);" type="radio" name="imgnew" id="imgnew_on" value="1" {if $product->imgnew}checked="checked" {/if} />
		<label for="imgnew_on" class="radioCheck">
		{l s='Yes'}
		</label>
		<input onclick="toggleDraftWarning(true);"  type="radio" name="imgnew" id="imgnew_off" value="0" {if !$product->imgnew}checked="checked"{/if} />
		<label for="imgnew_off" class="radioCheck">
		{l s='No'}
		</label>
		<a class="slide-button btn"></a>
		</span>
	</div>
</div>

4°) affichage de l'image dans la liste de produits  dans theme/default_bootstrap/product-list.tpl

ligne  79
remplacer
{if isset($product.new) && $product.new == 1}
	<span class="new-box">
	<span class="new-label">{l s='New'}</span>
	</span>
{/if}
par						
<!--{if isset($product.new) && $product.new == 1}
	<span class="new-box">
	<span class="new-label">{l s='New'}</span>
	</span>
{/if}-->
{if isset($product.imgnew) && $product.imgnew == 1}
	<span class="new-box">
	<span class="new-label">{l s='New'}</span>
	</span>
{/if}

voila  tester sur ps 1.6.0.6

 

EDIT : donc maitenant pour tout tes produits tu dois configurer en BO  oui ou non pour "display img new" que tu peut traduire dans la traduction de la BO

 

@++

 

Loulou66

 

 

 

Une idee pour la version 1.7.2 si cela est aussi possible ?

 

Merci par avance pour votre aide

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More