Tracker einbauen aber wie?

kcyberbob

Erfahrenes Mitglied
Hallo,

mit folgendem Script lese ich einen Ordner aus in dem sich Bilder befinden.
so un jetzt will ich aber noch, das nur 12 Bilder pro seite angezeigt werden.
Also eine Art Tracker.
Ich habe das Script auch schon von meinem Gästebuch her aber das ganz funktioniert ja mir einer Datenbank, doch bei meinen Bildern habe ich keine Datenbank und ich habe keine Ahnung wie ich das machen soll.

Hier ist mal das Script womit ich den Ordner auslese.



Ich hoffe ihr könnte mir einbißchen weiterhelfen.

Gruß kcyberbob
 
Zuletzt bearbeitet von einem Moderator:
Ich bin jetzt irgendwie zu faul, deinen ganzen Code zu durchwühlen und weiss auch nicht, ob das geht was ich vorhabe. Aber hast du mal probiert in eine While Schleife 2 Argumente zu bringen ?
PHP:
while($bla = readdir() && $icount < $proseite) {

}
Bringt dich eventuell zu keine Ergebnis, aber hilft eventuell.

Da kommt mir grade noch eine bessere Idee. Einmal alles auslesen lassen und in ein Array schreiben. Das Array lässt sich dann ohne Probleme über numerische Indizes mit x pro Seite ansprechen. Man muss halt nur dafür sorgen, dass auf jeder Seite das Array zur Verfügung steht. Sollte ja aber nicht das große Problem sein.
 
RE

Das geht schon so aber so werden immer die gleichen 12 Bilder ausgwählt.
Ich hab gestern die ganze Nacht rumprobiert aber ich komm da nicht drauf wie ich das machen soll.
Mit einer DB ist das ja ganz simple.

Gruß kcyberbob
 
Dann musst du wohl zuerst das ganze Verzeichnis in ein Array lesen,
dieses dann in eine Session schreiben, damit es über mehrere Seiten
verteilt verfügbar ist. Und dann das Array über die numerischen
Indizes Stückchen für Stückchen in Abhängigkeit von einer GET
Variablen (wie beim Blättern von Gbook Seiten o.Ä) auslesen.
 
So Hochwürden und welch Genialität bringt Sie zu der Annahme, dass das auch
einfacher zu lösen sei ?
Und wenn es doch soviel "einfacher" geht, warum machen Hochwürden
das dann nicht so ?
 
ich habe mir eine komplette Bildergalerie selbstgebaut.

Ich muss sagen, dass ein Array in der Tat das einfachste ist, was man benutzen kann, denn sonst musst du dateien benutzen, was die sache wesentlich undynamischer macht, wenn man mal ein paar Bilder dazu-uploadet. dann muss man nämlich auch wieder die Datei ändern oder sie ändern lassen vom Skript usw...

So, und nun hier mal mein Beispiel, wie sich ein solches array selbst mit Elementen füllt, indem es ein Verzeichnis durchsucht:
PHP:
// Funktion zur Überprüfung, ob gefundene Dateien wirklich Bilder sind
function bild($name)
{
	if (substr_count($name, ".jpg")>0 || substr_count($name, ".JPG")>0 || substr_count($name, ".gif")>0 || substr_count($name, ".GIF")>0 || substr_count($name, ".jpeg")>0 || substr_count($name, ".JPEG")>0 || substr_count($name, ".png")>0 || substr_count($name, ".PNG")>0)
	{
		return 1;
	}
	else return 0;
}

// Array anlegen für gefundene Dateien
$datei_array = array();

// mit "gallery.php?dir=verzeichnis" wird der Ordner "verzeichnis" geöffnet
$verzeich1 = $dir;
$verzeich2 = "./".$dir;
$verzeichnis = opendir($verzeich2);

// Überprüfung der Dateien auf Gültigkeit
while($datei = readdir($verzeichnis))
{
	if($datei != "." && $datei != "..")
	{
		// ist die Datei wirklich ein Bild?
		if(bild($datei)==1)
		{
			// Datei wird in das Array aufgenommen
			array_push($datei_array, $datei);
		}
	}
}

^^ so kann man das machen! es gibt bestimmt noch wesentlich elegantere und kürzere Varianten, aber da das ding funktioniert und der Server dabei auch nicht lahm wird, ist es mir erst mal egal.

Du kannst anstelle meines "dynamischen" Verzeichnisses über den querry natürlich auch selbst eins vordefinieren, dann kannst dir das in der URL sparen, wenn du nur ein Verzeichnis hast...

...so, ich hoffe ich konnte etwas helfen!

[ EDIT ]

das wichtigste hätt ich ja beinahe vergessen: Die Seitenerstellung...

PHP:
// Erstellung der Tabelle
for($a=0; $a<sizeof($datei_array); $a++){
  $y++;
  if (($y >= $start1) && ($y <= $end1)) {
^^ innerhalb dieser for-Schleife wird für jedes gefundene Element im vorher erzeugten Array "$datei_array" eine Zelle erstellt. Die if-Schleife dient hier dazu, um den Element-Bereich auf einer Seite wiefolgt einzugrenzen:

auf der ersten Seite ist "$start1 = 1". "$end1" wird selbst generiert aus "$start1 + $pic_count". "$pic_count" ist bei mir widerrum die Anzahl der anzuzeigenden Bilder pro Seite. So wird automatisch abgebrochen, wenn der Bereich von "$start1" bis "$end1" überschritten wird.

Um dann solche Links zu erstellen zum "weiterblättern" oder "zurückblättern" ist es nur notwendig eine variable im link als querry mit einzubinden und diese bei "zurück" auf "$start1 - $pic_count" zu setzen und beim "weiter"-link auf "$start1 + $pic_count". Der zu berücksichtigende Bereich erzeugt sich eh automatisch und damit braucht man nichts weiter anzugeben...
 
Zuletzt bearbeitet:
Zurück