Jump to content

[Résolu] Cacher certaines caractéristiques de la fiche technique dans le FO


Recommended Posts

Bonjour

Je voudrais pouvoir cacher certaines caractéristiques sur la fiche technique du produit ... je penses que cela doit être possible en bidouillant le product.tpl ... mais je n'ai pas trouver qui fonctionne parmi tout ce que j'ai pû lire ...Quelqu'un aurai-t-il une idée ??? Voici je penses la partie que je dois modifier:

{if isset($features) && $features}
			<!-- Data sheet -->
			<section class="page-product-box">
				<h3 class="page-product-heading">{l s='Data sheet'}</h3>
				<table class="table-data-sheet">
					{foreach from=$features item=feature}
					<tr class="{cycle values="odd,even"}">
						{if isset($feature.value)}
						<td>{$feature.name|escape:'html':'UTF-8'}</td>
						<td>{$feature.value|escape:'html':'UTF-8'}</td>
						{/if}

J'ai déjà tenter de voir si je ne pouvais afficher qu'une seule caractéristique avec ce tuto et en replacant le "{if isset($features) && $features}" du code ci dessus par

{if isset($features_by_key.3.value) && $features_by_key.3.value}
{$features_by_key.3.name} : {$features_by_key.3.value}

mais cela ne semble pas fonctionner même après le vidage du cache smarty...

Je suis sous prestashop 1.6.0.9 donc merci à vous si vous avez une piste.

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

Bonjour,

 

Il vous suffit de rajouter une exception dans le "{foreach}" pour la valeur que vous ne voulez pas voir apparaitre.

 

exemple avec une exception sur l'identifiant de la caractéristique ("$feature.id_feature") :

{foreach from=$features item=feature}
{if $feature.id_feature == 3}
	<tr class="{cycle values="odd,even"}">
	{if isset($feature.value)}			    
		<td>{$feature.name|escape:'html':'UTF-8'}</td>
		<td>{$feature.value|escape:'html':'UTF-8'}</td>
	{/if}
        </tr>
{/if}
{/foreach}
Link to comment
Share on other sites

Dommage ... tellement simple ...j'y croyais vraiment ... mais malheureusement cela ne fonctionne pas . Ma page produit ne s'affiche avec cet ajout de code .

Voici ce que j'ai fait :

{if isset($features) && $features}
					<!-- Data sheet -->
			<section class="page-product-box">
				<h3 class="page-product-heading">{l s='Data sheet'}</h3>
				<table class="table-data-sheet">
					{foreach from=$features item=feature}
					{if $feature.id_feature ==66} 					
						<tr class="{cycle values="odd,even"}">
						{if isset($feature.value)}
						<td>{$feature.name|escape:'html':'UTF-8'}</td>
						<td>{$feature.value|escape:'html':'UTF-8'}</td>
						{/if}
					</tr>
					{/foreach}
				</table>
			</section>
			<!--end Data sheet -->
		{/if}

J'ai donc juste intercallé : {if $feature.id_feature ==66} dans le product.tpl faut-il faire de même ailleurs??

66 correspondant à ID de ma catégories d'ailleurs est-il normal que les 2 caractéristiques que j'ai pour le moment soit respectivement 65 et 66 ... Le fait  d'il soit numéroté si loin dans la suite numérique est-il dû au fait que je n'ai pas arrêté d'importer et de supprimer mes articles ???

En tout cas merci à vous pour votre réponse ... mais dommage que celle-ci ne fonctionne pas ... chez moi tout du moins.

Cependant je me pose une question par rapport à votre proposition cette variable $feature.id_feature n'est déclarée nulle part dans le product.tpl il y $feature.name et $feature.value, n'est-ce pas là que pourrai se trouver le souci???

Link to comment
Share on other sites

Bien vu !!!! un super merci cela fonctionne!!!

J'ose une dernière petite demande j'ai tenté de cacher  2 caractéristiques donc j'ai simplement remis un 2eme "{if $feature.id_feature ==66}" pour cacher la caractéristique 66 mais cela ne fonctionne pas ... page blanche à nouveau ... connaîtriez-vous l'astuce pour pouvoir en cacher 2, 3 ...

{if isset($features) && $features}
					<!-- Data sheet -->
			<section class="page-product-box">
				<h3 class="page-product-heading">{l s='Data sheet'}</h3>
				<table class="table-data-sheet">
					{foreach from=$features item=feature}
					{if $feature.id_feature ==65} 
                                        {if $feature.id_feature ==66}				
						<tr class="{cycle values="odd,even"}">
						{if isset($feature.value)}
						<td>{$feature.name|escape:'html':'UTF-8'}</td>
						<td>{$feature.value|escape:'html':'UTF-8'}</td>
						{/if}
					</tr>
					{/if}
					{/foreach}
				</table>
			</section>
			<!--end Data sheet -->
		{/if}
