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
enfant2.php ....
+ DossierFils2 ....
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 :
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';
}
} |
Tous les fichiers contiennent des liens vers une page permettant de les afficher.
Dans mon code, pour l'affichage d'un dossier je fais appel à ce 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>' ; |
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 :
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>' ; |
Note : $cpt_arbo me permet de savoir à quel niveau d'arborescence je suis et d'augmenter le retrait en conséquence.
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> ?
Partager