neastea18 Posted March 12, 2012 Share Posted March 12, 2012 Bonjour, Je souhaite réduire le nombre de sous-catégories listé par le breadcrumb. Par exemple, actuellement j'ai ceci: ACCUEIL>UNIVERS BC TECH>NUMÉRIQUE>APPAREILS PHOTO NUMÉRIQUES COMPACTS, BRIDGES & HYBRIDES>APPAREILS PHOTO NUMÉRIQUES BRIDGES Je souhaite obtenir ceci: ACCUEIL>UNIVERS BC TECH>NUMÉRIQUE>...>APPAREILS PHOTO NUMÉRIQUES BRIDGES Une idée ? cdt, Link to comment Share on other sites More sharing options...
neastea18 Posted March 30, 2012 Author Share Posted March 30, 2012 Bonjour, je me permet de faire un up en ajoutant une photo de mon souci merci d'avance Link to comment Share on other sites More sharing options...
daniel3000 Posted April 7, 2012 Share Posted April 7, 2012 Bonjour, pour avoir modifié le bredcrumb, il me semble de mémoire que tu trouveras en fichier breadcrumb.tpl le classement suivant (notamment pour lié au fait que le premier est toujours le même, et que le dernier n'est jamais cliquable): > le premier (accueil en général) > les suivants ( lu> li probablement?) > le dernier. Tu dois donc pouvoir sans trop de problème supprimer l'un de ces 3 affichages dans le breadcrumb, et tu dois probablement aussi pouvoir modifier en cssles tailles d'écriture pour chacun de ces 3 affichages. cordialement. Daniel Link to comment Share on other sites More sharing options...
neastea18 Posted April 16, 2012 Author Share Posted April 16, 2012 Bonjour, j'ai un peu progressé dans ma recherche avec le code dans classes/Tools.php (ligne 842) /** * Get the user's journey * * @param integer $id_category Category ID * @param string $path Path end * @param boolean $linkOntheLastItem Put or not a link on the current category * @param string [optionnal] $categoryType defined what type of categories is used (products or cms) */ public static function getPath($id_category, $path = '', $linkOntheLastItem = false, $categoryType = 'products') { global $link, $cookie; if ($id_category == 1) return '<span class="navigation_end">'.$path.'</span>'; $pipe = Configuration::get('PS_NAVIGATION_PIPE'); if (empty($pipe)) $pipe = '>'; $fullPath = ''; if ($categoryType === 'products') { $category = Db::getInstance()->getRow(' SELECT id_category, level_depth, nleft, nright FROM '._DB_PREFIX_.'category WHERE id_category = '.(int)$id_category); if (isset($category['id_category'])) { $categories = Db::getInstance()->ExecuteS(' SELECT c.id_category, cl.name, cl.link_rewrite FROM '._DB_PREFIX_.'category c LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (cl.id_category = c.id_category) WHERE c.nleft <= '.(int)$category['nleft'].' AND c.nright >= '.(int)$category['nright'].' AND cl.id_lang = '.(int)($cookie->id_lang).' AND c.id_category != 1 ORDER BY c.level_depth ASC LIMIT '.(int)$category['level_depth']); $n = 1; $nCategories = (int)sizeof($categories); foreach ($categories AS $category) { $fullPath .= (($n < $nCategories OR $linkOntheLastItem) ? '<a href="'.self::safeOutput($link->getCategoryLink((int)$category['id_category'], $category['link_rewrite'])).'" title="'.htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').'">' : ''). htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8'). (($n < $nCategories OR $linkOntheLastItem) ? '</a>' : ''). (($n++ != $nCategories OR !empty($path)) ? '<span class="navigation-pipe">'.$pipe.'</span>' : ''); } return $fullPath.$path; } } elseif ($categoryType === 'CMS') { $category = new CMSCategory((int)($id_category), (int)($cookie->id_lang)); if (!Validate::isLoadedObject($category)) die(self::displayError()); $categoryLink = $link->getCMSCategoryLink($category); if ($path != $category->name) $fullPath .= '<a href="'.self::safeOutput($categoryLink).'">'.htmlentities($category->name, ENT_NOQUOTES, 'UTF-8').'</a><span class="navigation-pipe">'.$pipe.'</span>'.$path; else $fullPath = ($linkOntheLastItem ? '<a href="'.self::safeOutput($categoryLink).'">' : '').htmlentities($path, ENT_NOQUOTES, 'UTF-8').($linkOntheLastItem ? '</a>' : ''); return self::getPath((int)($category->id_parent), $fullPath, $linkOntheLastItem, $categoryType); } } Dans mon cas , je voudrais faire en sorte de remplacer une partie du path par ... pour que tout reste sur une ligne un peu d'aide ? Merci d'avance Link to comment Share on other sites More sharing options...
neastea18 Posted April 30, 2012 Author Share Posted April 30, 2012 Bonsoir, je me permets un petit UP car, je trouve celà bien utile ... cdt, Link to comment Share on other sites More sharing options...
Salamandre Posted May 3, 2012 Share Posted May 3, 2012 Bonjour, ayant eu le même problème je viens de trouver la solution grace a ce post, j'ai remplacer dans classes/Tools.php return $fullPath.$path; par if (strlen($path) > 30) { //Raccourci la derniere partie $path = substr($path, 0, 30); $dernier_espace = strrpos($path," "); //Cherche le dernier espace $path_court = substr($path, 0, $dernier_espace)."..."; //Affiche jusqu'au dernier espace return $fullPath.$path_court; } else { return $fullPath.$path; } Il suffit de remplacer les deux "30" par le nombre de caractère désiré. Si ça peut aider quelqu'un. 1 Link to comment Share on other sites More sharing options...
daftfunk Posted May 11, 2012 Share Posted May 11, 2012 Salut a tous! Mois j'ai un petit soucis : je migre d'un PS 1.3 et PS 1.47 et je m’aperçois que la base category a ete implémentée de deux champs nleft nright... a quoi servent ils? J'ai alors importé mes catégories en laissant ces champs nuls ... du coups mon breacumb ne fonctionne plus.. comment puis je faire pour remédier a ce problème Merci Link to comment Share on other sites More sharing options...
neastea18 Posted May 12, 2012 Author Share Posted May 12, 2012 Bonjour, ayant eu le même problème je viens de trouver la solution grace a ce post, j'ai remplacer dans classes/Tools.php return $fullPath.$path; par if (strlen($path) > 30) { //Raccourci la derniere partie $path = substr($path, 0, 30); $dernier_espace = strrpos($path," "); //Cherche le dernier espace $path_court = substr($path, 0, $dernier_espace)."..."; //Affiche jusqu'au dernier espace return $fullPath.$path_court; } else { return $fullPath.$path; } Il suffit de remplacer les deux "30" par le nombre de caractère désiré. Si ça peut aider quelqu'un. Bonjour, dans mon cas, en reprenant l'exemple du début, c'est le nom du produit qui est coupé. Cependant, votre code m'inspire sur une condition sur le nombre de catégorie en utilisant la variable $nCategories Malheureusement, je ne vois pas la solution ... Si quelqu'un pouvait me donner un coup de pouce Merci d'avance Link to comment Share on other sites More sharing options...
daftfunk Posted May 12, 2012 Share Posted May 12, 2012 neastea18, je suis désolé, je saute ton poste pour revenir a mon soucis (en plus de ne pas avoir la réponse au tien) Donc personne ne sait comment fonctionne nleft / nright dans la table? Link to comment Share on other sites More sharing options...
fishingnet Posted September 16, 2012 Share Posted September 16, 2012 Bonsoir, neastea18 ! Je suis très intéressé si vous avez trouvé une solution pour ce que vous voulez! J'ai le même problème et j'ai ouvert un nouveau fil de discussion à ce sujet! http://www.prestasho...433#entry928433 Désolé pour mon français, c'est la traduction google ! Bogdan 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