Ordner mit Inhalt erzeugen

just-click

Erfahrenes Mitglied
Hallo,

da melde ich mich neu an und hab gleich ne Frage, anstatt erstmal was an die Community weiter zu geben :( (Also bitte nicht böse sein ;)).

Ich arbeite gerade an einer Webseite für einen Sportverein und würde dazu gerne eine Bildergallerie einbinden.
Da ich schon vor einiger Zeit eine einfache Bildergallerie programmiert habe, würde ich mir dir arbeit gerne ersparen eine neue zu programmieren bzw. eine "fremde" Gallerie zu verwenden.

Die Struktur meiner Gallerie war bisher immer folgende:
Code:
Server
|-> gallerie.php (diese Datei verlinkt auf die einzelnen Gallerie-Ordner)
|-> Gallerie 1 (Ordner)
       |-> Index.php (diese Datei erzeugt die Gallerie und verwendet die Bilder aus dem Ordner)
|-> Gallerie 2 (Ordner)
       |-> Index.php (diese Datei erzeugt die Gallerie und verwendet die Bilder aus dem Ordner)

Wenn ich also eine neue Gallerie erzeugen wollte, habe ich einen Ordner erstellt, die Bilder reingeworfen, mein kleines Script (3 Dateien) und der Ordner wurde dann in der gallerie.php verlinkt.

Da dieses Script bisher aber immer nur für meinen privaten Zweck verwendet wurde, genügte diese Lösung.
Ich würde es jetzt aber gerne so steuern, dass die Verantwortlichen des Vereins sich um diese Dinge kümmern können und einfach nur noch per Admin-Panel eine neue Gallerie erzeugen, Bilder hochladen und fertig.

Mein Hauptproblem ist einfach jetzt nur noch folgendes, welche Funktion benutze ich um z.B. einen Ordner zu erzeugen inkl. dem Inhalt (nur mkdir() reicht wohl nicht oder).

Ich hab mir zwei Möglichkeiten überlegt.

Lösung 1) ich stelle einen "Musterordner" auf den Server und PHP kopiert diesen einfach und benennt ihn dann um. Danach werden dann die Bilder in den Ordner kopiert.
Hauptproblem ist hier, kann man überhaupt einen "Musterordner" kopieren (inkl. Inhalt). Das zweite Problem wäre dann, wenn ich einen ungeduldigen Admin habe, der dann öfters auf den "Erzeugen" Knopf drückt, hab ich dann mehrere gleiche Ordner.

Lösung 2) ich stelle mein Script um, dass die Dateien, die die Gallerie (inkl. Thumbnails) erzeugt in einen allgemeinen Ordner gelegt werden und nicht mehr in jedem Galleriescript sitzen müssen.
Hauptproblem, ich hab noch keine Ahnung wie ich das anstellen soll, aber das wäre dann ein anderes Problem ;)

Es wäre wirklich schön, wenn sich jemand mit soetwas schonmal befasst hat und mir ein bisschen Hilfestellung geben könnte.

Wenn alles klappt und das Script komplett getestet wurde, schreib ich evtl ein kleines Tutorial für dieses.

mfg,
Marcel
 
Zuletzt bearbeitet:
Hi, ich würde Variante 1 nehmen.
Das kopieren dauert keine Sekunde bei 3 datein. Außerdem gibt der Admin ja einen Namen für die Galerie ein. Lass dein Script einfach pruefen ob so ein Ordner schon exisitiert. Wenn ja bricht es mit ner Fehlermeldung ab.
Sollte also jemand 2 mal auf erzeugen klicken, so wird beim ersten Mal ein Ordner angelegt und die sachen werden kopiert, beim zweiten Mal bricht er ab weil der Ordner schon vorhanden ist.
Fertig

Wäre so das einfachste

Fertig werden Dunas
 
man merkt, ich sitz schon zu lang vor der Seite ;)

Also es ist ganz einfach wenn man sich einfach 2 Befehle vornimmt.
mkdir() und copy()

Hier mal meine kleine Lösung:

PHP:
if(isset($_POST['submit']) AND "Gallerie anlegen" == $_POST['submit']) {
    if(is_dir($_POST['foname'])) {
        echo "<p>\n";
        echo "    Es gibt bereits eine Gallerie mit dem selben Namen.\n";
        echo "</p>\n";
        echo "<p>\n";
        echo "    <a href=\"index.php?section=admin&amp;".SID."\">\n";
        echo "        Zurück\n";
        echo "    </a>\n";
        echo "</p>\n";
    } else {
        mkdir($_POST['foname']) OR die('Ordner konnte nicht erstellt werden');
        copy('muster/index.php', $_POST['foname'] . "/" . 'index.php')
        echo "Fertig!\n";
    }
}

Es ist manchmal doch einfacher, als man denkt.

Nur noch ganz kurz. Ich habe vor Kurzem im Internet gelesen, dass der Befehl is_dir() Probleme bereiten kann, man solle lieber file_exists verwenden. Stimmt das, oder galt das nur für ältere PHP-Versionen?
 
is_dir() und file_exists() haben doch ganz unterschiedliche Verwendungszwecke.

Ich benutze immer beide und die funktionieren auch. Gerade diese recht simplen Funktionen sollten problemlos laufen
 
hab ich wie gesagt gelesen, ansonsten nehm ich auch nur is_dir()

naja was solls ;)

Trotzdem danke für die Antwort, Problem ist also erledigt
 
Zurück