kevd Posted April 20, 2011 Share Posted April 20, 2011 Bonsoir à tous,voila je suis en train de développer un menu horizontal déroulant pour mon premier site en prestashop.J'ai récupéré le module blockcategoriestop du themes PS Alternatif que j'ai adapté à mes besoins.Le code actuel à modifier est le suivant: > {foreach from=$blockcategoriestop_categories item=blockcategoriestop_category} getCategoryLink($blockcategoriestop_category.id_category, $blockcategoriestop_category.link_rewrite, $cookie->id_lang )}"> {$blockcategoriestop_category.name} </pre> <ul> // lister les sous catégories de la catégorie X </ul> <br><br> {/foreach édit: le code ici se transforme d'une facon bizarre, le premier est en fait il y a également le fichier .php du module qu'il faut modifier je suppose qui comporte la fonction suivante: public function hookTop($params) { global $smarty, $cookie; $id_customer = (int)$params['cookie']->id_customer; $id_group = $id_customer ? Customer::getDefaultGroupId($id_customer) : _PS_DEFAULT_CUSTOMER_GROUP_; $id_lang = (int)$params['cookie']->id_lang; $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT c.*, cl.* FROM `'._DB_PREFIX_.'category` c LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND `id_lang` = '.$id_lang.') LEFT JOIN `'._DB_PREFIX_.'category_group` cg ON (cg.`id_category` = c.`id_category`) WHERE level_depth = 1 AND c.`active` = 1 AND cg.`id_group` = '.$id_group.' ORDER BY c.`position` ASC'); $smarty->assign('blockcategoriestop_categories', $result); return $this->display(__FILE__, 'blockcategoriestop.tpl'); } Voila c'est peut être un peu gros mais je débute sous prestashop et j'avoue être un peu perdu.Merci d'avance pour vos réponses Link to comment Share on other sites More sharing options...
Broceliande Posted April 21, 2011 Share Posted April 21, 2011 Bonsoir , Tu dois pouvoir compléter le tableau de catégories ainsi :Après $result = Db::getInstance..... en ajoutant $maxDepth=5 ; /* profondeur souhaitée */ foreach($result as &$category) { $catObj = new Category($category['id_category']); $category=$catObj->recurseLiteCategTree($maxDepth, 0,$id_lang); } ensuite pour simuler la récursivité dans smarty , tu dois créer un fichier .tpl supplémentaire , ex subs.tpl , dans lequel le fichier s'inclut lui même.Et tu inclus ce fichier dans ton bloc ulUn exemple clair se trouve dans le module natif blockcategories , il te suffit d'étudier de près les fichier blockcategories et bockcategories-tree-branch , sachant que la variable qui contient le tableau dans ton cas est assignée à blockcategoriestop_categories et non blockCategTree . Il te suffit de remplacer ... Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now