le "breadcrumb" dans une liste ...

Messagepar yhugo » Jeu 13 Avr 2006, 16:50

Bonjour tous,

J'ai essayé de mettre le fil d'ariane (breadcrump) dans une liste ... je suis assez néophyte en php ... ça n'a pas vraiment marché ... ma technique essai/erreur n'est pas encore au point :) ...

Code: Tout sélectionner
<?php

  class breadcrumb {
    var $_trail;

    function breadcrumb() {
      $this->reset();
    }

    function reset() {
      $this->_trail = array();
    }

    function add($title, $link = '') {
      $this->_trail[] = array('title' => $title, 'link' => $link);
    }

    function trail($separator = ' - ') {
      $trail_string = '';
      echo "<ul><li class="arrow">Vous êtes ici :</li>";
      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 .= '<li><a href="' . $this->_trail[$i]['link'] . '" class="breadCrumb">' . $this->_trail[$i]['title'] . '</a></li>';
        } else {
          $trail_string .= $this->_trail[$i]['title'];
        }

        if (($i+1) < $n) $trail_string .= $separator;
   echo "</ul>";
      }

      return $trail_string;
    }

  }
?>

Merci ...



yhugo
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar j4k » Jeu 13 Avr 2006, 20:31

qu'est ce qui ne marche pas, peux-tu mettre le code html généré?
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar yhugo » Jeu 13 Avr 2006, 21:08

Bonsoir j4k,

En fait j'avais 2 erreurs ... la première était bien simple, même un débutant en php aurait dû le savoir ... il me manquait les antislashs avant mes guillemets ... :/

Code: Tout sélectionner
function trail($separator = ' - ') {
      $trail_string = '';
      echo "<ul><li class="arrow">Vous êtes ici :</li>";
      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 .= '<li><a href="' . $this->_trail[$i]['link'] . '" class="breadCrumb">' . $this->_trail[$i]['title'] . '</a></li>';
        } else {
          $trail_string .= $this->_trail[$i]['title'];
        }

        if (($i+1) < $n) $trail_string .= $separator;
   echo "</ul>";
      }

Mais avec la 2ième erreur c'est là que mes faiblesses syntaxique s'expriment : 2 </ul> ... apparraîssent après le Vous êtes ici :

Code: Tout sélectionner
<div id="breadCrumb"><ul><li class="arrow">Vous êtes ici :</ul></ul>

Voici le <div> au complet :

Code: Tout sélectionner
<div id="breadCrumb"><ul>
<li class="arrow">Vous êtes ici :</ul></ul><li>
<a href="http://www.royalairweb.net" class="breadCrumb">Accueil</a></li> &raquo; <li><a href="http://www.royalairweb.net/yhugo//catalog/index.php" class="breadCrumb">Catalogue</a></li></div>

http://www.royalairweb.net/yhugo//catalog/index.php


Merci encore une fois



yhugo
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar j4k » Jeu 13 Avr 2006, 21:24

et voici :

Code: Tout sélectionner
 
class breadcrumb {
    var $_trail;

    function breadcrumb() {
      $this->reset();
    }

    function reset() {
      $this->_trail = array();
    }

    function add($title, $link = '') {
      $this->_trail[] = array('title' => $title, 'link' => $link);
    }

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

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

  $trail_string .= "</ul>";
      return $trail_string;
    }
  }
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar yhugo » Jeu 13 Avr 2006, 21:53

Merci j4k ça roule ...

Mais pourquoi le $trail_string .=, plutôt que le echo ?


http://www.royalairweb.net/yhugo//catalog/index.php

Je t'en dois encore une ... :)


Bonne soirée



yhugo
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar j4k » Jeu 13 Avr 2006, 22:27

c'est bien pareil
mais comme ça tu met tout dans un variable et tu fais qu'un seul echo.

sinon c'est p-e plus rapide au niveau du serveur
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar yhugo » Jeu 13 Avr 2006, 22:57

et si je veux définir une "constante" dans mes fichiers langue à la place de Vous êtes ici : ...

dans french.php j'ai écrit une ligne :
Code: Tout sélectionner
// tentative pour le breadcrumb.php
define('FIL_DARIANE', 'Vous &ecirc;tes ici :');

Mais pour l'appeler dans breadcrumb.php je ne peux évidemment pas mettre

<?php echo FIL_DARIANE; ?> au beau milieu de $trail_string .= "<ul><li class="arrow">Vous êtes ici :</li>"; ..?

Comment dois-je construire tout ça ?



Merci ....


yhugo
Dernière édition par yhugo le Jeu 13 Avr 2006, 22:58, édité 1 fois.
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar j4k » Ven 14 Avr 2006, 00:46

$trail_string .= "<ul><li class="arrow">".FIL_DARIANE."</li>";
~ osCSS 1.2.1 ~
Avatar de l’utilisateur
j4k
Site Admin
 
Messages: 1259
Inscription: Mer 27 Avr 2005, 09:13
Localisation: France

Messagepar stepibou » Ven 14 Avr 2006, 11:01

Code: Tout sélectionner
  $breadcrumb->add(FIL_DARIANE, tep_href_link(FILENAME_YOURFILE));
--> osCSS inside <--
stepibou
Membre très actif
 
Messages: 274
Inscription: Dim 30 Oct 2005, 02:15
Localisation: Lyon

Messagepar yhugo » Mar 18 Avr 2006, 16:04

Bonjour tous ...

Merci j4k et stepibou ...

J'ai mît la ligne de j4k, qui marche bien ... mais quelle est la différence entre ces deux techniques ?

Je dirais que ce post est "réglé" ... est-ce que c'est a nous de mettre le tag "Dossier classé" ?

Merci et bonne journée



yhugo
___
Version -> osCSS 1.1-RC1
Contribs -> MultiGeoZone MultiTable, EZ Big Image, Minimum Order Amount ...
yhugo
Membre très actif
 
Messages: 150
Inscription: Lun 27 Mar 2006, 21:19
Localisation: Rimouski, Québec

Messagepar titi17s » Ven 04 Mai 2007, 12:47

bonjour je suis un peut a la boure dans ce sujet mais j'ai fait tout ce qui est expliquer plus haut et ca me sort cette erreur:

Fatal error: Cannot redeclare class breadcrumb in /home/brytten/www/oscss/catalog/includes/classes/breadcrumb.php on line 19:/
et je ne comprend pas...
merci de votre aide
titi17s
Membre inactif
 
Messages: 9
Inscription: Mar 17 Avr 2007, 11:10


Retourner vers Design

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités

cron