Découvrez de façon très simple les actualités et la vie de ce site.

[Prestashop] Lister les (sous) catégories

10

Lister les (sous) catégories sous Prestashop (v1.x)

Lister les catégories:

<?php
include(dirname(__FILE__).'/config/config.inc.php');
require_once(dirname(__FILE__).'/init.php');
 
$categories = Category::getHomeCategories(intval($cookie->id_lang), true);
 
foreach($categories as $categorie)
  echo '<a href="'.__PS_BASE_URI__.((intval(Configuration::get('PS_REWRITING_SETTINGS')) === 1) ? $categorie['link_rewrite'] : 'category.php?id_category='.$categorie['id_category']).'">'.$categorie['name'].'</a><br />';
?>

Lister les sous catégories de façon hiérarchique:

<?php
include(dirname(__FILE__).'/config/config.inc.php');
require_once(dirname(__FILE__).'/init.php');
 
$categTree = Category::getRootCategory()->recurseLiteCategTree(0);
 
function constructTreeNode($node){
    $ret = '<li>'."n";
    $ret .= '<a href="'.$node['link'].'" title="'.strip_tags($node['desc']).'">'.$node['name'].'</a>'."n";
    if(!empty($node['children']))
    {
        $ret .= '<ul>'."n";
        foreach ($node['children'] AS $child)
            $ret .= constructTreeNode($child);
        $ret .= '</ul>'."n";
    }
    $ret .= '</li>'."n";
    return $ret;
}
 
$ulTree = '<div class="tree-top">' . $categTree['name'] . '</div>'."n";
$ulTree .=  '<ul class="tree">'."n";
foreach ($categTree['children'] AS $child)
    $ulTree .= constructTreeNode($child);
$ulTree .=  '</ul>'."n";
 
echo $ulTree;
?>

Lister les sous catégories de façon linéaire

<?php
include(dirname(__FILE__).'/config/config.inc.php');
require_once(dirname(__FILE__).'/init.php');
 
$separator = '|';
 
$categTree = Category::getRootCategory()->recurseLiteCategTree(0);
 
function constructTreeNode($node, $separator)
{
  $return = '&nbsp;<a href="'.$node['link'].'" title="'.strip_tags($node['desc']).'">'.$node['name'].'</a>'."n";
  if(!empty($node['children']))
    foreach ($node['children'] AS $child)
      $return .= constructTreeNode($child, $separator);
  $return .= $separator;
  return $return;
}
 
$tree = '';
foreach ($categTree['children'] AS $child)
    $tree .= constructTreeNode($child, $separator);
echo substr($tree, 0, strlen($tree) - strlen($separator));
?>