Bonjour
Debutant dans prestashop, j'aimerais lister les catégories avec les sous catégories comme ci-dessous :
categorie A
- sous catégorie A
- sous catégorie A
Categorie B
- sous catégorie B
- sous catégorie B
Mais chez moi les catégories apparaissent comme ceci :
categorie A
- sous catégorie A
- sous catégorie A
- sous catégorie B
- sous catégorie B
Categorie B
- sous catégorie A
- sous catégorie A
- sous catégorie B
- sous catégorie B
Voici mon code dans le fichier php :
//choisir la langue
$id_lang = (int)($params['cookie']->id_lang);
//requete sql pour afficher le nom des categories
$sql1 = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT `'._DB_PREFIX_.'category`.id_category, name
FROM `'._DB_PREFIX_.'category_lang`, `'._DB_PREFIX_.'category`
WHERE `'._DB_PREFIX_.'category_lang`.id_category = `'._DB_PREFIX_.'category`.id_category
AND level_depth in (1, 2)
AND active = 1
AND id_lang= '.$id_lang.'');
//resultat de la requete
foreach ($sql1 as $row1)
{
$nomcategorie[] = $row1['name'];
//requete sql pour afficher le nom des sous categories
$sql2 = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS('
SELECT name
FROM `'._DB_PREFIX_.'category_lang`, `'._DB_PREFIX_.'category`
WHERE `'._DB_PREFIX_.'category_lang`.id_category = `'._DB_PREFIX_.'category`.id_category
AND level_depth = 3
AND id_lang= '.$id_lang.'
AND active = 1
AND id_parent = '.$row1['id_category'].'');
foreach ($sql2 as $row2)
{
$nomsouscategorie[] = $row2['name'];
}
}
$smarty->assign(array(
'lenomcategorie' => $nomcategorie,
'lenomsouscategorie' => $nomsouscategorie,
));
return $this->display(__FILE__, 'categorie.tpl');
et le code dans le fichier tpl :
{foreach from=$lenomcategorie item=afficherlenomcategorie}
{$afficherlenomcategorie}<br>
{foreach from=$lenomsouscategorie item=afficherlenomsouscategorie}
{$afficherlenomsouscategorie}
{/foreach}
{/foreach}
Merci pour votre aide