Blätterfunktion in einem Verzeichnis

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Blätterfunktion in einem Verzeichnis

    Hi Leute,

    erstmal hallo, bin neu hier. Ich schlage mich jetzt schon seit Wochen mit einem Problem herum und komme nicht wirklich weiter. Ich will eine Blätterfunktion in ein Script einbauen, bekomme das aber nicht so ganz hin. In dem Verzeichnis werden einzelne Textfiles abgelegt, also keine MySQL-Datenbank, denn da wäre es einfach anhand der Tutorials die ich durchgelesen habe. Ich würde gerne 25 Treffer aus dem Verzeichnis pro Seite ausgeben wollen. Aber ich bin Neueinsteiger in PHP und was Flatfiles etc. angeht, gibt es nicht so viele Tutorials. Das Script sieht wie folgt aus:

    Quellcode

    1. <?php
    2. include("./config.php");
    3. if(isset($_GET['act'])){$act = $_GET['act'];}else{$act = "null";}
    4. session_start();
    5. include("./header.php");
    6. if($enable_filelist==false){
    7. echo "This page is disabled.";
    8. include("./footer.php");
    9. die();
    10. }
    11. ?>
    12. <center><table style='margin-top:0px;width:100%;height:400px;'><tr><td style='border:0px #AAAAAA solid;height:100%;background-color:#FFFFFF;padding:0px;text-align:left;' valign=top>
    13. <h1><center>File List</h1>
    14. <p><table width="100%" cellpadding="2" cellspacing="2" border="0">
    15. <tr><td bgcolor=#C0C0C0>No</td><td width="50%" bgcolor=#C0C0C0><a href=files.php?sortby=filename style=color:black><b>Filename</b></a></td><td bgcolor=#C0C0C0><a href=files.php?sortby=cat style=color:black><b>Catagory</b></td><td bgcolor=#C0C0C0><a href=files.php style=color:black><b>Downloads</b></a></td><td bgcolor=#C0C0C0><b>Size</b></td><td bgcolor=#C0C0C0><b>Last Download</b></td></tr>
    16. <tr><td colspan=6 height=1 bgcolor=#969696></td></tr>
    17. <?php
    18. if(isset($_GET['act'])){$act = $_GET['act'];}else{$act = "null";}
    19. // Rename PATHTO with the mapname where you keep the config.php
    20. include("./config.php");
    21. if($enable_filelist == false){
    22. echo "File List Is Disabled.";
    23. die();
    24. }
    25. $order = array();
    26. $dirname = "./files";
    27. $dh = opendir( $dirname ) or die("couldn't open directory");
    28. while ( $file = readdir( $dh ) ) {
    29. if ($file != '.' && $file != '..' && $file != '.htaccess') {
    30. $fh = fopen ("./files/".$file, r);
    31. $list= explode('|', fgets($fh));
    32. $filecrc = str_replace(".txt","",$file);
    33. if ($_GET['sortby'] == "filename") {
    34. $order[] = $list[1].','.$filecrc.','.$list[5].",".$list[4].",".$list[8];
    35. } elseif($_GET['sortby'] == "cat"){
    36. $order[] = $list[8].','.$filecrc.','.$list[5].",".$list[4].",".$list[1];
    37. } else {
    38. $order[] = $list[5].','.$filecrc.','.$list[1].",".$list[4].",".$list[8];
    39. }
    40. fclose ($fh);
    41. }
    42. }
    43. if (isset($_GET['sortby'])) {
    44. sort($order, SORT_STRING);
    45. } else {
    46. sort($order, SORT_NUMERIC);
    47. $order = array_reverse($order);
    48. }
    49. $i = 1;
    50. foreach($order as $line)
    51. {
    52. $line = explode(',', $line);
    53. $shourturl==$me;
    54. if ($me=="true")
    55. $short= "";
    56. else
    57. $short= "download.php?file=";
    58. if ($_GET['sortby'] == "filename") {
    59. echo "<tr><td bgcolor=#E8E8E8>".$i."</td><td bgcolor=#E8E8E8><a href=\"" . $scripturl . "$me$short" . $line[1] . "\">".$line[0]."</a></td><td bgcolor=#E8E8E8>".$line[4]."</td><td bgcolor=#E8E8E8>".$line[2]."</td>";
    60. } elseif($_GET['sortby'] == "cat"){
    61. echo "<tr><td bgcolor=#E8E8E8>".$i."</td><td bgcolor=#E8E8E8><a href=\"" . $scripturl . "$me$short" . $line[1] . "\">".$line[4]."</a></td><td bgcolor=#E8E8E8>".$line[0]."</td><td bgcolor=#E8E8E8>".$line[2]."</td>";
    62. } else {
    63. echo "<tr><td bgcolor=#E8E8E8>".$i."</td><td bgcolor=#E8E8E8><a href=\"" . $scripturl . "$me$short" . $line[1] . "\">".$line[2]."</a></td><td bgcolor=#E8E8E8>".$line[4]."</td><td bgcolor=#E8E8E8>".$line[0]."</td>";
    64. }
    65. // Rename PATHTO with the mapname where you keep the "storage" map
    66. $filesize = filesize("./storage/".$line[1]);
    67. $filesize = ($filesize / 1048576);
    68. if ($filesize < 1)
    69. {
    70. $filesize = round($filesize*1024,0);
    71. echo "<td bgcolor=#E8E8E8>" . $filesize . " KB</td>";
    72. }
    73. else
    74. {
    75. $filesize = round($filesize,0);
    76. echo "<td bgcolor=#E8E8E8>" . $filesize . " MB</td>";
    77. }
    78. echo "<td bgcolor=#E8E8E8>".date('Y-m-d G:i', $line[3])."</td></tr>";
    79. $i++;
    80. }
    81. ?>
    82. <tr><td colspan=6 height=1 bgcolor=#969696></td></tr>
    83. <tr><td colspan=6>
    84. <?
    85. function total_size($dir) {
    86. $handle = opendir($dir);
    87. while($file = readdir($handle)) {
    88. $total = $total + filesize ($dir.$file);
    89. if((is_dir($dir.$file.'/')) &&($file != '..')&&($file != '.'))
    90. {
    91. $total = $total + total_size($dir.$file.'/');
    92. }
    93. }
    94. return $total;
    95. }
    96. $total = total_size('storage/');
    97. $total = $total / 1048576;
    98. $total = round($total,0);
    99. echo "<span style=color:gray>Total Size: " . $total." MB</span>";
    100. ?>
    101. </td></tr>
    102. </table>
    103. <br>
    104. <br>
    105. <? include("./bottomads.php"); ?>
    106. </center></td></tr></table><p style="margin:3px;text-align:center"><?
    107. include("./footer.php");
    108. ?>
    Alles anzeigen


    Hat jemand einen Tipp für mich, wie ich das realisieren kann mit der Blätterfunktion?

    Gruß inekai
  • Ich denke mal, dass hier in diesem Array die Liste geordnet wird nach:

    No, Filename, Catagory, Downloads, Size, Last Download

    http://www.inekai.de/mfhblack1/files.php <= Die besagte Liste. Das Problem daran ist, wenn mehr als 100 oder 200 Files in der Liste sind, wird sie halt sehr unübersichtlich, geschweige denn von tausenden Files.

    Ich habe ein interessantes Tutorial gefunden und das hat schon fast geklappt, nur die Blätterfunktion des Tutorials haut irgendwie bei mir nicht hin. Das wäre schon fast die Lösung gewesen und ich hab mich schon gefreut aber bei mir hat`s dann doch nicht geklappt:

    http://web3.server1.dce4u.de/modules.php?name=News&file=article&sid=401

    Was ich schon verstanden habe ist, dass es irgendwie mit einer while-Schleife gehen sollte, aber wie?

    Gruß Inekai
  • Hm, also mit meinem Learning-by-doing bin ich nicht wirklich weiter gekommen. Mit dem Code von elKane habe ich es zumindest geschafft, dass mir 25 Ergebnisse angezeigt wurden, doch ich denke ich habe den Code falsch eingebaut und 'deineZeile' mit einem falschen Wert bestückt.

    Ich könnte doch noch etwas Hilfe gebrauchen. Den Code von d0nUt habe ich auch getestet, jedoch waren wohl auch da meine 2 Parameter start und end falsch.

    Die Ausgabe der Liste wird von diesem Code generiert:

    Quellcode

    1. <?php
    2. if(isset($_GET['act'])){$act = $_GET['act'];}else{$act = "null";}
    3. // Rename PATHTO with the mapname where you keep the config.php
    4. include("./config.php");
    5. if($enable_filelist == false){
    6. echo "File List Is Disabled.";
    7. die();
    8. }
    9. $order = array();
    10. $dirname = "./files";
    11. $dh = opendir( $dirname ) or die("couldn't open directory");
    12. while ( $file = readdir( $dh ) ) {
    13. if ($file != '.' && $file != '..' && $file != '.htaccess') {
    14. $fh = fopen ("./files/".$file, r);
    15. $list= explode('|', fgets($fh));
    16. $filecrc = str_replace(".txt","",$file);
    17. if ($_GET['sortby'] == "filename") {
    18. $order[] = $list[1].','.$filecrc.','.$list[5].",".$list[4].",".$list[8];
    19. } elseif($_GET['sortby'] == "cat"){
    20. $order[] = $list[8].','.$filecrc.','.$list[5].",".$list[4].",".$list[1];
    21. } else {
    22. $order[] = $list[5].','.$filecrc.','.$list[1].",".$list[4].",".$list[8];
    23. }
    24. fclose ($fh);
    25. }
    26. }
    27. if (isset($_GET['sortby'])) {
    28. sort($order, SORT_STRING);
    29. } else {
    30. sort($order, SORT_NUMERIC);
    31. $order = array_reverse($order);
    32. }
    33. $i = 1;
    34. foreach($order as $line)
    35. {
    36. $line = explode(',', $line);
    37. $shourturl==$me;
    38. if ($me=="true")
    39. $short= "";
    40. else
    41. $short= "download.php?file=";
    42. if ($_GET['sortby'] == "filename") {
    43. echo "<tr><td bgcolor=#E8E8E8>".$i."</td><td bgcolor=#E8E8E8><a href=\"" . $scripturl . "$me$short" . $line[1] . "\">".$line[0]."</a></td><td bgcolor=#E8E8E8>".$line[4]."</td><td bgcolor=#E8E8E8>".$line[2]."</td>";
    44. } elseif($_GET['sortby'] == "cat"){
    45. echo "<tr><td bgcolor=#E8E8E8>".$i."</td><td bgcolor=#E8E8E8><a href=\"" . $scripturl . "$me$short" . $line[1] . "\">".$line[4]."</a></td><td bgcolor=#E8E8E8>".$line[0]."</td><td bgcolor=#E8E8E8>".$line[2]."</td>";
    46. } else {
    47. echo "<tr><td bgcolor=#E8E8E8>".$i."</td><td bgcolor=#E8E8E8><a href=\"" . $scripturl . "$me$short" . $line[1] . "\">".$line[2]."</a></td><td bgcolor=#E8E8E8>".$line[4]."</td><td bgcolor=#E8E8E8>".$line[0]."</td>";
    48. }
    49. // Rename PATHTO with the mapname where you keep the "storage" map
    50. $filesize = filesize("./storage/".$line[1]);
    51. $filesize = ($filesize / 1048576);
    52. if ($filesize < 1)
    53. {
    54. $filesize = round($filesize*1024,0);
    55. echo "<td bgcolor=#E8E8E8>" . $filesize . " KB</td>";
    56. }
    57. else
    58. {
    59. $filesize = round($filesize,0);
    60. echo "<td bgcolor=#E8E8E8>" . $filesize . " MB</td>";
    61. }
    62. echo "<td bgcolor=#E8E8E8>".date('Y-m-d G:i', $line[3])."</td></tr>";
    63. $i++;
    64. }
    65. ?>
    66. <tr><td colspan=6 height=1 bgcolor=#969696></td></tr>
    67. <tr><td colspan=6>
    68. <?
    69. function total_size($dir) {
    70. $handle = opendir($dir);
    71. while($file = readdir($handle)) {
    72. $total = $total + filesize ($dir.$file);
    73. if((is_dir($dir.$file.'/')) &&($file != '..')&&($file != '.'))
    74. {
    75. $total = $total + total_size($dir.$file.'/');
    76. }
    77. }
    78. return $total;
    79. }
    80. $total = total_size('storage/');
    81. $total = $total / 1048576;
    82. $total = round($total,0);
    83. echo "<span style=color:gray>Total Size: " . $total." MB</span>";
    84. ?>
    Alles anzeigen


    Das habe ich schon verstanden. Das erzeugt die Tabelle mit den Ergebnissen. Ich habe Probleme mit dem korrekten Einbau und die korrekten Werte setzen. Gibt es ein gutes PHP Buch das für Einsteiger geeignet ist. HTML ist für mich kein Problem und Styling, doch mit PHP befasse ich mich erst seit kurzem.

    Gruß inekai
  • PHP Literatur haben wir hier zusammengefasst.
    Ob du besser von Papier oder aus Tutorials lernen kannst, muss du wissen.

    Hier noch ein Hint:

    Quellcode

    1. foreach($order as $line)
    2. {
    3. if($_GET['start'] < $i && $i<$_GET['end'])
    4. {
    5. $line = explode(',', $line);
    6. $shourturl==$me;
    7. /* ... */
    8. echo "<td bgcolor=#E8E8E8>".date('Y-m-d G:i', $line[3])."</td></tr>";
    9. $i++;
    10. }
    11. }
    Alles anzeigen
  • Hi d0nUt,

    danke nochmals für Deine Hilfe.

    Ich habe das jetzt eingebaut in das Script und nun habe ich einen Parse-Fehler

    Parse error: parse error, unexpected $end in C:\apache\xampp\htdocs\mfhblack1\files.php on line 147

    Die Line 147 ist das abschließende ?>

    Ich habe oben folgendes eingebaut:

    Quellcode

    1. $order = array();
    2. $dirname = "./files";
    3. $start = "./files";
    4. $end = "./files";
    5. $dh = opendir( $dirname ) or die("couldn't open directory");
    6. while ( $file = readdir( $dh ) ) {
    7. if ($file != '.' && $file != '..' && $file != '.htaccess') {
    8. $fh = fopen ("./files/".$file, r);
    9. $list= explode('|', fgets($fh));
    10. $filecrc = str_replace(".txt","",$file);
    11. if ($_GET['sortby'] == "filename") {
    12. $order[] = $list[1].','.$filecrc.','.$list[5].",".$list[4].",".$list[8];
    13. } elseif($_GET['sortby'] == "cat"){
    14. $order[] = $list[8].','.$filecrc.','.$list[5].",".$list[4].",".$list[1];
    15. } else {
    16. $order[] = $list[5].','.$filecrc.','.$list[1].",".$list[4].",".$list[8];
    17. }
    18. fclose ($fh);
    19. }
    20. }
    Alles anzeigen


    Also start und end, allerdings weiß ich nicht, ob diese 2 Werte richtig sind. Wenn ich das richtig verstanden habe, müssen start und end die komplette Liste beinhalten oder nur die Ausgabe von 1 - 25?

    Gruß inekai
  • Hm, also hier ist der komplette Code der files.php:

    Quellcode

    1. <?php
    2. include("./config.php");
    3. if(isset($_GET['act'])){$act = $_GET['act'];}else{$act = "null";}
    4. session_start();
    5. include("./header.php");
    6. if($enable_filelist==false){
    7. echo "This page is disabled.";
    8. include("./footer.php");
    9. die();
    10. }
    11. ?>
    12. <center><table style='margin-top:0px;width:100%;height:400px;'><tr><td style='border:0px #AAAAAA solid;height:100%;background-color:#FFFFFF;padding:0px;text-align:left;' valign=top>
    13. <h1><center>File List</h1>
    14. <p><table width="100%" cellpadding="2" cellspacing="2" border="0">
    15. <tr><td bgcolor=#C0C0C0>No</td><td width="50%" bgcolor=#C0C0C0><a href=files.php?sortby=filename style=color:black><b>Filename</b></a></td><td bgcolor=#C0C0C0><a href=files.php?sortby=cat style=color:black><b>Catagory</b></td><td bgcolor=#C0C0C0><a href=files.php style=color:black><b>Downloads</b></a></td><td bgcolor=#C0C0C0><b>Size</b></td><td bgcolor=#C0C0C0><b>Last Download</b></td></tr>
    16. <tr><td colspan=6 height=1 bgcolor=#969696></td></tr>
    17. <?php
    18. if(isset($_GET['act'])){$act = $_GET['act'];}else{$act = "null";}
    19. // Rename PATHTO with the mapname where you keep the config.php
    20. include("./config.php");
    21. if($enable_filelist == false){
    22. echo "File List Is Disabled.";
    23. die();
    24. }
    25. $order = array();
    26. $dirname = "./files";
    27. $dh = opendir( $dirname ) or die("couldn't open directory");
    28. while ( $file = readdir( $dh ) ) {
    29. if ($file != '.' && $file != '..' && $file != '.htaccess') {
    30. $fh = fopen ("./files/".$file, r);
    31. $list= explode('|', fgets($fh));
    32. $filecrc = str_replace(".txt","",$file);
    33. if ($_GET['sortby'] == "filename") {
    34. $order[] = $list[1].','.$filecrc.','.$list[5].",".$list[4].",".$list[8];
    35. } elseif($_GET['sortby'] == "cat"){
    36. $order[] = $list[8].','.$filecrc.','.$list[5].",".$list[4].",".$list[1];
    37. } else {
    38. $order[] = $list[5].','.$filecrc.','.$list[1].",".$list[4].",".$list[8];
    39. }
    40. fclose ($fh);
    41. }
    42. }
    43. if (isset($_GET['sortby'])) {
    44. sort($order, SORT_STRING);
    45. } else {
    46. sort($order, SORT_NUMERIC);
    47. $order = array_reverse($order);
    48. }
    49. $i = 1;
    50. foreach($order as $line)
    51. {
    52. if ($_GET['start'] < $i && $i<$_GET['end'])
    53. {
    54. $line = explode(',', $line);
    55. $shourturl==$me;
    56. if ($me=="true")
    57. $short= "";
    58. else
    59. $short= "download.php?file=";
    60. if ($_GET['sortby'] == "filename") {
    61. echo "<tr><td bgcolor=#E8E8E8>".$i."</td><td bgcolor=#E8E8E8><a href=\"" . $scripturl . "$me$short" . $line[1] . "\">".$line[0]."</a></td><td bgcolor=#E8E8E8>".$line[4]."</td><td bgcolor=#E8E8E8>".$line[2]."</td>";
    62. } elseif($_GET['sortby'] == "cat"){
    63. echo "<tr><td bgcolor=#E8E8E8>".$i."</td><td bgcolor=#E8E8E8><a href=\"" . $scripturl . "$me$short" . $line[1] . "\">".$line[4]."</a></td><td bgcolor=#E8E8E8>".$line[0]."</td><td bgcolor=#E8E8E8>".$line[2]."</td>";
    64. } else {
    65. echo "<tr><td bgcolor=#E8E8E8>".$i."</td><td bgcolor=#E8E8E8><a href=\"" . $scripturl . "$me$short" . $line[1] . "\">".$line[2]."</a></td><td bgcolor=#E8E8E8>".$line[4]."</td><td bgcolor=#E8E8E8>".$line[0]."</td>";
    66. }
    67. // Rename PATHTO with the mapname where you keep the "storage" map
    68. $filesize = filesize("./storage/".$line[1]);
    69. $filesize = ($filesize / 1048576);
    70. if ($filesize < 1)
    71. {
    72. $filesize = round($filesize*1024,0);
    73. echo "<td bgcolor=#E8E8E8>" . $filesize . " KB</td>";
    74. }
    75. else
    76. {
    77. $filesize = round($filesize,0);
    78. echo "<td bgcolor=#E8E8E8>" . $filesize . " MB</td>";
    79. }
    80. echo "<td bgcolor=#E8E8E8>".date('Y-m-d G:i', $line[3])."</td></tr>";
    81. $i++;
    82. }
    83. ?>
    84. <tr><td colspan=6 height=1 bgcolor=#969696></td></tr>
    85. <tr><td colspan=6>
    86. <?
    87. function total_size($dir) {
    88. $handle = opendir($dir);
    89. while($file = readdir($handle)) {
    90. $total = $total + filesize ($dir.$file);
    91. if((is_dir($dir.$file.'/')) &&($file != '..')&&($file != '.'))
    92. {
    93. $total = $total + total_size($dir.$file.'/');
    94. }
    95. }
    96. return $total;
    97. }
    98. $total = total_size('storage/');
    99. $total = $total / 1048576;
    100. $total = round($total,0);
    101. echo "<span style=color:gray>Total Size: " . $total." MB</span>";
    102. ?>
    103. </td></tr>
    104. </table><br>
    105. <? include("./bottomads.php"); ?>
    106. </center></td></tr></table><p style="margin:3px;text-align:center"><?
    107. include("./footer.php");
    108. ?>
    Alles anzeigen


    Ich habe also nur den Code so eingebaut, wue Du oben beschrieben hast. ich sehe gerade, dss nach foreach und nach if eine { geöffnet wurde aber nur eine } geschlossen. Kann es an dem liegen?

    Gruß inekai
  • Mein Gott, es werkelt :D Es ist unglaublich was eine falsch gesetzte Klammer bei PHP ausmacht. Ich sehe schon, da habe ich noch viel Lernarbeit vor mir, bis ich selbst etwas in PHP einigermaßen machen kann, aber zumindest habe ich schon einiges verstanden und arbeite fleissig Eure Turorials ab.

    Als nächstes versuche ich mal eine einigermaßen korrekte Suchfunktion hinzubekommen, denn die jetzige hat einen großen Nachteil - sie findet nur exakte Treffer und für diese Funktion habe ich schon ca. 3 Wochen gebraucht, aber vielleicht kann man ja aus dem jetzigen Script noch was machen.

    Gruß inekai

    P.S.: und nochmals vielen Dank für Eure Geduld mit mir :?
  • Ich bin ja immer noch auf der Suche nach einer automatischen Blätterfunktion. Die Lösung von d0nUt funktioniert zwar ausgezeichnet, hat aber den Nachteil, dass ich die Links, wenn mehrere Dateien dazukommen per Hand in das Script schreiben muss. Ich habe jetzt ein Blätterklasse gefunden und versuche nun verzweifelt, diese in mein Script zu integrieren. Die Klasse sieht folgendermaßen aus und kann sowohl für MySQL als auch für Textfiles benutzt werden:

    Quellcode

    1. <?php
    2. /*
    3. **********************************************
    4. **********************************************
    5. Bätternavigation bl_intervation 0.9 Beta
    6. by intervation.de / Armin Bartsch
    7. (c) intervation.de / Armin Bartsch
    8. http://www.intervation.de
    9. Support nur unter http://intervation.de/forum/
    10. info@intervation.de
    11. Dieses Script ist Freeware.
    12. Das Script darf verändert werden, der Copy-Hinweis muss erhalten blieben!
    13. -----------------------------------------------------------------------
    14. */
    15. /*
    16. Installation
    17. - die bl.php mit require("bl.php"); einbinden;
    18. - Konfiguration durchführen (siehe unten)
    19. - Mit dem Aufruf "$nav_search = $bl->nav($gesamt,$begin_for);" wird die Blätternavi erstellt
    20. und der Varibalen $nav_search übergeben.
    21. $gesamt und $begin_for müssen dynamsich von Script übergeben werden!
    22. $gesamt = Gesamtbeiträge
    23. $begin_for = Aktuelle Seite
    24. */
    25. /*
    26. Konfiguration
    27. */
    28. // Anzeige pro Seite
    29. $bl_anzeige = 10;
    30. // Trennzeichem zwischen den Links
    31. $bl_delimeter = '-';
    32. //Anzahl Seitenlinks, am besten eine ungerade Zahl
    33. $bl_anzahllinks = 7;
    34. // Name der Datei in der geblättert wird
    35. $bl_file = 'admin3.php?start=';
    36. //Bezeichner für Link
    37. $bl_link = '[<a href="{$bl_file}{$i}">{$i}</a>]';
    38. //Bezeichner für aktiven Link
    39. $bl_link_aktiv = '({$i})';
    40. //Bezeichner zum Anfang
    41. $bl_anfang = '[<a href="{$bl_file}{$i}">&laquo;</a>]';
    42. // Bezeichner zurück
    43. $bl_zurueck = ' [<a href="{$bl_file}{$i}">‹</a>] ';
    44. //Bezeichner zum Ende
    45. $bl_ende = ' [<a href="{$bl_file}{$i}">&raquo;</a>]';
    46. // Bezeichner vor
    47. $bl_vor = ' [<a href="{$bl_file}{$i}" >›</a>]';
    48. /*
    49. ***********************
    50. Ab hier keine Änderungen mehr vornehmen
    51. ***********************
    52. */
    53. class blaetter{
    54. var $seiten = 0;
    55. var $start = 1;
    56. var $navbar = '';
    57. function nav($bl_gesamt,$bl_aktuell){
    58. $this->gesamt = $bl_gesamt;
    59. $this->seiten();
    60. $this->aktuell = $bl_aktuell > $this->seiten ? false : $bl_aktuell;
    61. $this->start();
    62. $this->anfang();
    63. $this->links();
    64. $this->ende();
    65. return $this->navbar;
    66. }
    67. function seiten(){
    68. global $bl_anzeige;
    69. $this->seiten = ceil($this->gesamt/$bl_anzeige);
    70. return true;
    71. }
    72. function start(){
    73. global $bl_anzahllinks;
    74. if($this->seiten > $bl_anzahllinks){
    75. $start_pos = $this->aktuell-floor($bl_anzahllinks/2);
    76. if($start_pos > ($this->seiten-$bl_anzahllinks))
    77. $this->start = $this->seiten-$bl_anzahllinks+1;
    78. elseif($start_pos > 1)
    79. $this->start = $start_pos;
    80. }
    81. }
    82. function links(){
    83. global $bl_delimeter,$bl_link,$bl_link_aktiv,$bl_file,$bl_delimeter,$bl_anzahllinks;
    84. $ende = $bl_anzahllinks > $this->seiten ? $this->seiten : $bl_anzahllinks ;
    85. for($i=$this->start;$i < $ende+$this->start;$i++){
    86. if($this->aktuell == $i)
    87. eval ("\$this->navbar .= \"".$this->adds($bl_link_aktiv)."\";");
    88. else
    89. eval ("\$this->navbar .= \"".$this->adds($bl_link)."\";");
    90. if(($i >= $this->start && $i < $bl_anzahllinks+$this->start-1) && $this->seiten > 1)
    91. eval ("\$this->navbar .= \"".$this->adds($bl_delimeter)."\";");
    92. }
    93. }
    94. function anfang(){
    95. global $bl_anfang,$bl_zurueck,$bl_file,$bl_anzahllinks;
    96. if($this->seiten > $bl_anzahllinks && $this->start > 1){
    97. $i = 1;
    98. eval ("\$this->navbar .= \"".$this->adds($bl_anfang)."\";");
    99. }
    100. if($this->aktuell != 1){
    101. $i = $this->aktuell-1;
    102. eval ("\$this->navbar .= \"".$this->adds($bl_zurueck)."\";");
    103. }
    104. }
    105. function ende(){
    106. global $bl_vor,$bl_ende,$bl_file,$bl_anzahllinks;
    107. if($this->aktuell != $this->seiten){
    108. $i = $this->aktuell+1;
    109. eval ("\$this->navbar .= \"".$this->adds($bl_vor)."\";");
    110. }
    111. if($this->seiten > $bl_anzahllinks){
    112. $i = $this->seiten;
    113. eval ("\$this->navbar .= \"".$this->adds($bl_ende)."\";");
    114. }
    115. }
    116. function adds($text){
    117. return addslashes($text);
    118. }
    119. }
    120. $bl = new blaetter();
    121. ?>
    Alles anzeigen


    Ich habe auch dort im Forum nachgefragt, jedoch sind da die meisten Einträge noch von 2002. Ich weiß nicht, ob dort noch etwas los ist.

    Ich hätte es jetzt mal so probiert, jedoch haut das noch nicht so hin:

    Quellcode

    1. <?php
    2. $i = 1;
    3. $dirname = "./files";
    4. $dh = opendir( $dirname ) or die("couldn't open directory");
    5. while ( $file = readdir( $dh ) ) {
    6. if ($file != '.' && $file != '..' && $file != '.htaccess') {
    7. $filecrc = str_replace(".txt","",$file);
    8. $filesize = filesize("./storage/". $filecrc);
    9. $filesize = ($filesize / 1048576);
    10. $fh = fopen ("./files/".$file, r);
    11. $filedata= explode('|', fgets($fh));
    12. $xzal=$i++;
    13. echo "<tr><td bgcolor=#F2F2F2 align=center>".$xzal."</td><td bgcolor=#F2F2F2 align=center><img src=mfhimages/disk.gif></td><td bgcolor=#F2F2F2 width=><a href=\"$me"."dl.php?file=".$filedata[0]."\" target=\"_blank\">".$filedata[1]."</a></td><td bgcolor=#F2F2F2 align=center>".$filedata[9]."</td><td bgcolor=#F2F2F2 align=center>".round($filesize,2)."</td>";
    14. echo "<td bgcolor=#F2F2F2 align=center>".$filedata[3]."</td><td bgcolor=#F2F2F2 align=center>".$filedata[5]."</td><td style=padding-left:5px bgcolor=#F2F2F2 align=center>".round($filesize*$filedata[5],2)."</td><td style=padding-left:5px bgcolor=#F2F2F2 align=center><a href=\"admin.php?delete=".$filecrc."\"><img src=\"mfhimages/del.jpg\" width=16 height=16 border=0></a></td></tr>";
    15. $tsize = $tsize + round($filesize,2);
    16. $tbandwidth = $tbandwidth + round($filesize*$filedata[5],2);
    17. $tdownload = $tdownload + round($filedata[5],2);
    18. fclose ($fh);
    19. }
    20. }
    21. // Einbinden der Blätterklasse ; evtl. Pfad anpassen
    22. include("bl.php");
    23. // Dann der Varibalen $begin_for einen Wert zuweisen
    24. // Bei meinem Beispiel wird start per GET (an die URL angehangen) übergeben.
    25. $begin_for = isset($_GET['start']) ? $_GET['start'] : 1;
    26. // Dann wird $gesamt übergeben.
    27. // Gesamt sind die gesamten Einträge die vorhanden sind.
    28. // Wie Du gesamt ermittelst hängt von deinem Code ab, ob aus DB oder Fiele
    29. $gesamt = $file;
    30. // Nun wird die Navi-Leiste erzeugt und an $nav_search übergeben
    31. $nav_search = $bl->nav($gesamt,$begin_for);
    32. // An der Stelle wo die Ausgabe erfolgen soll
    33. echo $nav_search;
    34. closedir( $dh );
    35. echo "<tr><td colspan=3 align=left bgcolor=#C0C0C0><b>Gesamt:</b> (Summe aller Dateigrößen, Downloads und Traffic)</td><td bgcolor=#C0C0C0></td><td bgcolor=#C0C0C0 align=center><b>".$tsize." MB</td><td bgcolor=#C0C0C0></td><td bgcolor=#C0C0C0 align=center><b>".$tdownload."</td><td bgcolor=#C0C0C0 align=center><b>".$tbandwidth." MB</b></td><td bgcolor=#C0C0C0 align=center></td></tr></table>";
    36. ?>
    37. Irgendetwas habe ich da wohl übersehen. Wo liegt da mein Denkfehler?
    38. Gruß Inekai
    Alles anzeigen
    "Die Wahrheit wird oft verdunkelt, aber sie erlischt nie."

    Livius