Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Dateiliste gruppieren (https://www.delphipraxis.net/65144-%5Bphp%5D-dateiliste-gruppieren.html)

Luckie 13. Mär 2006 14:23

Re: [PHP] Dateiliste gruppieren
 
Ich denke das ist nicht nötig, so viel schreibe ich nun doch nicht in einem Monat. ;)

Luckie 27. Mär 2006 15:08

Re: [PHP] Dateiliste gruppieren
 
Ich schreibe wohl doch mehr. ;) Wie müsste ich das jetzt auch für die monate integrieren und kann man mit PHP den Monatsnamen irgendwie ausgeschrieben ausgeben lassen, dass man jetzt nicht immer abfragen müsste "ween 1 dann Januar, wenn 2 dann Feberuar" usw?

S2B 27. Mär 2006 15:36

Re: [PHP] Dateiliste gruppieren
 
versuchs mal so:
Code:
$monate = array(
  1 => 'Januar',
  2 => 'Februar',
  3 => 'März',
  4 => 'April',
  5 => 'Mai',
  [...]);

[...]

$dein_monat = $monate[$monat];
$monat ist dabei die "Monatszahl".

Luckie 27. Mär 2006 15:40

Re: [PHP] Dateiliste gruppieren
 
So was wollte ich eigentlcih vermeiden, aber mal gucken. Danke jedenfalls.

Hm, so ganz will es nicht, wie ich es mir vorstelle:
Code:
    // Dateien nach Jahren gruppiert ausgeben
    $group_year = 0;
    $group_month = 0;
    foreach ($files as $file)
    {
      $file = $dir . $file;
      $file_year = date('Y', filemtime($file));
      $file_month = date('m', filemtime($file));

      if ($file_year <> $group_year)
      {
        if ($group_year > 0)
        {
          echo "[/list]\n";
          if ($file_month <> $group_month)
          {
            if ($group_month > 0)
            {
              echo "

\n";
            }
            $group_month = $file_month;
            echo "

\n";
          }
          /*echo "

\n";*/
        }
        $group_year = $file_year;
        echo "<h4>$group_year</h4>\n";
        echo "<img src=\"/pics/divider.jpg\">\n";
        echo "<ul>\n";
      }
 
      $title = GetTitleFromHTML($file);
      echo "[*][".date("Y-m-d", filemtime($file))."] <a title=\"$title\" href=\"$file\">$title</a>\n";
    }
    echo "[/list]\n";
Wo ist da der Denkfehler? (Die Tags stimmen natürlich auch nioch nicht, das wäre dann mein nächstes Problem ;) )

DGL-luke 27. Mär 2006 15:53

Re: [PHP] Dateiliste gruppieren
 
In Delphi baust du dir doch auch lookup tables ;)

ansonsten wären mkdate() und date() deine freunde. das gibts die monantsnamen aber nur auf englisch.

[roter kasten] was da falsch ist weiss ich nicht....

EDIT: ach ja, "geht nicht" ist kein bugreport ;)

Luckie 27. Mär 2006 16:02

Re: [PHP] Dateiliste gruppieren
 
Es ändert sich nichts. Die dateien werden einfach nicht nach den Monaten gruppiert. :gruebel:

Luckie 27. Mär 2006 16:27

Re: [PHP] Dateiliste gruppieren
 
Nachtrag: Habe es etwas geschaft:
Code:
    // Dateien nach Jahren gruppiert ausgeben
    $group_year = 0;
    $group_month = 0;
    foreach ($files as $file)
    {
      $file = $dir . $file;
      $file_year = date('Y', filemtime($file));
      $file_month = date('m', filemtime($file));

      if (($file_year <> $group_year) || ($file_month <> $group_month))
      {
        if ($group_year > 0)
        {
          if ($file_month <> $group_month)
          {
            if ($group_month > 0)
            {
              echo "
\n";
            }
          }
          $group_month = $file_month;
        }
        echo "<h5>$file_month</h5>";
        $group_year = $file_year;
      }
      $title = GetTitleFromHTML($file);
      echo "[".date("Y-m-d", filemtime($file))."] <a title=\"$title\" href=\"$file\">$title</a></br>\n";
    }
