Cyril 74 Posted October 28, 2011 Share Posted October 28, 2011 bonjour, voila, d'habitude je trouve la solution seul, dans cette très grande source de renseignements, et au passage, merci à tous pour vos nombreuses réponses et astuces pour chaque choses dans prestashop. Cependant, la je n'est pas trouvé de réponse, je viens donc vers vous, demander votre aide. Je cherche comment faire pour afficher le nombre de produits dans catégorie ainsi que les sous catégories. Serait il possible aussi d'ajouter le nombre total de produits quelque parts sur le site? merci d'avance. Cyril Link to comment Share on other sites More sharing options...
papich Posted October 28, 2011 Share Posted October 28, 2011 Bonjour sous quelle version de prestashop es tu? Quand tu parles d'affichage tu parles pour le front ou le back office? tu peux voir le nombre de produit ici en front office sur la demo Link to comment Share on other sites More sharing options...
Cyril 74 Posted October 28, 2011 Author Share Posted October 28, 2011 Bonjour alors non je souhaiterais avoir le nombre de produits dans chaque sou catégories, et catégorie si possible voici un exemple -> http://smallcab.net/product_info.php?cPath=21_33&products_id=125&language=fr Donc un affichage dans le front office je suis sous prestashop version 1.4.4.1 merci d'avance pour ta/vos réponses Link to comment Share on other sites More sharing options...
Cyril 74 Posted October 28, 2011 Author Share Posted October 28, 2011 personne? ca doit bien etre faisable pourtant Link to comment Share on other sites More sharing options...
papich Posted October 29, 2011 Share Posted October 29, 2011 Tu parles donc du nombre de produit dans le menu? Cela dépend du module catégorie utilisé je pense. Link to comment Share on other sites More sharing options...
Eupholis Posted November 2, 2011 Share Posted November 2, 2011 Bonjour j'ai exactement le même soucis, si quelqu'un a une solution je suis preneur Link to comment Share on other sites More sharing options...
Cyril 74 Posted November 5, 2011 Author Share Posted November 5, 2011 je n'est toujours pas trouvé la solution a ce fameux problème, mais si je trouve une solution, je viendrais la poster ici pour que ca serve à d'autres personnes Link to comment Share on other sites More sharing options...
AkrOpad Posted December 2, 2011 Share Posted December 2, 2011 (edited) Si ça peut aider ! Test sous Prestashop 1.4.5.1 Dans modules/blockcategories/blockcategories.php Dans : public function getTree($resultParents, $resultIds, $maxDepth, $id_category = 1, $currentDepth = 0) Trouvez : return array('id' => $id_category, 'link' => $link->getCategoryLink($id_category, $resultIds[$id_category]['link_rewrite']), 'name' => $resultIds[$id_category]['name'], 'desc'=> $resultIds[$id_category]['description'], 'children' => $children); Remplacez le code par celui-ci : return array('id' => $id_category, 'link' => $link->getCategoryLink($id_category, $resultIds[$id_category]['link_rewrite']), 'name' => $resultIds[$id_category]['name'], 'desc'=> $resultIds[$id_category]['description'], 'children' => $children, 'product_count' => $resultIds[$id_category]['product_count']); Dans : public function hookLeftColumn($params) Trouvez la boucle : foreach ($result as &$row) { $resultParents[$row['id_parent']][] = &$row; $resultIds[$row['id_category']] = &$row; } Remplacez la par celle-ci : foreach ($result as &$row) { if($row['id_category'] != 1) { $result_product_count = Db::getInstance()->ExecuteS(' SELECT COUNT(ac.`id_product`) as totalProducts FROM `'._DB_PREFIX_.'category_product` ac LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = ac.`id_product` WHERE ac.`id_category` = '.$row['id_category'].' AND p.`active` = 1'); $row['product_count'] = $result_product_count[0]['totalProducts']; } $resultParents[$row['id_parent']][] = &$row; $resultIds[$row['id_category']] = &$row; } Dans themes/votre_theme/category-tree-branch.tpl Rajouter ceci : ({$node.product_count}) après le lien : <a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a> Edited February 9, 2012 by ichigoK (see edit history) Link to comment Share on other sites More sharing options...
Golgo Posted February 5, 2012 Share Posted February 5, 2012 bonjour Quelqu'un a testé ce que ichigok a noté ? Car pas envie de mettre le zouk sur mon site. Merci en à lui en tt cas Link to comment Share on other sites More sharing options...
Golgo Posted February 7, 2012 Share Posted February 7, 2012 je viens de tester, ca ne fonctionne pas. J'ai bien suivi ce que ichigok a inscrit mais il ne se passe rien (j'ai bien vider mon dossier compil de smarty) J'ai eu une hésitation: Dans themes/votre_theme/modules/blockcategories/category-tree-branch.tpl Rajouter ceci après le lien : ({$node.product_count}) ce fichier tpl etait dans le dossier principal de mon theme (pas de dossier module) et quel lien dont il parle ? Merci Link to comment Share on other sites More sharing options...
AkrOpad Posted February 9, 2012 Share Posted February 9, 2012 je viens de tester, ca ne fonctionne pas. J'ai bien suivi ce que ichigok a inscrit mais il ne se passe rien (j'ai bien vider mon dossier compil de smarty) J'ai eu une hésitation: ce fichier tpl etait dans le dossier principal de mon theme (pas de dossier module) et quel lien dont il parle ? Merci Après le lien : <a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</a> Link to comment Share on other sites More sharing options...
Golgo Posted February 10, 2012 Share Posted February 10, 2012 Merci pour la précision mais le résultat est toujours le même. Ma version de presta est la : PrestaShop™ 1.4.4.1 Link to comment Share on other sites More sharing options...
Skyd Posted March 18, 2012 Share Posted March 18, 2012 Testé sur une 1.4.6.2 Ca fonctionne sans pb en suivant la modif d'IchigoK. Link to comment Share on other sites More sharing options...
bhundu Posted May 20, 2012 Share Posted May 20, 2012 Bonjour, Cela ne fonctionne pas chez moi (1.4.8.2) Link to comment Share on other sites More sharing options...
Rtransat Posted November 27, 2012 Share Posted November 27, 2012 J'ai essayé la solution dite plus haut, ça fonctionne sans vraiment fonctionner. J'ai bien le nombre de produit à côté des catégories (à part les enfant ou j'ai 0), mais j'ai surtout une répétition d'erreur comme quoi l'index product_count n'existe pas dans à la ligne ou il y a le return array(...., 'product_count' => $resultIds[$id_category]['product_count']); Dans la table il n'y a pas de colonne product_count :/ Je suis sous la version 1.5.2 Link to comment Share on other sites More sharing options...
zasami Posted August 25, 2013 Share Posted August 25, 2013 j'ai essayé la solution propose et sa ne fonctionne pas PS 1.5.4.1 si il'ya une solution merci de m'oriente ... Link to comment Share on other sites More sharing options...
paulo198851 Posted September 23, 2013 Share Posted September 23, 2013 Bonjour, j'ai réussi à le faire avec le code sur ce site. Version de PrestaShop: 1.5.5.0 Fichier : blockcategories.php ligne 180 : foreach ($result as &$row) { $resultParents[$row['id_parent']][] = &$row; $resultIds[$row['id_category']] = &$row; } Changer en : foreach ($result as &$row) { if($row['id_category'] != 1) { $result_product_count = Db::getInstance()->ExecuteS(' SELECT COUNT(ac.`id_product`) as totalProducts FROM `'._DB_PREFIX_.'category_product` ac LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = ac.`id_product` WHERE ac.`id_category` = '.$row['id_category'].' AND p.`active` = 1'); $row['product_count'] = $result_product_count[0]['totalProducts']; } $resultParents[$row['id_parent']][] = &$row; $resultIds[$row['id_category']] = &$row; } Fichier : category-tree-branch.tpl.php ligne 27 : <a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|strip_tags|trim|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'} {$node.nombreProduits|escape:'htmlall':'UTF-8'}<span class='NombreProduits'>({$node.product_count})</span></a> Rajouter : <span class='NombreProduits'>({$node.product_count})</span> Et pour un peu de style fichier css : .NombreProduits {position: absolute;left:155px} Voila, Cdt. Link to comment Share on other sites More sharing options...
Nogir Posted January 23, 2014 Share Posted January 23, 2014 Bonjour Paulo, je cherche ça depuis longtemps ! J'ai suivi tes instructions mais rien ? Tu as un site où on peut le voir ? Tu mets où le style css ? Merci d'avance. Link to comment Share on other sites More sharing options...
Nogir Posted January 28, 2014 Share Posted January 28, 2014 Bonjour, j'ai encore essayé.Rien, Modifié dans modules/catégories/blockcategorie.php et modules/catégories/category-tree-branch.tpl. Où est la page category-tree-branch.tpl.php svp ? Merci CTRL + Q to Enable/Disable GoPhoto.it Link to comment Share on other sites More sharing options...
jgd24 Posted February 14, 2014 Share Posted February 14, 2014 Bonjour à tous, J'ai essayé la dernière manip. J'ai bien des paranthèses qui apparaissent à coté des intéitulés des catégories dans le bloc catégories, laissant penser que les modifications sont bien prises en charges, cependant, il n'y a aucun chiffre dans les paranthèses. Ceci étant dis, il y a une manip que je n'ai pas faite, c'est ce copier le code dans le css car, je ne sais pas où le mettre. J'ai bien regardé dans le bloccategories.css, mais même là, je ne vois pas où le mettre. Serait-il possible d'avoir une petite précision? Merci beaucoup Link to comment Share on other sites More sharing options...
Nogir Posted February 14, 2014 Share Posted February 14, 2014 Bonjour Jgd24, voilà comment j'ai résolu le problème (avec de l'aide) ;Ouvrir modules/blockcatégories/blockcategories.ph changer le code comme suit : <?php /* * 2007-2013 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2013 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ if (!defined('_PS_VERSION_')) exit; class BlockCategories extends Module { public function __construct() { $this->name = 'blockcategories'; $this->tab = 'front_office_features'; $this->version = '2.0'; $this->author = 'PrestaShop'; parent::__construct(); $this->displayName = $this->l('Categories block'); $this->description = $this->l('Adds a block featuring product categories.'); } public function install() { if (!parent::install() || !$this->registerHook('leftColumn') || !$this->registerHook('footer') || !$this->registerHook('header') || // Temporary hooks. Do NOT hook any module on it. Some CRUD hook will replace them as soon as possible. !$this->registerHook('categoryAddition') || !$this->registerHook('categoryUpdate') || !$this->registerHook('categoryDeletion') || !$this->registerHook('actionAdminMetaControllerUpdate_optionsBefore') || !$this->registerHook('actionAdminLanguagesControllerStatusBefore') || !Configuration::updateValue('BLOCK_CATEG_MAX_DEPTH', 4) || !Configuration::updateValue('BLOCK_CATEG_DHTML', 1)) return false; return true; } public function uninstall() { if (!parent::uninstall() || !Configuration::deleteByName('BLOCK_CATEG_MAX_DEPTH') || !Configuration::deleteByName('BLOCK_CATEG_DHTML')) return false; return true; } public function getContent() { $output = '<h2>'.$this->displayName.'</h2>'; if (Tools::isSubmit('submitBlockCategories')) { $maxDepth = (int)(Tools::getValue('maxDepth')); $dhtml = Tools::getValue('dhtml'); $nbrColumns = Tools::getValue('nbrColumns', 4); if ($maxDepth < 0) $output .= '<div class="alert error">'.$this->l('Maximum depth: Invalid number.').'</div>'; elseif ($dhtml != 0 && $dhtml != 1) $output .= '<div class="alert error">'.$this->l('Dynamic HTML: Invalid choice.').'</div>'; else { Configuration::updateValue('BLOCK_CATEG_MAX_DEPTH', (int)($maxDepth)); Configuration::updateValue('BLOCK_CATEG_DHTML', (int)($dhtml)); Configuration::updateValue('BLOCK_CATEG_NBR_COLUMN_FOOTER', $nbrColumns); Configuration::updateValue('BLOCK_CATEG_SORT_WAY', Tools::getValue('BLOCK_CATEG_SORT_WAY')); Configuration::updateValue('BLOCK_CATEG_SORT', Tools::getValue('BLOCK_CATEG_SORT')); $this->_clearBlockcategoriesCache(); $output .= '<div class="conf confirm">'.$this->l('Settings updated').'</div>'; } } return $output.$this->displayForm(); } public function displayForm() { return ' <form action="'.Tools::safeOutput($_SERVER['REQUEST_URI']).'" method="post"> <fieldset> <legend><img src="'.$this->_path.'logo.gif" alt="" title="" />'.$this->l('Settings').'</legend> <label>'.$this->l('Maximum depth').'</label> <div class="margin-form"> <input type="text" name="maxDepth" value="'.(int)Configuration::get('BLOCK_CATEG_MAX_DEPTH').'" /> <p class="clear">'.$this->l('Set the maximum depth of sublevels displayed in this block (0 = infinite)').'</p> </div> <label>'.$this->l('Dynamic').'</label> <div class="margin-form"> <input type="radio" name="dhtml" id="dhtml_on" value="1" '.(Tools::getValue('dhtml', Configuration::get('BLOCK_CATEG_DHTML')) ? 'checked="checked" ' : '').'/> <label class="t" for="dhtml_on"> <img src="../img/admin/enabled.gif" alt="'.$this->l('Enabled').'" title="'.$this->l('Enabled').'" /></label> <input type="radio" name="dhtml" id="dhtml_off" value="0" '.(!Tools::getValue('dhtml', Configuration::get('BLOCK_CATEG_DHTML')) ? 'checked="checked" ' : '').'/> <label class="t" for="dhtml_off"> <img src="../img/admin/disabled.gif" alt="'.$this->l('Disabled').'" title="'.$this->l('Disabled').'" /></label> <p class="clear">'.$this->l('Activate dynamic (animated) mode for sublevels.').'</p> </div> <label>'.$this->l('Sort').'</label> <div class="margin-form"> <input type="radio" name="BLOCK_CATEG_SORT" id="sort_on" value="0" '.(!Tools::getValue('BLOCK_CATEG_SORT', Configuration::get('BLOCK_CATEG_SORT')) ? 'checked="checked" ' : '').'/> <label class="t" for="sort_on"> <img src="../modules/'.$this->name.'/sort_number.png" alt="'.$this->l('Enabled').'" title="'.$this->l('By position').'" />'.$this->l('By position').'</label> <input type="radio" name="BLOCK_CATEG_SORT" id="sort_off" value="1" '.(Tools::getValue('BLOCK_CATEG_SORT', Configuration::get('BLOCK_CATEG_SORT')) ? 'checked="checked" ' : '').'/> <label class="t" for="sort_off"> <img src="../modules/'.$this->name.'/sort_alphabet.png" alt="'.$this->l('Disabled').'" title="'.$this->l('By name').'" />'.$this->l('By name').'</label> - <select name="BLOCK_CATEG_SORT_WAY"> <option value="0" '.(!Tools::getValue('BLOCK_CATEG_SORT_WAY', Configuration::get('BLOCK_CATEG_SORT_WAY')) ? 'selected="selected" ' : '').'>'.$this->l('Ascending').'</option> <option value="1" '.(Tools::getValue('BLOCK_CATEG_SORT_WAY', Configuration::get('BLOCK_CATEG_SORT_WAY')) ? 'selected="selected" ' : '').'>'.$this->l('Descending').'</option> </select> </div> <label>'.$this->l('How many footer columns would you like?').'</label> <div class="margin-form"> <input type="text" name="nbrColumns" value="'.(int)Configuration::get('BLOCK_CATEG_NBR_COLUMN_FOOTER').'" /> <p class="clear">'.$this->l('Define the number of footer columns.').'</p> </div> <center><input type="submit" name="submitBlockCategories" value="'.$this->l('Save').'" class="button" /></center> </fieldset> </form>'; } public function getTree($resultParents, $resultIds, $maxDepth, $id_category = null, $currentDepth = 0) { if (is_null($id_category)) $id_category = $this->context->shop->getCategory(); $category = new CategoryCore($id_category); $children = array(); if (isset($resultParents[$id_category]) && count($resultParents[$id_category]) && ($maxDepth == 0 || $currentDepth < $maxDepth)) foreach ($resultParents[$id_category] as $subcat) $children[] = $this->getTree($resultParents, $resultIds, $maxDepth, $subcat['id_category'], $currentDepth + 1); if (!isset($resultIds[$id_category])) return false; $return = array('id' => $id_category, 'link' => $this->context->link->getCategoryLink($id_category, $resultIds[$id_category]['link_rewrite']), 'name' => $resultIds[$id_category]['name'], 'desc'=> $resultIds[$id_category]['description'], 'children' => $children, 'products' => $category->getProducts($this->context->customer->id_lang, 1, 1000000, null, null, true)); return $return; } public function hookLeftColumn($params) { if (!$this->isCached('blockcategories.tpl', $this->getCacheId())) { // Get all groups for this customer and concatenate them as a string: "1,2,3..." $groups = implode(', ', Customer::getGroupsStatic((int)$this->context->customer->id)); $maxdepth = Configuration::get('BLOCK_CATEG_MAX_DEPTH'); if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT DISTINCT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite FROM `'._DB_PREFIX_.'category` c INNER JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = '.(int)$this->context->language->id.Shop::addSqlRestrictionOnLang('cl').') INNER JOIN `'._DB_PREFIX_.'category_shop` cs ON (cs.`id_category` = c.`id_category` AND cs.`id_shop` = '.(int)$this->context->shop->id.') WHERE (c.`active` = 1 OR c.`id_category` = '.(int)Configuration::get('PS_HOME_CATEGORY').') AND c.`id_category` != '.(int)Configuration::get('PS_ROOT_CATEGORY').' '.((int)$maxdepth != 0 ? ' AND `level_depth` <= '.(int)$maxdepth : '').' AND c.id_category IN (SELECT id_category FROM `'._DB_PREFIX_.'category_group` WHERE `id_group` IN ('.pSQL($groups).')) ORDER BY `level_depth` ASC, '.(Configuration::get('BLOCK_CATEG_SORT') ? 'cl.`name`' : 'cs.`position`').' '.(Configuration::get('BLOCK_CATEG_SORT_WAY') ? 'DESC' : 'ASC'))) return; $resultParents = array(); $resultIds = array(); foreach ($result as &$row) { $resultParents[$row['id_parent']][] = &$row; $resultIds[$row['id_category']] = &$row; } $blockCategTree = $this->getTree($resultParents, $resultIds, Configuration::get('BLOCK_CATEG_MAX_DEPTH')); unset($resultParents, $resultIds); $id_category = (int)Tools::getValue('id_category'); $id_product = (int)Tools::getValue('id_product'); $isDhtml = (Configuration::get('BLOCK_CATEG_DHTML') == 1 ? true : false); if (Tools::isSubmit('id_category')) { $this->context->cookie->last_visited_category = $id_category; $this->smarty->assign('currentCategoryId', $this->context->cookie->last_visited_category); } if (Tools::isSubmit('id_product')) { if (!isset($this->context->cookie->last_visited_category) || !Product::idIsOnCategoryId($id_product, array('0' => array('id_category' => $this->context->cookie->last_visited_category))) || !Category::inShopStatic($this->context->cookie->last_visited_category, $this->context->shop)) { $product = new Product($id_product); if (isset($product) && Validate::isLoadedObject($product)) $this->context->cookie->last_visited_category = (int)$product->id_category_default; } $this->smarty->assign('currentCategoryId', (int)$this->context->cookie->last_visited_category); } $this->smarty->assign('blockCategTree', $blockCategTree); if (file_exists(_PS_THEME_DIR_.'modules/blockcategories/blockcategories.tpl')) $this->smarty->assign('branche_tpl_path', _PS_THEME_DIR_.'modules/blockcategories/category-tree-branch.tpl'); else $this->smarty->assign('branche_tpl_path', _PS_MODULE_DIR_.'blockcategories/category-tree-branch.tpl'); $this->smarty->assign('isDhtml', $isDhtml); } $display = $this->display(__FILE__, 'blockcategories.tpl', $this->getCacheId()); return $display; } protected function getCacheId($name = null) { parent::getCacheId($name); $groups = implode(', ', Customer::getGroupsStatic((int)$this->context->customer->id)); $id_product = (int)Tools::getValue('id_product', 0); $id_category = (int)Tools::getValue('id_category', 0); $id_lang = (int)$this->context->language->id; return 'blockcategories|'.(int)Tools::usingSecureMode().'|'.$this->context->shop->id.'|'.$groups.'|'.$id_lang.'|'.$id_product.'|'.$id_category; } public function hookFooter($params) { // Get all groups for this customer and concatenate them as a string: "1,2,3..." if (!$this->isCached('blockcategories_footer.tpl', $this->getCacheId())) { $maxdepth = Configuration::get('BLOCK_CATEG_MAX_DEPTH'); $groups = implode(', ', Customer::getGroupsStatic((int)$this->context->customer->id)); if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT DISTINCT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite FROM `'._DB_PREFIX_.'category` c '.Shop::addSqlAssociation('category', 'c').' LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = '.(int)$this->context->language->id.Shop::addSqlRestrictionOnLang('cl').') LEFT JOIN `'._DB_PREFIX_.'category_group` cg ON (cg.`id_category` = c.`id_category`) WHERE (c.`active` = 1 OR c.`id_category` = 1) '.((int)($maxdepth) != 0 ? ' AND `level_depth` <= '.(int)($maxdepth) : '').' AND cg.`id_group` IN ('.pSQL($groups).') ORDER BY `level_depth` ASC, '.(Configuration::get('BLOCK_CATEG_SORT') ? 'cl.`name`' : 'category_shop.`position`').' '.(Configuration::get('BLOCK_CATEG_SORT_WAY') ? 'DESC' : 'ASC'))) return; $resultParents = array(); $resultIds = array(); foreach ($result as &$row) { $resultParents[$row['id_parent']][] = &$row; $resultIds[$row['id_category']] = &$row; } //$nbrColumns = Configuration::get('BLOCK_CATEG_NBR_COLUMNS_FOOTER'); $nbrColumns = Configuration::get('BLOCK_CATEG_NBR_COLUMN_FOOTER'); if (!$nbrColumns) $nbrColumns = 3; $numberColumn = abs(count($result) / $nbrColumns); $widthColumn = floor(100 / $nbrColumns); $this->smarty->assign('numberColumn', $numberColumn); $this->smarty->assign('widthColumn', $widthColumn); $blockCategTree = $this->getTree($resultParents, $resultIds, Configuration::get('BLOCK_CATEG_MAX_DEPTH')); unset($resultParents, $resultIds); $isDhtml = (Configuration::get('BLOCK_CATEG_DHTML') == 1 ? true : false); $id_category = (int)Tools::getValue('id_category'); $id_product = (int)Tools::getValue('id_product'); if (Tools::isSubmit('id_category')) { $this->context->cookie->last_visited_category = $id_category; $this->smarty->assign('currentCategoryId', $this->context->cookie->last_visited_category); } if (Tools::isSubmit('id_product')) { if (!isset($this->context->cookie->last_visited_category) || !Product::idIsOnCategoryId($id_product, array('0' => array('id_category' => $this->context->cookie->last_visited_category)))) { $product = new Product($id_product); if (isset($product) && Validate::isLoadedObject($product)) $this->context->cookie->last_visited_category = (int)($product->id_category_default); } $this->smarty->assign('currentCategoryId', (int)($this->context->cookie->last_visited_category)); } $this->smarty->assign('blockCategTree', $blockCategTree); if (file_exists(_PS_THEME_DIR_.'modules/blockcategories/blockcategories_footer.tpl')) $this->smarty->assign('branche_tpl_path', _PS_THEME_DIR_.'modules/blockcategories/category-tree-branch.tpl'); else $this->smarty->assign('branche_tpl_path', _PS_MODULE_DIR_.'blockcategories/category-tree-branch.tpl'); $this->smarty->assign('isDhtml', $isDhtml); } $display = $this->display(__FILE__, 'blockcategories_footer.tpl', $this->getCacheId()); return $display; } public function hookRightColumn($params) { return $this->hookLeftColumn($params); } public function hookHeader() { $this->context->controller->addJS(_THEME_JS_DIR_.'tools/treeManagement.js'); $this->context->controller->addCSS(($this->_path).'blockcategories.css', 'all'); } private function _clearBlockcategoriesCache() { $this->_clearCache('blockcategories.tpl'); $this->_clearCache('blockcategories_footer.tpl'); } public function hookCategoryAddition($params) { $this->_clearBlockcategoriesCache(); } public function hookCategoryUpdate($params) { $this->_clearBlockcategoriesCache(); } public function hookCategoryDeletion($params) { $this->_clearBlockcategoriesCache(); } public function hookActionAdminMetaControllerUpdate_optionsBefore($params) { $this->_clearBlockcategoriesCache(); } } Modifications lignes 146 et 156. Puis Ouvrir theme/default/category-tree-branch.tpl changer le code comme suit : {* * 2007-2013 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License (AFL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/afl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2013 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} <li {if isset($last) && $last == 'true'}class="last"{/if}> <a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|strip_tags|trim|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'} ({$node.products})</a> {if $node.children|@count > 0} <ul> {foreach from=$node.children item=child name=categoryTreeBranch} {if $smarty.foreach.categoryTreeBranch.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {include file="$branche_tpl_path" node=$child last='false'} {/if} {/foreach} </ul> {/if} </li> modifications ligne 28. Ca fonctionne sur ce site : http://www.madagemstones.com Link to comment Share on other sites More sharing options...
jgd24 Posted February 14, 2014 Share Posted February 14, 2014 Ca y est, j'ai réussi. Au cas où, si ca peut aider quelqu'un, j'ai utilisé la méthode de paulo, avec laquelle j'ai un peu galéré (peut-être la différence de version - je sous sous 1.5.6), et voilà ce que j'ai : 1. Contenu complet du CODE de mon fichier category.tree.branch.tpl (qui se trouve dans mon thème/modules/blockcategories) : <li {if isset($last) && $last == 'true'}class="last"{/if}> <a href="{$node.link|escape:'htmlall':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|strip_tags|trim|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'} {if $count}({$node.nbr}){/if} </a> {if $node.children|@count > 0} <ul> {foreach from=$node.children item=child name=categoryTreeBranch} {if $smarty.foreach.categoryTreeBranch.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {include file="$branche_tpl_path" node=$child last='false'} {/if} {/foreach} </ul> {/if}</li> 2. Dans le fichier blockcategories.php (qui se trouve dans racine/modules/blockcategories), j'ai laissé le fichier d'origine. 3. Concernant blockcategories.css qui se trouve dans montheme/css/modules/blockcategories, j'ai inséré la ligne de Paulo en après la ligne 9 (en créant donc une ligne 10) en changeant le point du début par un dièse ce qui donne : #NombreProduits {position: absolute;left:155px} Et ca fonctionne nickel. Si celà peut aider. Bon courage à tous. Link to comment Share on other sites More sharing options...
paulo198851 Posted May 9, 2014 Share Posted May 9, 2014 Bonjour, Désolé je n'avais pas suivis la suite de la conversation du coup je n'ai pas pu aider. Je recherche cette méthode pour une multiboutique, quelqu'un connait la variable qui permet de connaitre l'id du shop en cours ? Merci Link to comment Share on other sites More sharing options...
paulo198851 Posted May 9, 2014 Share Posted May 9, 2014 J'ai trouvé ma réponse et j'ai adapté mon code. Il suffit de mofidier la requète SQL, changer le from vers la table product_shop et renseginer le shop dans une clause WHERE. $result_product_count = Db::getInstance()->ExecuteS(' SELECT COUNT(ac.`id_product`) as totalProducts FROM `'._DB_PREFIX_.'category_product` ac LEFT JOIN `'._DB_PREFIX_.'product_shop` p ON p.`id_product` = ac.`id_product` WHERE ac.`id_category` = '.$row['id_category'].' AND p.`active` = 1 AND p.`id_shop` ='.(int)$this->context->shop->id); $row['product_count'] = $result_product_count[0]['totalProducts']; Voila si vous avez besoin d'aide, n'hésitez pas à me demander. CDT Link to comment Share on other sites More sharing options...
yf69380fr Posted October 23, 2014 Share Posted October 23, 2014 Merci à tous pour ces recherches... Je touche au but, mais il me manque cependant une dernière info... J'ai fait tout ce qu'avait noté jgd24 mais je ne sais pas ou mettre ma ligne du css. #NombreProduits {position: absolute;left:155px} Je n'ai pas de fichier blockcategories.css d'ailleurs dans montheme/css/modules/ je n'ai pas de repertoire blockcategories Quequ'un peut-il m'éclairer? ma version: Prestashop 1.5.6.2 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