<?php // Connexion à la base de données $servername = "analogdepat.mysql.db"; $username = "analogdepat"; $password = "Un92pac007"; $dbname = "analogdepat"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Récupérer les données de la table $sql = "SELECT nom, revision, taille, date_creation FROM revision_fichiers"; $result = $conn->query($sql); $data = []; if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $nom = $row['nom']; $revision = $row['revision']; $taille = $row['taille']; $date_creation = $row['date_creation']; if (!isset($data[$nom])) { $data[$nom] = []; } $data[$nom][] = [ 'revision' => $revision, 'taille' => $taille, 'date_creation' => $date_creation ]; } } $conn->close(); // Convertir le tableau en JSON $jsonData = json_encode($data); function scanDirectory($directory) { $result = []; $files = scandir($directory); foreach ($files as $file) { if ($file !== '.' && $file !== '..') { $path = $directory . DIRECTORY_SEPARATOR . $file; if (is_dir($path)) { $result[] = [ 'name' => $file, 'type' => 'directory', 'children' => scanDirectory($path) ]; } else { $result[] = [ 'name' => $file, 'type' => 'file', 'created' => date('Y-m-d H:i:s', filectime($path)), 'size' => filesize($path) // Ajouter la taille du fichier ]; } } } return $result; } function displayTree($tree, $fileData, $level = 0) { foreach ($tree as $item) { if (isset($fileData[$item['name']])) { echo '<ul class="tree-item" style="margin-left: ' . ($level * 20) . 'px; list-style-type: none;">'; echo '<li>'; echo '<span class="toggle" onclick="toggleTree(this)">+</span>'; echo '<span class="name"><i class="fas fa-check-circle green-icon"></i>' . htmlspecialchars($item['name']) . '<span class="file-size">' . formatSizeUnits($item['size']) . '</span>' . // Ajouter la taille du fichier '<span class="created-date">' . htmlspecialchars($item['created']) . '</span>' .'</span>'; echo '<ul class="sub-list" style="display: none;">'; foreach ($fileData[$item['name']] as $subElement) { echo '<li class="sub-element"><i class="fas fa-sitemap sub-element-icon"></i><span class="context-menu-trigger">' . htmlspecialchars($subElement['revision']) . '</span><span class="blabla-text">' . formatSizeUnits($subElement['taille']) . ' - ' . htmlspecialchars($subElement['date_creation']) . '</span></li>'; } echo '</ul>'; echo '</li>'; echo '</ul>'; } else { echo '<div class="tree-item" style="margin-left: ' . ($level * 20) . 'px;">'; echo '<span class="toggle" onclick="toggleTree(this)">' . ($item['type'] === 'directory' ? '+' : '') . '</span>'; $iconClass = $item['type'] === 'directory' ? 'fas fa-folder directory-icon' : 'fas fa-file floppy-icon'; echo '<span class="name"><i class="' . $iconClass . '"></i>' . htmlspecialchars($item['name']) . '</span>'; if (isset($item['size'])) { echo '<span class="file-size">' . formatSizeUnits($item['size']) . '</span>'; // Ajouter la taille du fichier } if (isset($item['created'])) {