Jetzt gruppiert er es mir nach Monaten aber wenn ich mir den Monat als Überschrift ausgeben lasse gruppiert er den ersten Eintrag noch extra, obwohl er zum März gehört. Und ich packe es nicht die Jahresüberschriften da reinzuschreiben. Er schreibvt sie mir immer überall drüber.

Nachtrag:
Code:
    // Dateien nach Jahren gruppiert ausgeben
    $group_year = 0;
    $group_month = 0;
    foreach ($files as $file)
    {
      $file = $dir . $file;
      $file_year = date('Y', filemtime($file));
      $file_month = date('m', filemtime($file));

      if (($file_year <> $group_year) || ($file_month <> $group_month))
      {
        if ($group_year > 0)
        {
          if ($file_month <> $group_month)
          {
            if ($group_month > 0)
            {
              echo "
\n";
            }
            $group_month = $file_month;
          }
        }
        $group_year = $file_year;
      }
      $title = GetTitleFromHTML($file);
      echo "[".date("Y-m-d", filemtime($file))."] <a title=\"$title\" href=\"$file\">$title</a></br>\n";
    }
So gruppiert er es mir wunderbar nach Gruppen, aber wenn ich jetzt die Überschriften einbauen will, stimmt die Gruppierung wieder nicht. :(

S2B 27. Mär 2006 17:20

Re: [PHP] Dateiliste gruppieren
 
Teste mal das:
Code:
// Dateien nach Jahren gruppiert ausgeben
    $group_year = 0;
    $group_month = 0;
    foreach ($files as $file)
    {
      $file = $dir . $file;
      $file_year = date('Y', filemtime($file));
      $file_month = date('m', filemtime($file));

      if ($file_year <> $group_year)
      {
        if ($group_year > 0)
        {
          echo "
\n";
        }
        echo "<h4>$file_year</h4>";
      }

      if ($file_month <> $group_month || $file_year <> $group_year)
      {
        if ($group_month > 0)
        {
          echo "
\n";
        }
        echo "<h5>$file_month</h5>";
      }

      $title = GetTitleFromHTML($file);
      echo "[".date("Y-m-d", filemtime($file))."] <a title=\"$title\" href=\"$file\">$title</a></br>\n";
    }

alcaeus 27. Mär 2006 17:29

Re: [PHP] Dateiliste gruppieren
 
Zitat:

Zitat von DGL-luke
das gibts die monantsnamen aber nur auf englisch.

Das wiederum kann man mit einem geeigneten Array und der Funktion strtr() leicht aendern ;)

Greetz
alcaeus

Luckie 27. Mär 2006 17:45

Re: [PHP] Dateiliste gruppieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Jetzt sieht es so aus, wie im Anhang. Die Jahre brauche ich nur, wenn auch ein neues Jahr anfängt.

So geht es:
Code:
    $group_year = 0;
    $group_month = 0;
    foreach ($files as $file)
    { 
      $file = $dir . $file;
      $file_year = date('Y', filemtime($file));
      $file_month = date('m', filemtime($file));

      if ($file_year <> $group_year)
      { 
        if ($group_year > 0)
        { 
          echo "
\n";
        } 
        echo "<h4>$file_year</h4>\n";
        echo "<img src=\"/pics/divider.jpg\">\n";
        $group_year = $file_year;
      }

      if (($file_month <> $group_month) || ($file_year <> $group_year))
      {
        if ($group_month > 0)
        {
          echo "
\n";
        }
        echo "<h5>$monate[$file_month]</h5>";
        $group_month = $file_month;
      } 

      $title = GetTitleFromHTML($file);
      echo "[".date("Y-m-d", filemtime($file))."] <a title=\"$title\" href=\"$file\">$title</a></br>\n";
    }
Jetzt ist nur das Problem, dass er mir nicht jedesmal den Monatsnamen hinschreibt, obwohl die Zahl stimmt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:25 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz