Location: PHPKode > scripts > PiwiP > piwip/liesmich.txt
PiwiP (PiwiP isn't written in PHP) ist eine einfache Bildergalerie. Die PHP-
Skripte koennen auf einem PHP-Server laufen, waehrend die Bilder auf einem
anderen Bild-Server liegen. Der Bild-Server MUSS directory-listing unter-
stuetzen (mehr dazu siehe index.php Zeilen 26 bis 29)!
PiwiP arbeitet nicht mit einer Datenbank (wie z.B. mysql) zusammen. Alle
Kommentare/Erklaerungen (ausser readme.txt und die GNU License) sind in
deutsch.


--------------------------------------------------------------------------------

Copyright 2004 Tai Gerstberger
PiwiP is distributed under the terms of the GNU General Public License

Dank an TOBIAS THALMEIER (http://tt-home.de) fuer die guten Ideen und Hilfen.

--------------------------------------------------------------------------------


Eine kurze Anleitung:
   1. Der Bild-Server MUSS directory-listing aktiviert haben.
   2. Es DARF sich KEINE index.html (oder index.htm) in einem (Unter)Verzeichnis
      der Galerie auf dem Bild-Server befinden.
   3. Es koennen png, jpg, gif oder bmp Dateien verwendet werden.
   4. Die url des Bild-Servers mit Pfad zur Galerie ($initialurl) muss in
      piwip.conf angepasst werden.
   5. Der Pfad des include-Verzeichnisses ($includepath) muss in piwip.conf
      angepasst werden.
   6. Der Pfad zur piwip.conf muss in index.php und gallery.php angepasst
      werden.
   7. Bekannte Fehler / Schwaechen beachten (siehe Ende dieses Textes).


Einmal installiert ist es fuer den Administrator sehr einfach die Bildergalerie
zu erweitern. Es muss lediglich ein neues Verzeichnis mit Bildern auf dem
Bild-Server erstellt oder bei einem vorhandenen Verzeichnis Bilder
hinzugefuegt/geaendert/geloescht werden. Zur Information: die Namen der
Verzeichnisse werden in der html-Ausgabe angezeigt.


Um den Aufbau dieser Bildergalerie zu verstehen folgt ein Beispiel:

Verzeichnisstruktur auf dem Bild-Server (example.com):

http://example.com/user27/Gallery/
http://example.com/user27/Gallery/index.html  <- DIESE DATEI LOESCHEN !!!
http://example.com/user27/Gallery/Holidays/
http://example.com/user27/Gallery/Holidays/Eastern/
http://example.com/user27/Gallery/Holidays/Eastern/datei_ohne_irgendeinen_effekt.txt
http://example.com/user27/Gallery/Holidays/Eastern/html-datei_ohne_irgendeinen_effekt.html
http://example.com/user27/Gallery/Holidays/Eastern/picture1.png
http://example.com/user27/Gallery/Holidays/Eastern/picture2.png
http://example.com/user27/Gallery/Holidays/Eastern/picture3.png
http://example.com/user27/Gallery/Holidays/Eastern/picture4.png
http://example.com/user27/Gallery/Holidays/Eastern/picture5.png
http://example.com/user27/Gallery/Holidays/Christmas/
http://example.com/user27/Gallery/Holidays/Christmas/picture1.jpg
http://example.com/user27/Gallery/Holidays/Christmas/picture2.jpg
http://example.com/user27/Gallery/Meetings/
http://example.com/user27/Gallery/Meetings/example1.bmp
http://example.com/user27/Gallery/Meetings/example2.bmp
http://example.com/user27/Gallery/Meetings/20040515/
http://example.com/user27/Gallery/Meetings/20040515/room.jpg
http://example.com/user27/Gallery/Meetings/20040515/person1.jpg
http://example.com/user27/Gallery/Meetings/20040515/person2.jpg
http://example.com/user27/Gallery/Meetings/20040515/person3.jpg
http://example.com/user27/Gallery/Meetings/20040515/lunch.jpg
http://example.com/user27/Gallery/Meetings/20040626/
http://example.com/user27/Gallery/Meetings/20040626/index.htm  <- DIESE DATEI LOESCHEN !!!
http://example.com/user27/Gallery/Meetings/20040626/pic1.jpg
http://example.com/user27/Gallery/Meetings/20040626/pic2.jpg

Zunaechst muss die url ($initialurl) in piwip.conf angepasst werden (im Beispiel
ist die url http://example.com/user27/Gallery/). Die Unterverzeichnisse werden
bei Aufruf der index.php automatisch angezeigt, in etwa so:

---------------------------------------------------------------------------------
| 				    Gallery					|
|-------------------------------------------------------------------------------|
| Holidays	Verz. ansehen							|
| Meetings	Verz. ansehen	Bilder Hochformat	Bilder Querformat	|
---------------------------------------------------------------------------------


Erklaerung: "Holidays" hat ein oder mehrere Unterverzeichnisse, sodass "Verzeichnis
ansehen" angezeigt wird. "Holidays" enthaelt selbst keine Bilder (nur in den
Unterverzeichnissen), daher wird "Bilder Hochformat" und "Bilder Querformat" nicht
gezeigt.

"Meetings" hat ein oder mehrere Unterverzeichnisse, sodass "Verzeichnis ansehen"
angezeigt wird. "Meetings" enthaelt Bilder (example1.bmp und example2.bmp), daher
wird "Bilder Hochformat" und "Bilder Querformat" gezeigt. Wenn dieser Fall
auftritt (Unterverzeichnis und Bilder), dann sollten unbedingt die Namen der
Unterverzeichnisse so gewaehlt werden dass sie VOR den Bildern gelistet werden
(siehe bekannte Fehler / Schwaechen).

Achtung: Wenn Bilder im Verzeichnis sind, wird immer "Bilder Hochformat" UND
"Bilder Querformat" angezeigt, auch wenn alle Bilder Hochformat (oder vice versa
Querformat) sind!

Quadratische Bilder werden sowohl unter "Bilder Hochformat" als auch unter "Bilder
Querformat" ausgegeben!

Bitte bei der Namensgebung der Verzeichnisse aufpassen, da diese Namen in der
html-Ausgabe auftauchen (im obigen Fall "Holidays" und "Meetings").

Ein Klick auf "Verz. ansehen" (rechts neben "Holidays") erzeugt eine neue html-Datei:

---------------------------------------------------------------------------------
| 				    Holidays					|
|-------------------------------------------------------------------------------|
| Eastern			Bilder Hochformat	Bilder Querformat	|
| Christmas			Bilder Hochformat	Bilder Querformat	|
---------------------------------------------------------------------------------


"Eastern" (und auch "Christmas") hat kein Unterverzeichnis, daher wird "Verz.
ansehen" nicht ausgegeben. "Eastern" enthaelt Bilder, sodass "Bilder Hochformat"
und "Bilder Querformat" angezeigt wird.

Wenn die Adresse http://php-server.net/user95/index.php?subdir=Holidays in den
Browser eingegeben wird, so wird sofort obige html-Seite angezeigt. Es koennen
auch weitere Unterverzeichnisse angezeigt werden, z.B. durch die Adresse
http://php-server.net/user95/index.php?subdir=Holidays/Eastern. Dies kann sehr
nuetzlich sein, um Freunden oder Bekannten einen direkten Link (z.B. per Email)
zu senden.

Ein Klick auf "Bilder Querformat" rechts neben "Eastern" zeigt eine Bildergalerie
mit allen Bildern im Querformat. Angenommen die Bilder "picture1.png",
"picture3.png", "picture4.png" und "picture5.png" sind Querformat, dann wird
folgende Seite ausgegeben:

		-----------------		-----------------
		|		|		|		|
		| picture1.png	|		| picture3.png	|
		|		|		|		|
		-----------------		-----------------


		-----------------		-----------------
		|		|		|		|
		| picture4.png	|		| picture5.png	|
		|		|		|		|
		-----------------		-----------------


Die Bildergalerie kann direkt ueber die in den Browser eingegebene Adresse
http://php-server.net/user95/gallery.php?subdir=Holidays/Eastern aufgerufen werden
(mit http://php-server.net/user95/gallery.php?subdir=Holidays/Eastern&align=portrait
wird die Bildergalerie in Hochformat aufgerufen).


Es ist keine index.html (oder index.htm) in den (Unter)Verzeichnissen des
Bild-Servers erlaubt. Erlaubt ist sie aber auf dem PHP-Server UND auf dem
Bild-Server wenn sie NICHT im Pfad der Bildergalerie ist (erlaubt waere im
Beispiel http://example.com/user27/index.html)!


PiwiP ist in PHP geschrieben. Es wurde unter Linux 2.4.20-4GB-athlon (SuSE Linux
8.2 Professional) mit dem Programm KWrite 4.1 (KDE 3.1.1) programmiert. Getestet
wurde PiwiP mit Apache 1.3.27, PHP 4.3.1, Konqueror 3.1.1 (KDE 3.1.1) und Mozilla
1.6. Der FTP-Transfer erfolgte durch FileZilla 2.2.8b.


Bekannte Fehler / Schwaechen:
   1. Wenn Bilder in einem Verzeichnis sind, wird immer "Bilder Hochformat" UND
      "Bilder Querformat" angezeigt, auch wenn alle Bilder Hochformat (oder vice
      versa Querformat) sind.
   2. Quadratische Bilder werden sowohl unter "Bilder Hochformat" als auch unter
      "Bilder Querformat" ausgegeben.
   3. Ein leeres Unterverzeichnis (d.h. ein Unterverzichnis ohne Bilder und ohne
      weitere Unterverzeichnisse) wird in der "Uebersichts"tabelle angezeigt.
   4. Wenn der zugewiesene Arbeitsspeicher zu klein ist, kann es folgende Fehler-
      meldung geben:
      Fatal error: Allowed memory size of 8388608 bytes exhausted at (null):0 (tried
      to allocate 4000001 bytes) in /home/www/user95/html/index.php on line 357
      So geschehen bei zugewiesenen 8 MB Ram und $subject = fread($fp,4000000);
      Warum 8 MB Ram zum Einlesen einer oder mehrerer einfacher HTML-Seiten (die der
      Bild-Server durch aktiviertes directory listing ausgibt) nicht ausreichen ist
      mir schleierhaft.
      Zwei Loesungsmoeglichkeiten dazu:
         a) Mit dem Wert bei fread($fp,xxx) experimentieren.
	 b) In der php.ini den Wert bei memory_limit erhoehen (geht bei einem
	    "normalen" Webspace mit PHP bei einem Anbieter nicht, dazu braucht man
	    einen dedizierten Server (womit man viel Festplattenspeicher hat
	    und sich PiwiP, das auf einen externen Bild-Server zugreift, nicht
	    lohnt).
   5. Mit vorigem Fehler (Nr. 4) haengt vermutlich auch dieses Problem zusammen:
      Der Server zerstueckelt eigenmaechtig die eingelesene(n) HTML-Seite(n),
      daher wurden die Abfragen if ($comparedirectory == $gallerydirectory) und
      if ($comparedirectory == $newdirectory) eingebaut. Bei einer zerstueckelten
      HTML-Seite wird dann nur der erste Teil eingelesen, weil es sonst zu
      Fehlern kommen wuerde. Wenn in einem Verzeichnis sowohl Bilder als auch
      weitere Unterverzeichnisse sind und die Unterverzeichnisse im zweiten oder
      dritten zerstueckelten Teil sind, werden sie nicht eingelesen.
      Loesung:
         Benennung der Unterverzeichnisse derart, dass sie VOR den Bildern
	 gelistet werden (z.B. durch Voranstellen eines Leerzeichens, eines
	 Bindestriches oder drei Nullen; ein Unterstrich bringt nichts).
Return current item: PiwiP