Zufallsbild mit Unterverzeichnis, Link und TimeOut
@Nebel:
Das müßte es jetzt aber sein:
Grüße
Milly
Das müßte es jetzt aber sein:
Code: Alles auswählen
<?php
$dateien = array();
$start=time();
get_dir("CMS_VALUE[1]",$start,"CMS_VAR[3]","CMS_VALUE[4]",0);
$breite = (int) "CMS_VALUE[2]";
#Was gefunden?
if (count($dateien) < 1)
{ echo "nix gefunden"; }
else
{ # Array sortieren
sort($dateien);
# Zufall
srand ((double) microtime() * 10000000);
$rand_keys = array_rand ($dateien, 2);
$Zufallsbild = $dateien[$rand_keys[0]];
$dimensions = GetImageSize($Zufallsbild);
echo "<div id=\"zbild\"><a href=\"$Zufallsbild\" target=\"_blank\">";
if ($dimensions[0] > $breite)
{ $divisor = $dimensions[0] / $breite;
$hoehe = (int) ($dimensions[1] / $divisor);
$thumb = capiImgScale ($Zufallsbild, $breite, $hoehe, false, false);
echo "<img src=\"$thumb\" width=\"$breite\" height=\"$hoehe\""; }
else
{ echo "<img src=\"$Zufallsbild\" width=\"$dimensions[0]\" height=\"$dimensions[1]\""; }
echo " style=\"border-width:1px; border-color:#000000;\" alt=\"Klick mich für eine Großansicht (neues Fenster)\"></a></div>\n";
}
function get_dir ($dir,$startzeit,$zeitlimit,$max_tiefe,$aktuelle_tiefe)
{ global $dateien;
$fp=opendir($dir);
while($datei=readdir($fp))
{ if (is_dir("$dir/$datei") && $datei!="." && $datei!="..")
{ $aktuelle_tiefe++;
if (time()-$starttime > $zeitlimit || $max_tiefe >= $aktuelle_tiefe)
{ get_dir("$dir/$datei",$startzeit,$zeitlimit,$max_tiefe,$aktuelle_tiefe); }
}
else
{ if (strlen($datei) > 4)
{ $ext = strtolower(substr($datei,-4));
if ($ext==".jpg" || $ext==".gif" || $ext=="jpeg" || $ext==".png")
{ $dateien[] = $dir . "/" . $datei; }
}
}
}
closedir($fp);
}
?>
Milly
@slecram
Version 1:
Die Zentrierung bzw. Ausrichtung kannst du doch selber über dein css bestimmen. Das Bild liegt im DIV "zbild", insofern kannst du in deinem css-template die Ausrichtung, Margins, Paddings und dergl. mehr selber vorgeben.
Z.B.:
Version 2:
Alle Bilder im Hochformat werden unterdrückt:
Grüße
Milly[/code]
Version 1:
Die Zentrierung bzw. Ausrichtung kannst du doch selber über dein css bestimmen. Das Bild liegt im DIV "zbild", insofern kannst du in deinem css-template die Ausrichtung, Margins, Paddings und dergl. mehr selber vorgeben.
Z.B.:
Code: Alles auswählen
#zbild{
padding: 0;
margin: -5px 0 0 0;
}
Alle Bilder im Hochformat werden unterdrückt:
Code: Alles auswählen
<?php
echo "<script>\n";
echo "function OpenNewWindow(Picture,Breit,Hoch)\n";
echo " { xsize = Breit+35;\n";
echo " ysize = Hoch+75;\n";
echo " ScreenWidth = screen.width;\n";
echo " ScreenHeight = screen.height;\n";
echo " xpos = (ScreenWidth/2)-(xsize/2);\n";
echo " ypos = (ScreenHeight/2)-(ysize/2);\n";
echo ' NewWindow=window.open("","Picture","height="+ysize+",width="+xsize+",scrollbars=no,resizable=no,top="+ypos+",left="+xpos+"");'."\n";
echo ' NewWindow.document.write ("<html><head><title>BILDANZEIGE");'."\n";
echo ' NewWindow.document.write ("</title></head>");'."\n";
echo ' NewWindow.document.write ("<body bgcolor=\'#cccccc\'>");'."\n";
echo ' NewWindow.document.write ("<table align=\'center\'><tr>");'."\n";
echo ' NewWindow.document.write ("<td align=\'center\' valign=\'top\'>");'."\n";
echo ' NewWindow.document.write ("<table border=\'1\' bgcolor=\'#000000\' cellpadding=\'0\' cellspacing=\'1\'><tr><td align=\'center\'>");'."\n";
echo ' NewWindow.document.write ("<img src=");'."\n";
echo ' NewWindow.document.write (Picture);'."\n";
echo ' NewWindow.document.write (">");'."\n";
echo ' NewWindow.document.write ("</tr></table>");'."\n";
echo ' NewWindow.document.write ("</td></tr><tr>");'."\n";
echo ' NewWindow.document.write ("<td align=\'center\' valign=\'bottom\'>");'."\n";
echo ' NewWindow.document.write ("<form><input type=\'button\' value=\'Fenster schliessen\' style=\'font-family: Verdana; font-size: 10px\' onClick=\'self.close()\'>");'."\n";
echo ' NewWindow.document.write ("</td></tr></table>");'."\n";
echo ' NewWindow.document.write ("</form></body></html>");'."\n";
echo ' NewWindow.document.close();'."\n";
echo " }\n";
echo "</script>\n";
$dateien = array();
$start=time();
get_dir("CMS_VALUE[1]",$start,"CMS_VAR[3]");
$maxbreite = (int) "CMS_VALUE[2]";
$maxhoehe = (int) "CMS_VALUE[4]";
#Was gefunden?
if (count($dateien) < 1)
{ echo "nix gefunden"; }
else
{ # Array sortieren
sort($dateien);
# Zufall
$Zufallsbild = "";
while ($Zufallsbild == "")
{ srand ((double) microtime() * 10000000);
$rand_keys = array_rand ($dateien, 2);
$bild = $dateien[$rand_keys[0]];
$dimensions = GetImageSize($bild);
if ($dimensions[0] > $dimensions[1]) {$Zufallsbild = $bild;}
}
$Internetpfad = "http://www.meinedomain.de/cms/" . substr($Zufallsbild,2);
echo "<div id=\"zbild\">";
if ($dimensions[0] > $maxbreite)
{ $divisor = $dimensions[0] / $maxbreite;
$hoehe = (int) ($dimensions[1] / $divisor);
if ($hoehe > $maxhoehe)
{ $divisor = $dimensions[1] / $maxhoehe;
$breite = (int) ($dimensions[0] / $divisor);
$hoehe = $maxhoehe; }
else
{ $breite = $maxbreite; }
$thumb = capiImgScale ($Zufallsbild, $breite, $hoehe, false, false);
echo '<a href="javascript:OpenNewWindow(\''.$Internetpfad.'\','.$dimensions[0].",".$dimensions[1].")\">\n";
echo "<img src=\"$thumb\" width=\"$breite\" height=\"$hoehe\"";
}
else
{ echo '<a href="javascript:OpenNewWindow(\''.$Internetpfad.'\','.$dimensions[0].",".$dimensions[1].")\">\n";
echo "<img src=\"$Zufallsbild\" width=\"$dimensions[0]\" height=\"$dimensions[1]\""; }
echo " style=\"border-width:1px; border-color:#000000;\" alt=\"Klick mich für eine Großansicht (neues Fenster)\"></a></div>\n";
}
function get_dir ($dir,$startzeit,$zeitlimit)
{ global $dateien;
$fp=opendir($dir);
while($datei=readdir($fp))
{ if (is_dir("$dir/$datei") && $datei!="." && $datei!="..")
{ if (time()-$starttime > $zeitlimit) get_dir("$dir/$datei",$startzeit,$zeitlimit); }
else
{ if (strlen($datei) > 4)
{ $ext = strtolower(substr($datei,-4));
if ($ext==".jpg" || $ext==".gif" || $ext=="jpeg" || $ext==".png")
{ $dateien[] = $dir . "/" . $datei; }
}
}
}
closedir($fp);
}
?>
Milly[/code]
also das mit dem querformat klappt super.
jedoch klappt das mit dem popup nocht net
das ist die adresse, die generiert wird... hast du noch ne idee?
jedoch klappt das mit dem popup nocht net
Code: Alles auswählen
javascript:OpenNewWindow('http://www.dev.feuerwehr-barntrup.de/cms/cms/upload/bildergalerie/bilder/neuenknick2006/100606_Neuenknick_043.JPG',500,375)
@Nebel
So ein PHP-Crack bin ich nun bei weitem nicht. Kann dir nicht sagen ob es mit dem "Mod Rewrite" zusammenhängt. Bei mir klappt es auf jeden Fall.
Hast du mal, zu Testzwecken, mit den Verzeichnistiefen 1 und 0 gearbeitet?
@slecram
Das Popup geht bei mir sehr gut (IE 6 und 7).
1. Erscheint das PopUp bei dir überhaupt?
2. Bekommst du eine Fehlermeldung?
3. Welcher Browser?
4. Java ausgeschaltet?
Der Link scheint richtig zu sein, denn dieses Bild 'http://www.dev.feuerwehr-barntrup.de/cm ... ck_043.JPG' kann ich mir ansehen.
Grüße
Milly
So ein PHP-Crack bin ich nun bei weitem nicht. Kann dir nicht sagen ob es mit dem "Mod Rewrite" zusammenhängt. Bei mir klappt es auf jeden Fall.
Hast du mal, zu Testzwecken, mit den Verzeichnistiefen 1 und 0 gearbeitet?
@slecram
Das Popup geht bei mir sehr gut (IE 6 und 7).
1. Erscheint das PopUp bei dir überhaupt?
2. Bekommst du eine Fehlermeldung?
3. Welcher Browser?
4. Java ausgeschaltet?
Der Link scheint richtig zu sein, denn dieses Bild 'http://www.dev.feuerwehr-barntrup.de/cm ... ck_043.JPG' kann ich mir ansehen.
Grüße
Milly
Habe es mit Verzeichnistiefen 1 und 0 versucht. Keine Änderung. Habs auch noch in einer Contenido-Umgebung ohne Mod Rewrite versucht. Geht dort leider auch nicht.Milly hat geschrieben:@Nebel
So ein PHP-Crack bin ich nun bei weitem nicht. Kann dir nicht sagen ob es mit dem "Mod Rewrite" zusammenhängt. Bei mir klappt es auf jeden Fall.
Hast du mal, zu Testzwecken, mit den Verzeichnistiefen 1 und 0 gearbeitet?
Schöne Grüße
Nebel
1. nein, kein popup - wird auch ncihts geblocktMilly hat geschrieben: @slecram
Das Popup geht bei mir sehr gut (IE 6 und 7).
1. Erscheint das PopUp bei dir überhaupt?
2. Bekommst du eine Fehlermeldung?
3. Welcher Browser?
4. Java ausgeschaltet?
Der Link scheint richtig zu sein, denn dieses Bild 'http://www.dev.feuerwehr-barntrup.de/cm ... ck_043.JPG' kann ich mir ansehen.
Grüße
Milly
2. grad erst gesehen - Firefox wirft ne Fehlermeldung raus: "OpenNewWindow is not defined"
3. firefox und IE6
4. java an
@slecram
Kannst du mir mal bitte einen Link deiner Weppage schicken, damit ich mir das mal ansehen kann.
Habe es mal mit http//www.feuerwehr-barntrup.de/ versucht, aber der scheint nicht zu gehen.
Grüße
Milly
Kannst du mir mal bitte einen Link deiner Weppage schicken, damit ich mir das mal ansehen kann.
Habe es mal mit http//www.feuerwehr-barntrup.de/ versucht, aber der scheint nicht zu gehen.
Grüße
Milly
Hi Milly,
ich hab mich noch mal mit dem Modul beschäftigt. Leider bin ich php-Laie.
Ein Versuch die maximale Tiefe anders zu erreichen, hat leider auch nicht funktioniert. Es kommt immer die Meldung "nix gefunden".
Wo liegt der Fehler?
Wäre super, wenn du mir weiterhelfen könntest.
Schöne Grüße
Nebel
ich hab mich noch mal mit dem Modul beschäftigt. Leider bin ich php-Laie.
Ein Versuch die maximale Tiefe anders zu erreichen, hat leider auch nicht funktioniert. Es kommt immer die Meldung "nix gefunden".
Wo liegt der Fehler?
Code: Alles auswählen
<?php
$dateien = array();
$start=time();
get_dir("CMS_VALUE[1]");
$breite = (int) "CMS_VALUE[2]";
#Was gefunden?
if (count($dateien) < 1)
{ echo "nix gefunden"; }
else
{ # Array sortieren
sort($dateien);
# Zufall
srand ((double) microtime() * 10000000);
$rand_keys = array_rand ($dateien, 2);
$Zufallsbild = $dateien[$rand_keys[0]];
$dimensions = GetImageSize($Zufallsbild);
echo "<div id=\"zbild\"><a href=\"$Zufallsbild\" target=\"_blank\">";
if ($dimensions[0] > $breite)
{ $divisor = $dimensions[0] / $breite;
$hoehe = (int) ($dimensions[1] / $divisor);
$thumb = capiImgScale ($Zufallsbild, $breite, $hoehe, false, false);
echo "<img src=\"$thumb\" width=\"$breite\" height=\"$hoehe\""; }
else
{ echo "<img src=\"$Zufallsbild\" width=\"$dimensions[0]\" height=\"$dimensions[1]\""; }
echo " style=\"border-width:1px; border-color:#000000;\" alt=\"Klick mich für eine Großansicht (neues Fenster)\"></a></div>\n";
}
function get_dir ($dir, $recurse=true, $depth=2)
{ global $dateien;
$fp=opendir($dir);
while($datei=readdir($fp))
{ if($recurse && is_readable("$dir$datei/")) {
if($depth === false) {
$dateien = array_merge($dateien, get_dir("$dir$datei/", true));
} elseif($depth > 0) {
$dateien = array_merge($dateien, get_dir("$dir$datei/", true, $depth-1));
}
elseif( strlen($datei) > 4)
{ $ext = strtolower(substr($datei,-4));
if ($ext==".jpg" || $ext==".gif" || $ext=="jpeg" || $ext==".png")
{ $dateien[] = $dir . "/" . $datei; }
}
}
}
closedir($fp);
}
?>
Schöne Grüße
Nebel
Bin zwar auch nich der PHP-Crack, aber mir sind drei Sachen augefallen:
1)
$recurse ist bei dir immer "true". Ich habe keinen Punkt gefunden wo $recurse auf "false" gesetzt wird. Insofern unsinnig....
2)
$depth wird nicht immer durchgeschleift! Es gibt eine Zeile
Da wird $depth nicht übergeben. da du $depth auch nicht globalisiert hast (so wie $dateien z.B.), ist der Wert beim nächsten Funktionsaufruf leer. Ich denke nicht das du das so gewollt hast.
3)
Beim array_merge übernimmst du das Directory aber nicht die Files. Ich verstehe nicht wieso du mit array_merge gearbeitet hast.
Erkläre mir bitte wie dein gedanklicher Ansatz zu diesem Problem ist, dann kann ich dir vielleicht besser weiterhelfen.
Zusammen sollten wir das doch wohl schaffen .....
Grüße
Milly
1)
$recurse ist bei dir immer "true". Ich habe keinen Punkt gefunden wo $recurse auf "false" gesetzt wird. Insofern unsinnig....
2)
$depth wird nicht immer durchgeschleift! Es gibt eine Zeile
Code: Alles auswählen
$dateien = array_merge($dateien, get_dir("$dir$datei/", true));
3)
Beim array_merge übernimmst du das Directory aber nicht die Files. Ich verstehe nicht wieso du mit array_merge gearbeitet hast.
Erkläre mir bitte wie dein gedanklicher Ansatz zu diesem Problem ist, dann kann ich dir vielleicht besser weiterhelfen.
Zusammen sollten wir das doch wohl schaffen .....
Grüße
Milly