connect_error) { die("Verbindung fehlgeschlagen: " . $conn->connect_error); } // Funktion zum Abrufen der Daten für eine einzelne Datei function getFileInfo($file_id) { global $conn; // 2. Abfrage: Alle Mimetypes und ihre IDs $sql2 = "SELECT id, mimetype FROM oc_mimetypes"; $result2 = $conn->query($sql2); // Alle Mimetypes in einem Array speichern $mimetypes = []; while ($row = $result2->fetch_assoc()) { $mimetypes[$row['id']] = $row['mimetype']; } // 3. Abfrage: Alle Tags im System $sql3 = "SELECT id, name FROM oc_systemtag"; $result3 = $conn->query($sql3); // Alle Tags in einem Array speichern $tags = []; while ($row = $result3->fetch_assoc()) { $tags[$row['id']] = $row['name']; } // 4. Abfrage: Verknüpfung zwischen Files und Tags (mit 'files' statt 'file') $sql4 = "SELECT objectid, systemtagid FROM oc_systemtag_object_mapping WHERE objecttype = 'files'"; $result4 = $conn->query($sql4); // Tags mit Dateiinformationen verbinden $fileTags = []; while ($row = $result4->fetch_assoc()) { $fileTags[$row['objectid']][] = $tags[$row['systemtagid']]; } // Füge den Tag "archive" zu jedem Eintrag in fileTags hinzu // foreach ($fileTags as $fileId => $existingTags) { // // Prüfen, ob der Tag "archive" bereits vorhanden ist // if (!in_array('archive', $existingTags)) { // // Füge den Tag "archive" hinzu (nur im Array, nicht in der DB) // $fileTags[$fileId][] = 'archive'; // } // } // Abfrage nach der Datei mit der gegebenen file_id $sql = "SELECT fc.fileid, fc.name AS file_name, fc.path AS file_path, fc.size, fc.mimetype FROM oc_filecache AS fc WHERE fc.fileid = $file_id"; $result = $conn->query($sql); // Überprüfen, ob die Datei existiert if ($result->num_rows > 0) { $row = $result->fetch_assoc(); // Extrahiere die Dateidaten $file_name = $row['file_name']; $file_size = $row['size']; $mimetype_id = $row['mimetype']; $mimetype_name = isset($mimetypes[$mimetype_id]) ? $mimetypes[$mimetype_id] : 'Unknown'; $file_tags = isset($fileTags[$file_id]) ? implode(', ', $fileTags[$file_id]) : 'No Tags'; // Prüfen, ob der Dateiname mit einem Datum im gewünschten Format beginnt (YYMMDD-HHMM oder YYMMDD_HHMM) if (preg_match('/^(\d{2})(\d{2})(\d{2})[-_](\d{4})/', $file_name, $matches)) { // Extrahiere Jahr, Monat, Tag, Stunde und Minute $file_year = $matches[1]; // Jahr (z.B. "21" wird zu "2021") $file_month = $matches[2]; // Monat $file_day = $matches[3]; // Tag $file_hour = substr($matches[4], 0, 2); // Stunde (erste zwei Zeichen) $file_minute = substr($matches[4], 2, 2); // Minute (letzte zwei Zeichen) // Entferne Datum und Uhrzeit aus dem Dateinamen, also den Anfang $file_title = substr($file_name, strlen($matches[0])); // Rest des Dateinamens nach Datum/Uhrzeit // Finde die Position des letzten Punktes im Dateinamen $last_dot_position = strrpos($file_title, '.'); // Überprüfe, ob ein Punkt im Dateinamen existiert if ($last_dot_position !== false) { // Extrahiere den Dateinamen ohne die Erweiterung (alles vor dem letzten Punkt) $file_title = substr($file_title, 0, $last_dot_position); } // Entferne alles nach dem '@' (falls vorhanden) $file_title = strtok($file_title, '@'); // Entferne einen führenden Unterstrich (falls vorhanden) $file_title = ltrim($file_title, '_'); } // Rückgabe der Datei-Daten als Array return [ 'file_id' => $file_id, 'file_name' => $file_name, 'file_size' => $file_size, 'mimetype_name' => $mimetype_name, 'file_tags' => $file_tags, 'file_year' => $file_year, 'file_month' => $file_month, 'file_day' => $file_day, 'file_hour' => $file_hour, 'file_minute' => $file_minute, 'file_title' => $file_title ]; } else { // Falls keine Datei gefunden wurde, null zurückgeben return null; } } ?>