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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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> ?
Partager