Jump to content

Aide sur l'affichage de catégories en fiche produit


Recommended Posts

Bonjour à tous,

 

Je suis débutant en prestashop, je fais mon premier site et je rencontre un petit soucis en voulant afficher mes catégories en fiche produit.

 

En page liste, j'ai un bloc qui liste mes catégories produits sur la gauche. Je souhaiterais que ce bloc s'affiche également en fiche produit.

 

Voici le code que j’utilise pour le CategoryController :

<?php
class CategoryController extends CategoryControllerCore
{
public function process()
{
 echo "ici";
 global $cookie;
 $parent = new Category(Tools::getValue('id_category'), intval($cookie->id_lang));
 //self::$smarty->assign('idCategorieCourante',Tools::getValue('id_category'));
 $listing=$parent->getParentsCategories($cookie->id_lang);
 foreach ($listing as $list)
 {
  if($list['level_depth']==2)
  {
self::$smarty->assign('idNosProduits',$list['id_category']);
self::$smarty->assign('nameNosProduits',$list['name']);
self::$smarty->assign('lienNosProduits',$list['link_rewrite']);
break;
  }
  if($list['level_depth']==3)
  {  
//$idParent = $list['id_category'];
//$fils = new Category(Tools::getValue($idParent), intval($cookie->id_lang));
$curentCategory = $this->category;
$parentCategory = $list['id_category'];

$child = new Category((int)($parentCategory), (int)self::$cookie->id_lang);
			$children = $child->getSubCategories((int)self::$cookie->id_lang);

			 self::$smarty->assign('subcategories',$children);
  }
 }

}
}

 

et le code dans mon category.tpl :

<div class="leftColumn grid_2">	  
		{if isset($subcategories)}
		<!-- Subcategories -->
		<div id="subcategories">
			<h1>{$category->name}</h1>
			<ul class="inline_list">
			{foreach from=$subcategories item=subcategory}
			 {if $subcategory.id_category != $category->id}
				<li class="clearfix">
					<a href="{$link->getCategoryLink($subcategory.id_category, $subcategory.link_rewrite)|escape:'htmlall':'UTF-8'}" class="cat_name">
					 <span class="categoryName">{$subcategory.name|escape:'htmlall':'UTF-8'}</span>
				  </a>
					{if $subcategory.description}
						<p class="cat_desc">{$subcategory.description}</p>
					{/if}
				</li>
				{/if}
			{/foreach}
			{if $category->name != $nameNosProduits}
			 <li class="clearfix allProduits">
				 <a href="{$link->getCategoryLink($idNosProduits, $lienNosProduits)|escape:'htmlall':'UTF-8'}" class="cat_name cat_name_all">{l s="Tous les produits"}</a>
			 </li>
		   {/if}
			</ul>
			<br class="clear"/>
		</div>
		{/if}  


		{include file="$tpl_dir./bloc-garanties.tpl"}  
	</div>

 

Lorsque je reporte ces codes dans le controller produit et dans le tpl produit plus rien ne fonctionne. Je suppose que c'est parce que le categorycontroller est manquant dans la page produit, j'ai alors tenté des includes des fichiers php dans le controller produit mais rien n'y fait.

 

Quelqu'un aurait-il une solution pour moi?

 

Merci d'avance!

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

J'ai trouvé la solution :)

Comme quoi, parfois, ca a du bon de réfléchir un peu!

 

Pour info le problème venait du fait que l'ID de la catégorie n'est pas dispo en fiche produit.

 

Résolu avec :

$idProduit = Tools::getValue('id_product');
 $requette = Db::getInstance()->ExecuteS('select id_category_default from '._DB_PREFIX_.'product where id_product='.$idProduit);
 $idCategorie = intval($requette[0]['id_category_default']);

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