Link to comment
Share on other sites

OK je me réponds je viens de trouver : si cela peut aider ...

{if $feature.id_feature ==65 & $feature.id_feature ==66}

cache les caractéristique 65 et 66!!

Encore un grand merci à vous !!! Je vais pouvoir avancer dans ma boutique grâce à vous.

Bonne fin de journée!!

Link to comment
Share on other sites

Permettez-moi de remettre en question la solution.

 

Je crois que votre code cache toutesl es feature, pas seulement les IDs 65 et 66. Votre code dit, rapidement :

 

Si le ID de la feature EST ÉGALE à 65 et à 66, affiche le contenu.

 

Le bon code serait

{if $feature.id_feature != 65 && $feature.id_feature != 66}

Ici on précise :

Si le ID est différent de 65 et 66, affiche la caractéristique.

 

Vérifié si vos autre caractéristiques apparaissent, avec le code {if $feature.id_feature ==65 & $feature.id_feature ==66}, j'en doute...

 

Martin

  • Like 1
Link to comment
Share on other sites

Bon et bien je remercie grandement Julien et Martin pour leur précieuse aide ... c'est vraiment tiptop ...Exactement ce que je cherchais à faire depuis quelques temps ...

Encore un grand merci à vous 2!!!

Bonne fin de journée ...

Link to comment
Share on other sites

  • 5 months later...

Bonjour. Une petite quesiton, je suis sous PS 1.6, la solution fonctionne parfaitement merci à tous. Cependant, si il n'y a qu'une caractérisque et que c'est justement elle que l'on souhaite cacher, l'onglet "Fiche technique" reste présent. Y'a t'il une possibilité de le cacher dans ce cas ?

Link to comment
Share on other sites

Bonjour

Une petite règle CSS display:none  bien placée dans le product.tpl devrait je penses faire l'affaire:

Dans la section ----Data Sheet ---

Modifier:

<section class="page-product-box" style="margin-bottom: inherit">

 

Par

 

<section class="page-product-box" style="margin-bottom: inherit; display:none">

Link to comment
Share on other sites

  • 2 years later...

Bonjour,

cette fonctionnalité marche très bien pour moi. Seulement je voudrais que cette caractéristique soit affichée si les personnes sont connectées sur leur compte client.

Quelqu'un aurait il une idée ? Avec un If logged j'imagine mais je ne sais pas comment le faire.

Merci de votre aide !

Link to comment
Share on other sites

  • 1 year later...

Bonjour,

je voudrais cacher 3 caractéristique, j'ai donc testé avec:

{foreach from=$features item=feature}
						{if $feature.id_feature != 33 && $feature.id_feature != 34 && $feature.id_feature != 35}
						<tr class="{cycle values="odd,even"}">
							{if isset($feature.value)}              
							<td>{$feature.name|escape:'html':'UTF-8'}:</td>
							<td>{$feature.value|escape:'html':'UTF-8'}</td>
							{/if}
						</tr>
{/if}
						{/foreach}

mais elle apparaissent toujours.

presta 1.6.1

Une piste?

merci

Link to comment
Share on other sites

  • 4 months later...

Pour les personnes sous PS 1.7, j'ai fais la manip avec quel fichier qui ne sont pas les même. voilà ce que j'ai fais (est qui fonctionne !)

 

·       Chercher le fichier suivant :  /……/themes/VOTRETHEME/templates/catalog/_partials/ product-details.tpl

·       Aller ligne 53 chercher : {block name='product_features'}

·       Rajouter :  {if $feature.id_feature != 13} (si c’est l’ID 13 que vous voulez masquer) en ligne 59

·       Rajouter : {/if} en ligne 52

{block name='product_features'}
    {if $product.grouped_features}
      <section class="product-features">
        <p class="h6">{l s='Data sheet' d='Shop.Theme.Catalog'}</p>
        <dl class="data-sheet">
          {foreach from=$product.grouped_features item=feature}
          {if $feature.id_feature != 13}
            <dt class="name">{$feature.name}</dt>
            <dd class="value">{$feature.value|escape:'htmlall'|nl2br nofilter}</dd>
        	{/if}
          {/foreach}
        </dl>
      </section>
    {/if}
  {/block}

Voilà, marche a merveille chez moi. (avec PS 1.7.6.2)

 

 

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...