Exemple #1
0
function FileList($multi = 0)
{
    global $config, $fpath, $lang, $databases, $href, $dbactiv, $action, $expand;
    $files = array();
    //Backup-Dateien
    $Theader = $lang['L_FM_FILES1'] . ' ' . $lang['L_OF'] . ' "' . $dbactiv . '"';
    $akind = 1;
    $Sum_Files = 0;
    $dh = opendir($fpath);
    $fl = "";
    $i = 0;
    while (false !== ($filename = readdir($dh))) {
        if ($filename != '.' && $filename != '..' && !is_dir($fpath . $filename)) {
            $files[$i]['name'] = $filename;
            $Sum_Files++;
            $i++;
        }
    }
    $fl .= '<div>' . $lang['L_FM_CHOOSE_FILE'] . ' ';
    $fl .= '<span id="gd">&nbsp;</span><br><br>';
    $fl .= '<table class="bdr">';
    $fl .= '<tr><td colspan="8" align="left"><strong>' . $Theader . '</strong></td><td colspan="3" align="right"></td></tr>';
    //Tableheader
    $fl .= '<tr class="thead"><th colspan="3">' . $lang['L_DB'] . '</th>
	<th>gz</th>
	<th>Script</th>
	<th colspan="2">' . $lang['L_COMMENT'] . '</th>
	<th>' . $lang['L_FM_FILEDATE'] . '</th>
	<th>Multipart</th>
	<th>' . $lang['L_FM_TABLES'] . ' / ' . $lang['L_FM_RECORDS'] . '</th>
	<th>' . $lang['L_FM_FILESIZE'] . '</th>
	<th>' . $lang['L_ENCODING'] . '</th></tr>';
    $checkindex = $arrayindex = $gesamt = 0;
    $db_summary_anzahl = array();
    if (count($files) > 0) {
        for ($i = 0; $i < sizeof($files); $i++) {
            // Dateigr&ouml;&szlig;e
            $size = filesize($fpath . $files[$i]['name']);
            $file_datum = date("d\\.m\\.Y H:i", filemtime($fpath . $files[$i]['name']));
            //statuszeile auslesen
            $sline = '';
            if (substr($files[$i]['name'], -3) == '.gz') {
                if ($config['zlib']) {
                    $fp = gzopen($fpath . $files[$i]['name'], "r");
                    $sline = gzgets($fp, 40960);
                    gzclose($fp);
                }
            } else {
                $fp = fopen($fpath . $files[$i]['name'], "r");
                $sline = fgets($fp, 5000);
                fclose($fp);
            }
            $statusline = ReadStatusline($sline);
            $but = ExtractBUT($files[$i]['name']);
            if ($but == '') {
                $but = $file_datum;
            }
            $dbn = $statusline['dbname'];
            if ($dbn == 'unknown') {
                $dbn = '~unknown';
            }
            // needed for sorting - place unknown files at the end
            //jetzt alle in ein Array packen
            if ($statusline['part'] == 'MP_0' || $statusline['part'] == '') {
                $db_backups[$arrayindex]['name'] = $files[$i]['name'];
                $db_backups[$arrayindex]['db'] = $dbn;
                $db_backups[$arrayindex]['size'] = $size;
                $db_backups[$arrayindex]['date'] = $but;
                $db_backups[$arrayindex]['sort'] = sortierdatum($but);
                $db_backups[$arrayindex]['tabellen'] = $statusline['tables'];
                $db_backups[$arrayindex]['eintraege'] = $statusline['records'];
                $db_backups[$arrayindex]['multipart'] = 0;
                $db_backups[$arrayindex]['kommentar'] = $statusline['comment'];
                $db_backups[$arrayindex]['script'] = $statusline['script'] != '' ? $statusline['script'] . '(' . $statusline['scriptversion'] . ')' : '';
                $db_backups[$arrayindex]['charset'] = $statusline['charset'];
                if (!isset($db_summary_last[$dbn])) {
                    $db_summary_last[$dbn] = $but;
                }
                $db_summary_anzahl[$dbn] = isset($db_summary_anzahl[$dbn]) ? $db_summary_anzahl[$dbn] + 1 : 1;
                $db_summary_size[$dbn] = isset($db_summary_size[$dbn]) ? $db_summary_size[$dbn] + $size : $size;
                if (sortierdatum($but) > sortierdatum($db_summary_last[$dbn])) {
                    $db_summary_last[$dbn] = $but;
                }
            } else {
                //multipart nur einmal
                $done = 0;
                if (!isset($db_summary_size[$dbn])) {
                    $db_summary_size[$dbn] = 0;
                }
                for ($j = 0; $j < $arrayindex; $j++) {
                    if (isset($db_backups[$j])) {
                        if ($db_backups[$j]['date'] == $but && $db_backups[$j]['db'] == $dbn) {
                            $db_backups[$j]['multipart']++;
                            $db_backups[$j]['size'] += $size;
                            $db_summary_size[$dbn] += $size;
                            $done = 1;
                            break;
                        }
                    }
                }
                if ($done == 1) {
                    $arrayindex--;
                }
                if ($done == 0) {
                    //Eintrag war noch nicht vorhanden
                    $db_backups[$arrayindex]['name'] = $files[$i]['name'];
                    $db_backups[$arrayindex]['db'] = $dbn;
                    $db_backups[$arrayindex]['size'] = $size;
                    $db_backups[$arrayindex]['date'] = $but;
                    $db_backups[$arrayindex]['sort'] = sortierdatum($but);
                    $db_backups[$arrayindex]['tabellen'] = $statusline['tables'];
                    $db_backups[$arrayindex]['eintraege'] = $statusline['records'];
                    $db_backups[$arrayindex]['multipart'] = 1;
                    $db_backups[$arrayindex]['kommentar'] = $statusline['comment'];
                    $db_backups[$arrayindex]['script'] = $statusline['script'] != "" ? $statusline['script'] . "(" . $statusline['scriptversion'] . ")" : "";
                    $db_backups[$arrayindex]['charset'] = $statusline['charset'];
                    if (!isset($db_summary_last[$dbn])) {
                        $db_summary_last[$dbn] = $but;
                    }
                    $db_summary_anzahl[$dbn] = isset($db_summary_anzahl[$dbn]) ? $db_summary_anzahl[$dbn] + 1 : 1;
                    $db_summary_size[$dbn] = isset($db_summary_size[$dbn]) ? $db_summary_size[$dbn] + $size : $size;
                    if (sortierdatum($but) > sortierdatum($db_summary_last[$dbn])) {
                        $db_summary_last[$dbn] = $but;
                    }
                }
            }
            // Gesamtgroesse aller Backupfiles
            $arrayindex++;
            $gesamt = $gesamt + $size;
        }
    }
    //Schleife fertig - jetzt Ausgabe
    if (isset($db_backups) && is_array($db_backups)) {
        $db_backups = mu_sort($db_backups, 'sort,name');
    }
    // Hier werden die Dateinamen ausgegeben
    $rowclass = 0;
    if ($arrayindex > 0) {
        for ($i = $arrayindex; $i >= 0; $i--) {
            if (isset($db_backups[$i]['db']) && $db_backups[$i]['db'] == $dbactiv) {
                $cl = $rowclass % 2 ? 'dbrow' : 'dbrow1';
                $multi = $db_summary_anzahl[$dbactiv] > 1 && $action == 'files' ? 1 : 0;
                if ($db_backups[$i]['multipart'] > 0) {
                    $dbn = NextPart($db_backups[$i]['name'], 1);
                } else {
                    $dbn = $db_backups[$i]['name'];
                }
                $fl .= '<tr ';
                $fl .= 'class="' . ($rowclass % 2 ? 'dbrow"' : 'dbrow1"');
                $fl .= '>';
                $fl .= '<td align="left" colspan="2" nowrap="nowrap">';
                $fl .= '<input type="hidden" name="multi" value="' . $multi . '">';
                if ($multi == 0) {
                    $fl .= '<input type="hidden" name="multipart[]" value="' . $db_backups[$i]['multipart'] . '"><input name="file[]" type="radio" class="radio" value="' . $dbn . '" onClick="Check(' . $checkindex++ . ',0);">';
                } else {
                    $fl .= '<input type="hidden" name="multipart[]" value="' . $db_backups[$i]['multipart'] . '"><input name="file[]" type="checkbox" class="checkbox" value="' . $dbn . '" onClick="Check(' . $checkindex++ . ',1);">';
                }
                if ($db_backups[$i]['multipart'] == 0) {
                    $fl .= '&nbsp;<a href="' . $fpath . urlencode($dbn) . '" title="Backupfile: ' . $dbn . '" style="font-size:8pt;" target="_blank">';
                    $fl .= ($db_backups[$i]['db'] == '~unknown' ? $dbn : $db_backups[$i]['db']) . '</a></td>';
                    $fl .= '<td><a href="filemanagement.php?action=dl&amp;f=' . urlencode($dbn) . '" title="' . $lang['L_DOWNLOAD_FILE'] . '" alt="' . $lang['L_DOWNLOAD_FILE'] . '"><img src="' . $config['files']['iconpath'] . '/openfile.gif"></a></td>';
                } else {
                    $fl .= '&nbsp;<span style="font-size:8pt;">' . $db_backups[$i]['db'] . '</span><td>&nbsp;</td></td>';
                }
                $fl .= '<td class="sm" nowrap="nowrap" align="center">' . (substr($dbn, -3) == ".gz" ? '<img src="' . $config['files']['iconpath'] . 'gz.gif" alt="' . $lang['L_COMPRESSED'] . '" width="16" height="16" border="0">' : "&nbsp;") . '</td>';
                $fl .= '<td class="sm" nowrap="nowrap" align="center">' . $db_backups[$i]['script'] . '</td>';
                $fl .= '<td class="sm" nowrap="nowrap" align="right">' . ($db_backups[$i]['kommentar'] != "" ? '<img src="' . $config['files']['iconpath'] . 'rename.gif" alt="' . $db_backups[$i]['kommentar'] . '" title="' . $db_backups[$i]['kommentar'] . '" width="16" height="16" border="0">' : "&nbsp;") . '</td>';
                $fl .= '<td class="sm" nowrap="nowrap" align="left">' . ($db_backups[$i]['kommentar'] != "" ? nl2br(wordwrap($db_backups[$i]['kommentar'], 50)) : "&nbsp;") . '</td>';
                $fl .= '<td class="sm" nowrap="nowrap">' . $db_backups[$i]['date'] . '</td>';
                $fl .= '<td style="text-align:center">';
                $fl .= $db_backups[$i]['multipart'] == 0 ? $lang['L_NO'] : '<a style="font-size:11px;" href="filemanagement.php?action=files&amp;kind=0&amp;dbactiv=' . $dbactiv . '&amp;expand=' . $i . '">' . $db_backups[$i]['multipart'] . ' Files</a>';
                //
                $fl .= '</td><td  style="text-align:right;padding-right:12px;" nowrap="nowrap">';
                $fl .= $db_backups[$i]['eintraege'] != -1 ? $db_backups[$i]['tabellen'] . ' / ' . number_format($db_backups[$i]['eintraege'], 0, ",", ".") : $lang['L_FM_OLDBACKUP'];
                $fl .= '</td>';
                $fl .= '<td style="font-size:8pt;text-align:right">' . byte_output($db_backups[$i]['size']) . '</td>';
                $fl .= '<td style="font-size:8pt;text-align:right">' . $db_backups[$i]['charset'] . '</td>';
                $fl .= '</tr>';
                if ($expand == $i) {
                    $fl .= '<tr ' . ($dbactiv == $databases['db_actual'] ? 'class="dbrowsel"' : 'class="' . $cl . '"') . '>';
                    $fl .= '<td class="sm" valign="top">All Parts:</td><td  class="sm" colspan="11" align="left">' . PartListe($db_backups[$i]['name'], $db_backups[$i]['multipart']) . '</td>';
                }
                $rowclass++;
            }
        }
    }
    //v($db_backups);
    $fl .= '<tr><td colspan="11" align="left"><br><strong>' . $lang['L_FM_ALL_BU'] . '</strong></td></tr>';
    //Tableheader
    $fl .= '<tr class="thead"><th colspan="5" align="left">' . $lang['L_FM_DBNAME'] . '</th>
	<th align="left">' . $lang['L_FM_ANZ_BU'] . '</th><th>' . $lang['L_FM_LAST_BU'] . '</th>
	<th colspan="5" style="text-align:right;">' . $lang['L_FM_TOTALSIZE'] . '</th></tr>';
    //die anderen Backups
    if (count($db_summary_anzahl) > 0) {
        //lets sort the list
        ksort($db_summary_last);
        ksort($db_summary_anzahl);
        ksort($db_summary_size);
        $i = 0;
        while (list($key, $val) = each($db_summary_anzahl)) {
            $cl = $i++ % 2 ? "dbrow" : "dbrow1";
            $keyaus = $key == "~unknown" ? '<em>' . $lang['L_NO_MSD_BACKUPFILE'] . '</em>' : $key;
            $fl .= '<tr class="' . $cl . '"><td colspan="5" align="left"><a href="' . $href . '&amp;dbactiv=' . $key . '">' . $keyaus . '</a></td>';
            $fl .= '<td style="text-align:right">' . $val . '&nbsp;&nbsp;</td>';
            $fl .= '<td class="sm" nowrap="nowrap">' . (isset($db_summary_last[$key]) ? $db_summary_last[$key] : '') . '</td>';
            $fl .= '<td style="text-align:right;font-size:8pt;" colspan="5">' . byte_output($db_summary_size[$key]) . '&nbsp;</td>';
            $fl .= '</tr>';
        }
    }
    if (!is_array($files)) {
        $fl .= '<tr><td colspan="11">' . $lang['L_FM_NOFILESFOUND'] . '</td></tr>';
    }
    //--------------------------------------------------------
    //*** Ausgabe der Gesamtgr&ouml;&szlig;e aller Backupfiles ***
    //--------------------------------------------------------
    $space = MD_FreeDiskSpace();
    $fl .= '<tr>';
    $fl .= '<td align="left" colspan="8"><b>' . $lang['L_FM_TOTALSIZE'] . ' (' . $Sum_Files . ' files): </b> </td>';
    $fl .= '<td style="text-align:right" colspan="4"><b>' . byte_output($gesamt) . '</b></td>';
    $fl .= '</tr>';
    //--------------------------------------------------------
    //*** Ausgabe des freien Speicher auf dem Rechner ***
    //--------------------------------------------------------
    $fl .= '<tr>';
    $fl .= '<td colspan="8" align="left">' . $lang['L_FM_FREESPACE'] . ': </td>';
    $fl .= '<td colspan="4"  style="text-align:right"><b>' . $space . '</b></td>';
    $fl .= '</tr>';
    $fl .= '</table></div>';
    return $fl;
}
function FileList($multi = 0)
{
    global $config, $kind, $fpath, $lang, $databases, $href, $dbactiv, $action, $expand;
    $files = array();
    if ($kind == 0) {
        //Backup-Dateien
        $Theader = $lang['fm_files1'] . ' ' . $lang['of'] . ' "' . $dbactiv . '"';
        $Wheader = $lang['fm_files2'];
        $akind = 1;
    } else {
        //Struktur-Dateien
        $Theader = $lang['fm_files2'];
        $Wheader = $lang['fm_files1'];
        $akind = 0;
    }
    $Sum_Files = 0;
    $dh = opendir($fpath);
    $fl = "";
    $i = 0;
    while (false !== ($filename = readdir($dh))) {
        if ($filename != "." && $filename != ".." && !is_dir($fpath . $filename)) {
            $files[$i]['name'] = $filename;
            $Sum_Files++;
            $i++;
        }
    }
    $fl .= '<div align="center">' . br() . $lang['fm_choose_file'] . br();
    $fl .= '<span id="gd">&nbsp;</span>' . br() . '<br><br>';
    $fl .= '<table class="border">' . br();
    $fl .= '<tr>' . br() . '<td colspan="8" align="left"><strong>' . $Theader . '</strong></td>' . br() . '<td colspan="3" align="right"><a href="filemanagement.php?action=' . $action . '&amp;kind=' . $akind . '" class="small">' . $Wheader . '</a></td>' . br() . '</tr>' . br();
    //Tableheader
    $fl .= '<tr class="thead">' . br() . '<th colspan="2">' . $lang['db'] . '</th>' . br() . '
	<th>gz</th>' . br() . '
	<th>Script</th>' . br() . '
	<th colspan="2">' . $lang['comment'] . '</th>' . br() . '

	<th>' . $lang['fm_filedate'] . '</th>' . br() . '
	<th>Multipart</th>' . br() . '
	<th>' . $lang['fm_tables'] . ' / ' . $lang['fm_records'] . '</th>' . br() . '
	<th align="right" colspan="2">' . $lang['fm_filesize'] . '</th>' . br() . '</tr>' . br();
    $checkindex = $arrayindex = $gesamt = 0;
    $db_summary_anzahl = array();
    if (count($files) > 0) {
        for ($i = 0; $i < sizeof($files); $i++) {
            // Dateigr&ouml;&szlig;e
            $size = filesize($fpath . $files[$i]['name']);
            $file_datum = date("d\\.m\\.Y H:i", filemtime($fpath . $files[$i]['name']));
            //statuszeile auslesen
            $sline = '';
            if (substr($files[$i]['name'], -2) == "gz") {
                if ($config['zlib']) {
                    $fp = gzopen($fpath . $files[$i]['name'], "r");
                    $sline = gzgets($fp, 40960);
                    gzclose($fp);
                }
            } else {
                $fp = fopen($fpath . $files[$i]['name'], "r");
                $sline = fgets($fp, 5000);
                fclose($fp);
            }
            $statusline = ReadStatusline($sline);
            $but = ExtractBUT($files[$i]['name']);
            if ($but == "") {
                $but = $file_datum;
            }
            $dbn = $statusline['dbname'];
            //jetzt alle in ein Array packen
            if ($statusline['part'] == "MP_0" || $statusline['part'] == "") {
                $db_backups[$arrayindex]['name'] = $files[$i]['name'];
                $db_backups[$arrayindex]['db'] = $dbn;
                $db_backups[$arrayindex]['size'] = $size;
                $db_backups[$arrayindex]['date'] = $but;
                $db_backups[$arrayindex]['sort'] = sortierdatum($but);
                $db_backups[$arrayindex]['tabellen'] = $statusline['tables'];
                $db_backups[$arrayindex]['eintraege'] = $statusline['records'];
                $db_backups[$arrayindex]['multipart'] = 0;
                $db_backups[$arrayindex]['kommentar'] = $statusline['comment'];
                $db_backups[$arrayindex]['script'] = $statusline['script'] != "" ? $statusline['script'] . "(" . $statusline['scriptversion'] . ")" : "";
                if (!isset($db_summary_last[$dbn])) {
                    $db_summary_last[$dbn] = $but;
                }
                $db_summary_anzahl[$dbn] = isset($db_summary_anzahl[$dbn]) ? $db_summary_anzahl[$dbn] + 1 : 1;
                $db_summary_size[$dbn] = isset($db_summary_size[$dbn]) ? $db_summary_size[$dbn] + $size : $size;
                if ($but > $db_summary_last[$dbn]) {
                    $db_summary_last[$dbn] = $but;
                }
            } else {
                //multipart nur einmal
                $done = 0;
                if (!isset($db_summary_size[$dbn])) {
                    $db_summary_size[$dbn] = 0;
                }
                for ($j = 0; $j < $arrayindex; $j++) {
                    if (isset($db_backups[$j])) {
                        if ($db_backups[$j]['date'] == $but && $db_backups[$j]['db'] == $dbn) {
                            $db_backups[$j]['multipart']++;
                            $db_backups[$j]['size'] += $size;
                            $db_summary_size[$dbn] += $size;
                            $done = 1;
                            break;
                        }
                    }
                }
                if ($done == 1) {
                    $arrayindex--;
                }
                if ($done == 0) {
                    //Eintrag war noch nicht vorhanden
                    $db_backups[$arrayindex]['name'] = $files[$i]['name'];
                    $db_backups[$arrayindex]['db'] = $dbn;
                    $db_backups[$arrayindex]['size'] = $size;
                    $db_backups[$arrayindex]['date'] = $but;
                    $db_backups[$arrayindex]['sort'] = sortierdatum($but);
                    $db_backups[$arrayindex]['tabellen'] = $statusline['tables'];
                    $db_backups[$arrayindex]['eintraege'] = $statusline['records'];
                    $db_backups[$arrayindex]['multipart'] = 1;
                    $db_backups[$arrayindex]['kommentar'] = $statusline['comment'];
                    $db_backups[$arrayindex]['script'] = $statusline['script'] != "" ? $statusline['script'] . "(" . $statusline['scriptversion'] . ")" : "";
                    if (!isset($db_summary_last[$dbn])) {
                        $db_summary_last[$dbn] = $but;
                    }
                    $db_summary_anzahl[$dbn] = isset($db_summary_anzahl[$dbn]) ? $db_summary_anzahl[$dbn] + 1 : 1;
                    $db_summary_size[$dbn] = isset($db_summary_size[$dbn]) ? $db_summary_size[$dbn] + $size : $size;
                    if ($but > $db_summary_last[$dbn]) {
                        $db_summary_last[$dbn] = $but;
                    }
                }
            }
            // Gesamtgr&ouml;&szlig;e aller Backupfiles
            $arrayindex++;
            $gesamt = $gesamt + $size;
        }
    }
    //Schleife fertig - jetzt Ausgabe
    if (isset($db_backups) && is_array($db_backups)) {
        $db_backups = mu_sort($db_backups, 'sort,name');
    }
    // Hier werden die Dateinamen ausgegeben
    if ($arrayindex > 0) {
        for ($i = $arrayindex; $i >= 0; $i--) {
            $cl = $i % 2 ? "dbrow" : "dbrow1";
            if (isset($db_backups[$i]['db']) && $db_backups[$i]['db'] == $dbactiv) {
                $multi = $db_summary_anzahl[$dbactiv] > 1 && $action == "files" ? 1 : 0;
                $fl .= '<input type="hidden" name="multi" value="' . $multi . '">';
                if ($db_backups[$i]['multipart'] > 0) {
                    $dbn = NextPart($db_backups[$i]['name'], 1);
                } else {
                    $dbn = $db_backups[$i]['name'];
                }
                $fl .= '<tr ' . ($dbactiv == $databases['db_actual'] ? 'class="dbrowsel"' : 'class="' . $cl . '"') . '>' . br();
                $fl .= '<td align="left" colspan="2" nowrap>' . br();
                if ($multi == 0) {
                    $fl .= '<input type="hidden" name="multipart[]" value="' . $db_backups[$i]['multipart'] . '"><input name="file[]" type="radio" class="radio" value="' . $dbn . '" onClick="Check(' . $checkindex++ . ',0);">';
                } else {
                    $fl .= '<input type="hidden" name="multipart[]" value="' . $db_backups[$i]['multipart'] . '"><input name="file[]" type="checkbox" class="checkbox" value="' . $dbn . '" onClick="Check(' . $checkindex++ . ',1);">';
                }
                $fl .= $db_backups[$i]['multipart'] == 0 ? '&nbsp;<a href="' . $fpath . $dbn . '" title="Backupfile: ' . $dbn . '" style="font-size:8pt;" target="_blank">' . ($db_backups[$i]['db'] == 'unknown' ? $dbn : $db_backups[$i]['db']) . '</a></td>' . br() : '&nbsp;<span style="font-size:8pt;">' . $db_backups[$i]['db'] . '</span></td>' . br();
                $fl .= '<td class="sm" nowrap align="center">' . (substr($dbn, -3) == ".gz" ? '<img src="' . $config['files']['iconpath'] . 'gz.gif" alt="' . $lang['compressed'] . '" width="16" height="16" border="0">' : "&nbsp;") . '</td>';
                $fl .= '<td class="sm" nowrap align="center">' . $db_backups[$i]['script'] . '</td>';
                $fl .= '<td class="sm" nowrap align="right">' . ($db_backups[$i]['kommentar'] != "" ? '<img src="' . $config['files']['iconpath'] . 'rename.gif" alt="' . $db_backups[$i]['kommentar'] . '" title="' . $db_backups[$i]['kommentar'] . '" width="16" height="16" border="0">' : "&nbsp;") . '</td>';
                $fl .= '<td class="sm" nowrap align="left">' . ($db_backups[$i]['kommentar'] != "" ? nl2br(wordwrap($db_backups[$i]['kommentar'], 50)) : "&nbsp;") . '</td>';
                $fl .= '<td class="sm" nowrap>' . $db_backups[$i]['date'] . '</td>' . br();
                $fl .= '<td style="text-align:center">';
                $fl .= $db_backups[$i]['multipart'] == 0 ? $lang['no'] : '<a style="font-size:11px;" href="filemanagement.php?action=files&kind=0&dbactiv=' . $dbactiv . '&expand=' . $i . '">' . $db_backups[$i]['multipart'] . ' Files</a>';
                //
                $fl .= '</td>' . br() . '<td  style="text-align:right;padding-right:12px;" nowrap>';
                $fl .= $db_backups[$i]['eintraege'] != -1 ? $db_backups[$i]['tabellen'] . ' / ' . number_format($db_backups[$i]['eintraege'], 0, ",", ".") : $lang['fm_oldbackup'];
                $fl .= '</td>' . br();
                $fl .= '<td align="right" colspan="2" style="font-size:8pt;">' . byte_output($db_backups[$i]['size']) . '</td>' . br();
                $fl .= '</tr>' . br();
                if ($expand == $i) {
                    $fl .= '<tr ' . ($dbactiv == $databases['db_actual'] ? 'class="dbrowsel"' : 'class="' . $cl . '"') . '>' . br();
                    $fl .= '<td class="sm" valign="top">All Parts:</td><td  class="sm" colspan="11" align="left">' . PartListe($db_backups[$i]['name'], $db_backups[$i]['multipart']) . '</td>';
                }
            }
        }
    }
    $fl .= '<tr>' . br() . '<td colspan="11" align="left"><br><strong>' . $lang['fm_all_bu'] . '</strong></td>' . br() . '</tr>' . br();
    //Tableheader
    $fl .= '<tr class="thead">' . br() . '<th colspan="5" align="left">' . $lang['fm_dbname'] . '</th>' . br() . '
	<th align="left">' . $lang['fm_anz_bu'] . '</th>' . br() . '
	<th>' . $lang['fm_last_bu'] . '</th>' . br() . '
	<th colspan="4" style="text-align:right;">' . $lang['fm_totalsize'] . '</th></tr>' . br();
    //die anderen Backups
    if (count($db_summary_anzahl) > 0) {
        $i = 0;
        while (list($key, $val) = each($db_summary_anzahl)) {
            $cl = $i++ % 2 ? "dbrow" : "dbrow1";
            $keyaus = $key == "unknown" ? '<em>' . $lang['no_msd_backupfile'] . '</em>' : $key;
            $fl .= '<tr class="' . $cl . '">' . br() . '<td colspan="5" align="left"><a href="' . $href . '&dbactiv=' . $key . '">' . $keyaus . '</a></td>' . br();
            $fl .= '<td style="text-align:right">' . $val . '&nbsp;&nbsp;</td>' . br();
            $fl .= '<td class="sm" nowrap>' . (isset($db_summary_last[$key]) ? $db_summary_last[$key] : "") . '</td>' . br();
            $fl .= '<td style="text-align:right;font-size:8pt;" colspan="4">' . byte_output($db_summary_size[$key]) . '&nbsp;</td>' . br();
            $fl .= '</tr>' . br(3);
        }
    }
    if (!is_array($files)) {
        $fl .= '<tr><td colspan="11">' . $lang['fm_nofilesfound'] . '</td></tr>' . br();
    }
    //--------------------------------------------------------
    //*** Ausgabe der Gesamtgr&ouml;&szlig;e aller Backupfiles ***
    //--------------------------------------------------------
    $space = MD_FreeDiskSpace();
    $fl .= '<tr>' . br();
    $fl .= '<td align="left" colspan="8"><b>' . $lang['fm_totalsize'] . ' (' . $Sum_Files . ' files): </b> </td>' . br();
    $fl .= '<td style="text-align:right" colspan="3"><b>' . byte_output($gesamt) . '</b></td>' . br();
    $fl .= '</tr>' . br();
    //--------------------------------------------------------
    //*** Ausgabe des freien Speicher auf dem Rechner ***
    //--------------------------------------------------------
    $fl .= '<tr>' . br();
    $fl .= '<td colspan="8" align="left">' . $lang['fm_freespace'] . ': </td>' . br();
    $fl .= '<td colspan="3"  style="text-align:right"><b>' . $space . '</b></td>' . br();
    $fl .= '</tr>' . br();
    $fl .= '</table></div>' . br();
    return $fl;
}