Bonjour,
Je me heurte à un petit problème qui fait intervenir à la fois CSS, Javascript et HTML, mais je me dis que c'est surement dans cette section que je trouverai la solution :)
Mon application est en php et permet d'afficher une arborescence de fichier.
Cette arborescence ressemble un peu à ça :
- Racine Date de la dernière modif Numero de Revision
- DossierFils Date de la dernière modif Numero de Revision
enfant.txt Date de la dernière modif Numero de Revision+ DossierFils2 ....
enfant2.php ....
Là ou vous voyez des "-", on peu cliquer dessus et faire "disparaitre" le bloc, ou un "+" pour les faire apparaitre, via la fonction Javascript qui suit :
Tous les fichiers contiennent des liens vers une page permettant de les afficher.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 function expand(n) { var node = n; while ( node.nodeName != "UL" ) node = node.nextSibling; if ( node.style.display == 'block' ) { node.style.display = 'none'; n.src = 'images/plus.gif'; } else { node.style.display = 'block'; n.src = 'images/minus.gif'; } }
Dans mon code, pour l'affichage d'un dossier je fais appel à ce code :
Pour l'affichage d'un fichier ( qui ne peut donc pas contenir de fils ), j'utilise une table à l'intérieur d'un <li>, c'est peut-être pas très beau, mais ça me permet d'aligner correctement les parties "Date" et "Revision". Le code est le suivant :Code:
1
2 $espace2 = 403 - 60 * $cpt_arbo ; echo '<li><img src=\'images/minus.gif\' onclick="expand(this)"><span class=\'dossier\'>'.$nom.'</span><span class=\'date\' style=\'margin-left:'.$espace2.'px\'>'.$date.'</span><span class=\'revision\' style=\'margin-left:63px\'>'.$rev.'</span></li>' ;
Note : $cpt_arbo me permet de savoir à quel niveau d'arborescence je suis et d'augmenter le retrait en conséquence.Code:
1
2 $espace = 435 - 40 * $cpt_arbo ; echo '<li><table cellpadding=0 cellspacing=0><tr><td width='.$espace.'px><img src=\'images/fichier_non_modif.png\' alt=\''.$nom.' est un fichier non modifié\' ><a href=\'Controleur_Gestion_Fichier.php?type='.$type.'&dst='.$url.'\'>'.$nom.'</a></td><td width=140px><span class=\'date\'>'.$date.'</span></td><td><span class=\'revision\'>'.$rev.'</span></td></tr></table></li>' ;
Mon problème est le suivant :
Pour faire fonctionner mon javascript je ne peut utiliser qu'une balise <li> avec un contenu de type %inline, ce qui ne concerne QUE les dossiers. Mais comment avoir un alignement des colones "Date" et "Revision", sachant que je ne peux pas vraiment les positionner avec des <span> ( le positionnement dépend de la taille du nom du dossier ) ?
Ou alors, comment modifier mon Javascript afin de pouvoir l'utiliser dans le contexte d'un fichier, ie une <table> contenue dans un <li> ?