1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| /**
* @description Initialise les variables et appelle la fonction arborescence()
* Renvoie un tableau a deux dimensions contenant le tableau
* OU false si le repertoire racine passe en parametre n'existe pas
* representant l'arborescence et le nombre d'elements du tableau
* @author [DSIT-XIS/SO]
* @date 22/04/2008
* @param $urlPere L'url de la racine de l'arborescence
*/
function dessin_arborescence ($urlPere) {
$temp = array(array()) ;
exec('ls '.$urlPere, $puit, $test) ;
if ( $test != 0 )
return false ;
$temp = arborescence ($urlPere) ;
return $temp ;
}
/**
* @description Parcours une arborescence recursivement.
* Construit un tableau a trois dimensions de type [i][j][donnees] au fur et a mesure
* @author [DSIT-XIS/SO]
* @date 22/04/2008
* @param $urlPere L'url de la racine de l'arborescence
*/
function arborescence ($urlPere) {
// --------- FONCTION RECURSIVE -------
// Parcours une arborescence recursivement et construit un tableau a trois dimensions de type [i][j][donnees] au fur et a mesure
static $i = -1 ;
static $j = 0 ;
static $monTableau = array(array(array())) ;
static $compteur = 0 ;
// On regarde le contenu du dossier
exec('ls '.$urlPere,$liste) ;
// Pour chaque element contenu dans le dossier racine
foreach ( $liste as $element ) {
$i++ ;
$urlElement = $urlPere.'/'.$element ;
// On teste s'il s'agit d'un dossier ou d'un fichier
exec('[ -d '.$urlElement.' ]', $puit, $testDossier);
unset($date);
unset($rev);
// On insere l'element au tableau
$monTableau[$i][$j]['nom'] = $element ;
$monTableau[$i][$j]['url'] = $urlElement ;
exec('svn info '.$urlElement. ' | grep "Last Changed Date" | cut -d: -f2 | cut -d" " -f2', $date) ;
exec('svn info '.$urlElement. ' | grep "Last Changed Rev" | cut -d: -f2 | cut -d" " -f2', $rev) ;
$monTableau[$i][$j]['rev'] = $rev[0] ;
$monTableau[$i][$j]['date'] = $date[0] ;
$monTableau[$i][$j]['src'] = substr($urlElement, 29 ).'/Reference'.substr($urlElement, 33 ) ;
//exec('diff '.$urlElement.' '.$src, $tabTest, $modif) ;
// On teste s'il s'agit d'un dossier ou d'un fichier
exec('[ -d '.$urlElement.' ]',$tabTest, $testDossier);
if ( $testDossier == 0 ) {
$monTableau[$i][$j]['type'] = 'dn' ;
// Appel recursif a partir du sous-dossier
$j++ ;
$compteur++ ;
arborescence ($urlElement) ;
$compteur-- ;
// On remonte dans l'arborescence
}
// Si l'element est un fichier :
else {
exec('[ -f '.$urlElement.' ]', $puit, $testFichier);
if ( $testFichier == 0 ) {
$monTableau[$i][$j]['type'] = 'fn' ; }
}
}
$i++ ;
$monTableau[$i][$j]['nom'] = ' ' ;
$monTableau[$i][$j]['url'] = ' ' ;
$monTableau[$i][$j]['rev'] = ' ' ;
$monTableau[$i][$j]['date'] = ' ' ;
$monTableau[$i][$j]['type'] = ' ' ;
$j-- ;
$temp[0] = $monTableau ;
$temp[1] = $i ;
return $temp ;
} |
Partager