php/fotogalarij

Status
Niet open voor verdere reacties.

Bassos

Gebruiker
Lid geworden
12 nov 2004
Berichten
357
Hallo,

ik heb een klein php-script gevonden dat foto's laat zien die in een aangewezen map staan. Door thumnails in een tabel te laden en als je er dan op klikt dan opent ie een nieuw scherm met daarin de foto op origineel formaat. Gewoon iets simpels waardoor je snel een fotogalarij op het web kunt zetten.

Maar nu zou ik graag willen dat als er op de thumbnail geklikt wordt een nieuw scherm zich opent alleen zonder tierelantijntjes (schuifbalken, statusbalk, etc.). En dat scherm moet dan tevens de grootte van de foto hebben (door zelf in te stellen of automatisch, dat maakt niet uit).

Is dat simpel aan te passen of moet ik opzoek gaan naar een heel nieuw script? (heb namelijk nog niet zoveel verstand van php) Kan iemand er even naar kijken aub :thumb:

PHP:
<?php 
    $target = 'fotos/'; //de folder die je wil 
    $breedte = '4'; //de hoeveelheid thumbs naast elkaar 
    $counter = '0'; //maak een variabele aan voor de counter 
    $dir = opendir($target); //nodig voor het script 
     
echo '<table cellpadding="0" cellspacing="10" border="0" align="center"><tr>'; 
    while (false !== ($file = readdir($dir))) { 
        if (($file !== ".")&&($file !== "..")&&($file !== ".DS_Store")) { 
        list($filename, $ext) = explode(".", $file); 
        list($main, $sub, $include) = explode("/", $PHP_SELF); 
            if ($ext == "JPG"||$ext == "jpg"||$ext == "gif") { 
                echo '<td>'; 
                echo '<a href="'.$target.$file.'" target="_blank"><img border="0px" src="'.$target.$file.'" alt="'.$file.'" height="75px" width="100px"></a>';    
                $couter++; 
                echo '</td>'; 
                if ($couter == "$breedte") { 
                 echo '</tr><tr>'; 
                 $couter = 0; } 
            } 
        } 
    } 
echo '</tr></table>'; 
?>
 
Dat wordt ongeveer zoeits:

