8795 sujets

Développement web côté serveur, CMS

salut
voila j'ai class qui me permet de creer une arborescence de mon site
mais j'ai du mal a le representer graphiquement, j'ai la structure voir ancien posteici
et voici ma class
  function affichage($row, $sublist = false)
  {
    //comme il s'agit d'un objet, il est responsable de son affichage
//$row indique à quelle ligne de l'affichage nous en somme
//pour l'afficher avec la bonne couleur
//$tor indique si nous nous trouvons sur la page principale
//ou sur la page d'un article.les pages des articles doivent être
//definies avec $tor=true;
//dans une sous liste ,tous les messages sont ouverts et il n'y a aucun symbole de dossier


    //s'il s'agit du noeud racine vide, on saute l'affichage
    if($this->m_niveau>-1)  
    {
    
      if ( !$sublist && $this->m_enfant && sizeof($this->m_listenfant))
		//nous sommes sur la page principale, le noeud possède des enfants et il sont ouvert
      {
			//le noeud est ouvert.afficher une icone dossier ouvert
        echo '<ul><li class="dossier_ouvert"><a href='.$_SERVER['PHP_SELF'].'?collapse='.
                         $this->m_id.'>'.$this->m_titre.'
             </a></li>';
			 echo "\n";
      }
      else if(!$sublist && $this->m_enfant)
      {
			//le noeud est fermé.afficher un bouton pour l'ouvrir
        echo '<li class="dossier_fermer"><a href='.$_SERVER['PHP_SELF'].'?expand='.
             $this->m_id.'>'.$this->m_titre.'</a><li>';
			  echo "\n";
      }
      else
      {
       // nous somme dans le cas d'un fichier->pas d'enfant''
		   echo '<li class="fichier"><a href ='.$_SERVER['PHP_SELF'].'?id='.$this->m_id.'>'.$this->m_titre.'</a><li>';
			echo "\n";
      }
    }
    $num_enfant = sizeof($this->m_listenfant);
    for($i = 0; $i<$num_enfant; $i++)
    {
      $row = $this->m_listenfant[$i]->affichage($row, $sublist);
    }
    return $row;
	echo '</ul>';
  }



pour l'instant j'ai un affichage en cascade
upload/666-Sanstitre.JPG

si quelqu'un sais comment faire
merci
Modifié par jeff (05 Jul 2005 - 22:40)
Le problème vient du fait que tu fais un echo "<ul>" sous condition et un echo "</ul>" sans condition.
bon ba avec un peu de recule
j'ai trouver
  function affichage($row, $sublist = false)
  {
    //comme il s'agit d'un objet, il est responsable de son affichage
//$row indique à quelle ligne de l'affichage nous en somme
//pour l'afficher avec la bonne couleur
//$tor indique si nous nous trouvons sur la page principale
//ou sur la page d'un article.les pages des articles doivent être
//definies avec $tor=true;
//dans une sous liste ,tous les messages sont ouverts et il n'y a aucun symbole de dossier


    //s'il s'agit du noeud racine vide, on saute l'affichage
    if($this->m_niveau>-1)  
    {
    
      if ( !$sublist && $this->m_enfant && sizeof($this->m_listenfant))
		//nous sommes sur la page principale, le noeud possède des enfants et il sont ouvert
      {
			//le noeud est ouvert.afficher une icone dossier ouvert
        echo '<li class="dossier_ouvert"><a href='.$_SERVER['PHP_SELF'].'?collapse='.
                         $this->m_id.'>'.$this->m_titre.'
             </a></li>';
			 echo "\n";
      }
      else if(!$sublist && $this->m_enfant)
      {
			//le noeud est fermé.afficher un bouton pour l'ouvrir
        echo '<li class="dossier_fermer"><a href='.$_SERVER['PHP_SELF'].'?expand='.
             $this->m_id.'>'.$this->m_titre.'</a><li>';
			  echo "\n";
      }
      else
      {
       // nous somme dans le cas d'un fichier->pas d'enfant''
		   echo '<li class="fichier"><a href ='.$_SERVER['PHP_SELF'].'?id='.$this->m_id.'>'.$this->m_titre.'</a><li>';
			echo "\n";
      }
    }
    $num_enfant = sizeof($this->m_listenfant);
    for($i = 0; $i<$num_enfant; $i++)
    {	
	if($i==0){echo '<ul>';}
    $row = $this->m_listenfant[$i]->affichage($row, $sublist);
	if($i==$num_enfant-1){echo '</ul>';}
 	}
    return $row;
}


merci de votre aide Smiley cligne