PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Galerie Script


hoschy
09.11.2005, 00:09:27
Hi,

ich bastel gerade an einem Galerie Script welches ohne DB / textdatei auskommt.

Das Auslesen des Betreffenden Ordners klappt soweit, nur leider habe ich Anzeige Probleme im IE .oO(Wie solls auch anders sein?)

Ein Beispiel gibt es hier : Beispiel (http://dathoschy.homeunix.org/schuetzen/schuetzen/schuetzenfest/bilder.php?site=pictures&id=Sonntag)

Der Text Zurück zur Galerie Übersicht soll nicht neben dem letzten Bild erscheinen, sondern
darunter.

Der Quelltext für das Auslesen des Ordners:

<table border="0" align="center" cellpadding="0" cellspacing="0" width="100%">
<tr>
<?php
$datum = date('Y');
$handle = opendir('.');
$list_ignore = array ('.','..','thumbs','index.php','pictures.php',
'bilder.inc.php','bilder.php');
while ($file = readdir($handle)) {
if (!in_array($file,$list_ignore)) {
$var = array($file);
echo "<td align=\"center\"><a href=\"?site=pictures&id=".urldecode(current($var))."\">".current($var)."</a></td>";
}
}
?>
</tr>
</table>
<p><?php
if (empty($_GET['site'])) {
$inc='start';
}
else {
$inc=$_GET['site'];
}
switch($_GET['site'])
{
case 'pictures' : $inc='pictures.php'; break;
default : $inc='bilder.inc.php'; break;
}
include($inc);
?></p>
<table border="0" align="left">
<tr><td align="left"><a href="../inhalt.php" target="_self">Zurück</a> zur Galerie Übersicht.</td></tr>
</table>



Der Quelltext für die Anzeige:

<?php
$var = $_GET['id'];
$dirname = ('.');
$handle = opendir($dirname.'/'.$var);
$list_ignore = array ('.','..','thumbs','index.php','make_thumbnails.sh');
?>
<script>
<!---
function OpenNewWindow(Picture,Breit,Hoch)
{
xsize = Breit+35;// Zusatz für Rand rechts und links
ysize = Hoch+75; //Zusatz für Rand oben und unten - damit Button angezeit werden kann

ScreenWidth = screen.width;
ScreenHeight = screen.height;

xpos = (ScreenWidth/2)-(xsize/2);
ypos = (ScreenHeight/2)-(ysize/2);

NewWindow=window.open("","Picture","height="+ysize+",width="+xsize+",scrollbars=no,resizable=no,top="+ypos+",left="+xpos+"");
NewWindow.document.write ("<html><head><title>BILDANZEIGE");
NewWindow.document.write ("</title></head>");
NewWindow.document.write ("<body bgcolor='#cccccc' onload='focus()'>");
//NewWindow.document.write ("<body bgcolor='#cccccc'>");
NewWindow.document.write ("<table align='center'><tr>");
NewWindow.document.write ("<td align='center' valign='top'>");
NewWindow.document.write ("<table border='1' bgcolor='#000000' cellpadding='0' cellspacing='1'><tr><td align='center'>");
NewWindow.document.write ("<img src=");
NewWindow.document.write (Picture);
NewWindow.document.write (">");
NewWindow.document.write ("</tr></table>");
NewWindow.document.write ("</td></tr><tr>");
NewWindow.document.write ("<td align='center' valign='bottom'>");
NewWindow.document.write ("<br><center><form><input type='button' value='FENSTER SCHLIESSEN' style='font-family: Verdana; font-size: 10px' onClick='self.close()'>");
NewWindow.document.write ("</td></tr></table>");
NewWindow.document.write ("</form></body></html>");
NewWindow.document.close();
NewWindow.resizeTo(xsize,ysize);
}

//-->
</script>

<?php
echo "<b>Schützenfest ".$var."</b>";
echo "<ul class=\"gal-lst\">";
while ($file = readdir($handle)) {
if (!in_array($file,$list_ignore)) {
echo "<li><p><a href=\"javascript:OpenNewWindow('".$dirname."/".$var."/".$file."',550,320)\" target=\"_self\"><img src=".$dirname."/".$var."/thumbs/".$file."></a>&nbsp;</p></li>";
}
}
closedir($handle);
?>
</ul>

und zum schluss noch die css datei die für die Optik sorgt:

ul.gal-lst {
margin: 0;
padding: 1em 0;
list-style-type: none;
clear: both;
}
ul.gal-lst li {
float: left;
width: 28%;
margin: 0 1%;
padding: 0 1%;
list-style: none;
}
ul.gal-lst li p {
text-align: center;
}
img {
border:0px;
height:84px;
width:150px;
}

Im Firefox wirds fast richtig angezeigt, dawird nur bei 2 Tagen der Link neben dem letzten
bild angezeigt.

Danke schon mal im vorraus

Serp
09.11.2005, 00:48:59
Auch wenn ich nicht ganz verstehe, warum du die Bilder erst im p-Tag und dann noch in ner Liste verpackst und andererseits dieses "Zurück zur Galerie" in ne Tabelle packst...

Mach vor die Tabelle, die das "Zurück zur Galerie" enthält n <br />, dann sollts funktionieren.

hoschy
09.11.2005, 00:58:15
Der gepostete Quelltext stellt meinen letzten verzweifelten versuch da.

Das mit dem <br /> hab ich schon getestet, bringt aber nicht den gewünschten erfolg.

selbst mit reinen <p> tags oder auch ohne ist der IE net in der lage die seite vernünftig an zu zeigen.

Serp
09.11.2005, 01:52:03
Ach ja, ich hab das float vergessen...

Da brauchst du dann <br clear="all" />


Aber warum nimmst du nicht einfach ne Tabelle für die Bilder?

hoschy
09.11.2005, 02:03:11
Die Idee mit der Tabelle hatte ich am Anfang.

Nur dann war halt das Phänomen da, das nur der IE, beim klick auf den letzten tag der angezeigt wird (in diesem Fall der Montag) nur zwei Bilder anzeigte und die Seite der art vergrößerte das man die Bilder erst suchen musste.


Also das mit dem <br clear="all" /> funzt.