Code:
<script language="javascript">
<!--
function openVenster(i, w, h) {
 window.open(i, 'popwin', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width='+ w +',height='+ h+'');
 }
//-->
</script>

<?php 
    $target = 'fotos/'; //de folder die je wil 
    $breedte = '4'; //de hoeveelheid thumbs naast elkaar 
    $counter = '0'; //maak een variabele aan voor de counter 
    $dir = opendir($target); //nodig voor het script 
      
echo '<table cellpadding="0" cellspacing="10" border="0" align="center"><tr>'; 
    while (false !== ($file = readdir($dir))) { 
        if (($file !== ".")&&($file !== "..")&&($file !== ".DS_Store")) { 
        list($filename, $ext) = explode(".", $file); 
        list($main, $sub, $include) = explode("/", $PHP_SELF); 
            if ($ext == "JPG"||$ext == "jpg"||$ext == "gif") { 
		list($lengte, $hoogte, $type, $attr) = getimagesize($file);
                echo '<td>'; 
                echo '<a href="openVenster('.$target.$file.','.$lengte.','.$hoogte.')" target="_blank"><img border="0px" src="'.$target.$file.'" alt="'.$file.'" height="75px" width="100px"></a>';     
                $counter++; 
                echo '</td>'; 
                if ($counter == "$breedte") { 
                 echo '</tr><tr>'; 
                 $counter = 0; } 
            } 
        } 
    } 
echo '</tr></table>'; 
?>
 
Hij geeft deze foutmelding:

Warning: getimagesize(web_feesttopper_07-01-2006 (37).JPG): failed to open stream: No such file or directory in /usr/opt/usr/123456789/DOMAIN/HTML/test/fotogalarij2.php on line 21
 
en wat is line 21 ? En ik zie denk ik een fout in het script (php), aan het begin is het:

$counter en verder wordt altijd $couter gebruikt
 
Laatst bewerkt:
Dit is lijn 21:

list($lengte, $hoogte, $type, $attr) = getimagesize($file);

En wat houdt dat counter eigenlijk in??
 
mmm, ik ben (nog) geen ster in php en foto gebeuren daarvan, maar counter is gewoon een variabele. Misschien kan je even de basis leren... dan is heet wat makkelijker aanpassen.
 
In mijn script had ik de couter variabele al aangepast in counter (nodig voor het aantal thumbnails op een rij).

Hier is een aangepaste verise die de fouten niet meer moet maken:

Code:
<script language="javascript">
<!--
function openVenster(i, w, h) {
 window.open(i, 'popwin', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width='+ w +',height='+ h+'');
 }
//-->
</script>

<?php 
    $target = 'fotos/'; //de folder die je wil 
    $breedte = '4'; //de hoeveelheid thumbs naast elkaar 
    $counter = '0'; //maak een variabele aan voor de counter 
    $dir = opendir($target); //nodig voor het script 
      
echo '<table cellpadding="0" cellspacing="10" border="0" align="center"><tr>'; 
    while (false !== ($file = readdir($dir))) { 
        if (($file !== ".")&&($file !== "..")&&($file !== ".DS_Store")) { 
        list($filename, $ext) = explode(".", $file); 
        list($main, $sub, $include) = explode("/", $PHP_SELF); 
            if ($ext == "JPG"||$ext == "jpg"||$ext == "gif") { 
                list($lengte, $hoogte, $type, $attr) = getimagesize('$target.$file');
                echo '<td>'; 
                echo '<a href="openVenster('.$target.$file.','.$lengte.','.$hoogte.')" target="_blank"><img border="0px" src="'.$target.$file.'" alt="'.$file.'" height="75px" width="100px"></a>';     
                $counter++; 
                echo '</td>'; 
                if ($counter == "$breedte") { 
                 echo '</tr><tr>'; 
                 $counter = 0; } 
            } 
        } 
    } 
echo '</tr></table>'; 
?>
 
Rimsic, ik ben druk bezig met de basis onder de knie te krijgen van php. Het wil alleen nog niet zo vlotten :eek:
 
Weer een nieuwe versie, deze maal deels getest.

Code:
<script language="javascript">
<!--
function openVenster(i, w, h) {
 window.open(i, 'popwin', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width='+ w +',height='+ h+'');
 popwin.window.resizeTo(w,h);
 }
//-->
</script>

<?php 
    $target = 'fotos/'; //de folder die je wil 
    $breedte = '4'; //de hoeveelheid thumbs naast elkaar 
    $counter = '0'; //maak een variabele aan voor de counter 
    $dir = opendir($target); //nodig voor het script 
      
echo '<table cellpadding="0" cellspacing="10" border="0" align="center"><tr>'; 
    while (false !== ($file = readdir($dir))) { 
        if (($file !== ".")&&($file !== "..")&&($file !== ".DS_Store")) { 
        list($filename, $ext) = explode(".", $file); 
        list($main, $sub, $include) = explode("/", $PHP_SELF); 
            if ($ext == "JPG"||$ext == "jpg"||$ext == "png"||$ext == "gif") { 
                list($lengte, $hoogte, $type, $attr) = getimagesize($target.$file); 
                echo '<td>'; 
                echo '<a href="javascript:openVenster(\''.$target.$file.'\','.$lengte.','.$hoogte.');" target="_blank"><img border="0px" src="'.$target.$file.'" alt="'.$file.'" height="75px" width="100px"></a>';     
                $counter++; 
                echo '</td>'; 
                if ($counter == "$breedte") { 
                 echo '</tr><tr>'; 
                 $counter = 0; } 
            } 
        } 
    } 
echo '</tr></table>'; 
?>
 
Je hebt me bijna helemaal geholpen. Alleen als je nu op de thumbnail klikt pakt ie een verkeerde link. Dit komt er in de adresregel te staan:

javascript:eek:penVenster('fotos/web_feesttopper_07-01-2006%20(27).JPG',375,500);

Kijk anders zelf maar weer even op www.zigo4.nl/test/fotogalarij2.php
 
maak dit er maar van:
Code:
echo '<a onClick="javascript:openVenster(\''.$target.$file.'\','.$lengte.','.$hoogte.');"><img border="0px" src="'.$target.$file.'" alt="'.$file.'" height="75px" width="100px"></a>';
 
Nu werkt ie al veel beter ja. Alleen nog twee kleine dingetjes :eek:

1. Zou je kunnen zorgen dat de popup zich opent in het midden van het scherm?

2. Zou je die boven en linker marge in de popup weg kunnen halen?

Bedankt alvast :thumb:
 
ongeveer zoiets:

Code:
<script language="javascript">
<!--
function openVenster(i, w, h) {
 var winlinks = (screen.width - w) / 2;
 var wintop = (screen.height - h) / 2;
 var openWindow = window.open('', 'popwin', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,left='+ winlinks +',top='+ wintop +',width='+ w +',height='+ h+'');
        with(openWindow.document){
           writeln('<html><head><title></title></head>');
           writeln('<body ######="self.focus()" onblur="self.close()"');
           writeln('style="background-image:url('+i+');');
           writeln('background-repeat:no-repeat;width:'+w+';height:'+h+'">');
           writeln('<div style="position:absolute;bottom:0px;text-align:center">');
           writeln('</div></body></html>');
           close();
         }
 popwin.window.resizeTo(w,h);
 }
//-->
</script>
 
Werkt nu echt perfect, alleen zie ik nu onder in mijn browser een foutmelding staan. Je weet wel zo eentje met een geel uitroep teken. Als fout geeft ie aan dat popwin niet is gedefinieerd regel 16 teken 2. En dat is deze regel:

popwin.window.resizeTo(w,h);

kijk zelf maar even op http://www.zigo4.nl/testfase/fotogalarij2.php
 
Maak daar nog even openWindow.resizeTo(w,h); van en dan werkt het waarschijnlijk wel goed. Zo niet probeer dan de regel in zijn geheel weg te laten en kijk of je dan het gewenste resultaat hebt..
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan