Jump to content

Afficher les catégories/sous catégories et leur produits


Rtransat

Recommended Posts

Bonjour à tous,

 

Je suis nouveau avec prestashop; j'essaye de faire un module qui me permet d'avoir un menu qui aurait la structure html comme ceci :

 

<ul>
<li>parent1</li>
<ul>
 <li>enfant1</li>
 <ul>
  <li><a href="">produit1</a></li>
 </ul>
 <li>enfant2</li>
</ul>
<li>parent2</li>
<ul>
 <li>enfant3</li>
 <ul>
  <li><a href="">produit2</a></li>
 </ul>
 <li>enfant4</li>
</ul>
</ul>

 

Pour le moment j'ai juste ça au niveau de la méthode :


public function hookDisplayTop( $params ) {

   $id_lang = (int)$params['cookie']->id_lang;
   //$categories = Category::getCategories();
   $category = new Category();
   $products = $category->getProducts();
   $subcategories = $category->getSubCategories($id_lang);
   echo '<pre>';
   print_r($categories);
   echo '</pre>';

   $html = $this->display( __FILE__, 'menu.tpl' );
   return $html;
}

($subcategories retourne un tableau vide alors que j'en ai une :/ et $products ne retourne rien)

 

Et ça me retourne le résultat sous forme de tableau comme ceci :

 

Array
(
[0] => Array
	(
		[1] => Array
			(
				[infos] => Array
					(
						[id_category] => 1
						[id_parent] => 0
						[id_shop_default] => 1
						[level_depth] => 0
						[nleft] => 1
						[nright] => 12
						[active] => 1
						[date_add] => 2012-11-19 21:57:54
						[date_upd] => 2012-11-19 21:57:54
						[position] => 1
						[is_root_category] => 0
						[id_shop] => 1
						[id_lang] => 1
						[name] => Root
						[description] =>
						[link_rewrite] => root
						[meta_title] =>
						[meta_keywords] =>
						[meta_description] =>
					)
			)
	)
[1] => Array
	(
		[2] => Array
			(
				[infos] => Array
					(
						[id_category] => 2
						[id_parent] => 1
						[id_shop_default] => 1
						[level_depth] => 1
						[nleft] => 2
						[nright] => 11
						[active] => 1
						[date_add] => 2012-11-19 21:57:54
						[date_upd] => 2012-11-19 21:57:54
						[position] => 1
						[is_root_category] => 1
						[id_shop] => 1
						[id_lang] => 1
						[name] => Home
						[description] =>
						[link_rewrite] => home
						[meta_title] =>
						[meta_keywords] =>
						[meta_description] =>
					)
			)
	)
[2] => Array
	(
		[3] => Array
			(
				[infos] => Array
					(
						[id_category] => 3
						[id_parent] => 2
						[id_shop_default] => 1
						[level_depth] => 2
						[nleft] => 3
						[nright] => 4
						[active] => 1
						[date_add] => 2012-11-19 21:58:11
						[date_upd] => 2012-11-19 21:58:11
						[position] => 1
						[is_root_category] => 0
						[id_shop] => 1
						[id_lang] => 1
						[name] => iPods
						[description] => Now that you can buy movies from the iTunes Store and sync them to your iPod, the whole world is your theater.
						[link_rewrite] => music-ipods
						[meta_title] =>
						[meta_keywords] =>
						[meta_description] =>
					)
			)
		[4] => Array
			(
				[infos] => Array
					(
						[id_category] => 4
						[id_parent] => 2
						[id_shop_default] => 1
						[level_depth] => 2
						[nleft] => 5
						[nright] => 6
						[active] => 1
						[date_add] => 2012-11-19 21:58:11
						[date_upd] => 2012-11-19 21:58:11
						[position] => 2
						[is_root_category] => 0
						[id_shop] => 1
						[id_lang] => 1
						[name] => Accessories
						[description] => Wonderful accessories for your iPod
						[link_rewrite] => accessories-ipod
						[meta_title] =>
						[meta_keywords] =>
						[meta_description] =>
					)
			)
		[5] => Array
			(
				[infos] => Array
					(
						[id_category] => 5
						[id_parent] => 2
						[id_shop_default] => 1
						[level_depth] => 2
						[nleft] => 7
						[nright] => 10
						[active] => 1
						[date_add] => 2012-11-19 21:58:11
						[date_upd] => 2012-11-19 21:58:11
						[position] => 3
						[is_root_category] => 0
						[id_shop] => 1
						[id_lang] => 1
						[name] => Laptops
						[description] => The latest Intel processor, a bigger hard drive, plenty of memory, and even more new features all fit inside just one liberating inch. The new Mac laptops have the performance, power, and connectivity of a desktop computer. Without the desk part.
						[link_rewrite] => laptops
						[meta_title] => Apple laptops
						[meta_keywords] => Apple laptops MacBook Air
						[meta_description] => Powerful and chic Apple laptops
					)
			)
	)
[5] => Array
	(
		[6] => Array
			(
				[infos] => Array
					(
						[id_category] => 6
						[id_parent] => 5
						[id_shop_default] => 1
						[level_depth] => 3
						[nleft] => 8
						[nright] => 9
						[active] => 1
						[date_add] => 2012-11-20 18:37:12
						[date_upd] => 2012-11-20 18:37:12
						[position] => 1
						[is_root_category] => 0
						[id_shop] => 1
						[id_lang] => 1
						[name] => Windows
						[description] =>
						[link_rewrite] => windows
						[meta_title] =>
						[meta_keywords] =>
						[meta_description] =>
					)
			)
	)
)

 

Avec cette structure je ne vois pas comment avoir mon ul parent qui contient la catégorie parente et des sous ul avec les catégories enfant. Peut t-on avoir un tableau comme ceci avec une méthode de prestashop (si c'est le cas je ne la trouve pas) :

 

Array
(
CategoryParent1 => Array(
		CategoryEnfant1 => Array(
				Produit1 => array(),
				Produit2 => array()
		)
),
CategoryParent2 => Array(
		CategoryEnfant2 => Array(
				Produit1 => array(),
				Produit2 => array()
		),
		CategoryEnfant3 => Array(
				Produit3 => array(),
				Produit4 => array()
		)
)
)

 

J'avoue que j'ai du mal à trouver ce qu'il faut (je veux éviter les requêtes et le faire avec des méthodes de prestashop si c'est prévu). Et la manque d'une documentation sur l'API me fait défaut même en regardant le core je ne comprend pas toutes les subtilités de ce CMS ^^.

 

Merci d'avance ;)

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

Guest
This topic is now closed to further replies.
×
×
  • Create New...