Aide - Recherche - Membres - Calendrier
Version complète : [Résolu] Breadcrumb
Forum osCommerce-fr > Les Bases d'OsCommerce MS2 > Fonctionnement
decad7
Bonjour,

tout est dans le titre....

j'aimerais faire en sorte que le modele du produit n'apparaissent pas dans le breadcrumb (l'arbre de navigation) et qu'il s'arrette donc sur la derniere catégorie du produit selectioné.

j'ai regardé un peu la classe, mais je ne vois pas ou l'on pourrait faire se genre de manipulation.

Existe il une solution simple et rapide ?

Merci encore pour tout

++
fab
manmachine
c'est dans application_top que ca ce passe :

CODE

// add the products model to the breadcrumb trail
 if (isset($HTTP_GET_VARS['products_id'])) {
   $model_query = tep_db_query("select products_model from " . TABLE_PRODUCTS . " where products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "'");
   if (tep_db_num_rows($model_query)) {
     $model = tep_db_fetch_array($model_query);
     $breadcrumb->add($model['products_model'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $HTTP_GET_VARS['products_id']));
   }
 }


tu as juste a commenter cette portion de code ...


wink.gif
decad7
Ok super c'est exactement cela que je souhaitais faire...

parcontre j'ai un nouveau problème.

J'utilise la classe Breadcrumb pour 2 fonctions.

et voila mon problème.
il s'agit d'un problème de class pour appliquer les couleurs des liens.

pour l'une des utilisations, les liens doivent etre en blanc (car sur fond foncé).
ensuite pour la deuxieme utilisation de la classe, les liens doivents etre les même que ceux utilisé sur tout le site. donc la classe A standart du stylesheet.

Donc pour la deuxieme utilisation c'est ok, les liens de mon arbre ont la bonne couleurs, mais pour ma premiere utilisation, je n'arrive pas a changer la couleurs des liens.

j'ai tout essayé avec des <span> des <font> etc...

comme puis je faire donc pour utiliser la classe breadcrumb et choisir sa couleurs ou je désire.

Encore merci

++
fab
manmachine
on pourrais faire un truc dans ce genre dans la fonction trail() de la classe .

CODE

function trail($separator = ' - ') {
     $trail_string = '';
     for ($i=0, $n=sizeof($this->_trail); $i<$n; $i++) {
       if (isset($this->_trail[$i]['link']) && tep_not_null($this->_trail[$i]['link'])) {        
 
 if(strstr($_SERVER['PHP_SELF'],'product_info.php')){
   $class = 'headerNavigation';
 } else if(strstr($_SERVER['PHP_SELF'],'index.php')) {
   $class = 'main';
 } else {
          $class = 'uneclasse';
 }

   $trail_string .= '<a href="' . $this->_trail[$i]['link'] . '" class="'.$class.'">' . $this->_trail[$i]['title'] . '</a>';
 
       } else {
         $trail_string .= $this->_trail[$i]['title'];
       }

       if (($i+1) < $n) $trail_string .= $separator;
     }

     return $trail_string;
   }


ici on conditionne la classe suivant la page en cours .

cette methode est simple . sinon on peut aussi le faire en ajoutant un argument a la fonction .
decad7
Oui effectivement j'ai rajouté un paramettre a la fonction, est j'ai fait les modifications a chaque endroit ou l'arbre est appellé sur le site.

voici la fonction que j'ai modifier de la classe breadcrumb.

CODE

function trail($class,$separator = ' - ') {
     $trail_string = '';

     for ($i=0, $n=sizeof($this->_trail); $i<$n; $i++) {
       if (isset($this->_trail[$i]['link']) && tep_not_null($this->_trail[$i]['link'])) {
         $trail_string .= '<a class="' . $class . '" href="' . $this->_trail[$i]['link'] . '" >' . $this->_trail[$i]['title'] . '</a>';
       } else {
         $trail_string .= $this->_trail[$i]['title'];
       }
 
       if (($i+1) < $n) $trail_string .= $separator;
       
  }

     return $trail_string;
   }


Avec ce changement on controle le separateur et la mise en forme de la classe breadcrumb.

Encore merci

++
fab
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2013 Invision Power Services, Inc.