Avatar billede syswatch Novice
13. maj 2003 - 16:03 Der er 32 kommentarer og
1 løsning

Galleri fra directory - mangler frem og tilbage i popup'en !

Jeg skal have inplementeret en frem og tilbage funktion i mit popup vindue.
Jeg bruger disse 2 filer til mit mini galleri.

----- Index.php ------
<?php

include("$DOCUMENT_ROOT/galleri/maintop.php");

include("$DOCUMENT_ROOT/galleri/dbcon.php");

$galdir = $bib;

function image_dir($col){
 
  global $galdir;
 
  $path = ".".$bib."/";
  $d = dir($path);
   
    while($entry=$d->read()) {
        if(($entry != "." && $entry != "..") && (eregi("\.(jpg)$",$entry))){
            $size = GetImageSize ($path.$entry);
        if($size[0] < $size[1]){
                $images[] = "<td valign=\"bottom\" align=\"center\">
               
                <A HREF=''  onclick='popUp(\"http://www.syswatch.dk/galleri/vispic.php?event=$galdir&pic=$entry\");return false;'><img src=\"$path/$entry\" alt=\"$entry\" border=\"0\" width=\"66\" height=\"100\"></A><br>
                            </td>";
        }else{
                $images[] = "<td valign=\"bottom\" align=\"center\">
                <A HREF=''  onclick='popUp1(\"http://www.syswatch.dk/galleri/vispic.php?event=$galdir&pic=$entry\");return false;'><img src=\"$path/$entry\" alt=\"$entry\" border=\"0\" width=\"100\" height=\"66\"></A><br>
                            </td>";
            }
        }
    }

    $d->close();
    echo '<table border="0" width="400"><tr>';
    $row = "</tr><tr>";

    for($i=0; $i<count($images);$i++){
        if($counter <  $col-1){
            echo $images[$i];
        }else{
            echo $images[$i].$row;
            $counter = -1;
        }
    $counter++;
    }
   
    echo '</tr></table>';
}
image_dir(4);
?>
------- SLUT index.php ------

------ vispic.php -------
<?PHP

print "<HTML>
<HEAD>
<LINK REL=stylesheet TYPE=text/css HREF=css/style.css>
<TITLE>Galleri Vindue... !</TITLE>
</HEAD>
<BODY TOPMARGIN=0 LEFTMARGIN=0>";

print "<CENTER><A HREF=# onClick=self.close()><IMG SRC=/galleri/$event/$pic BORDER=0></A>";

?>
----- SLUT vispic.php -------

Nogen der har en ide til frem og tilbage funktionen, meget gerne svar med ændret kode...
Avatar billede schaefner Juniormester
13. maj 2003 - 16:18 #1
Prøv at kigge på mit svar i dette spm.: http://exp.dk/spm/341229
Avatar billede syswatch Novice
13. maj 2003 - 16:20 #2
Den har jeg kigget på, men kan ikke rigtig se hvordan jeg skal bruge det...
Avatar billede schaefner Juniormester
13. maj 2003 - 16:21 #3
Prøver lige at sætte det sammen med din kode.
Avatar billede syswatch Novice
13. maj 2003 - 16:23 #4
Ok, men det skal jo være så, det kun er i mit lille popup vindue at der kan køres frem og tilbage imellem billederne... ikke på selve index siden, der skal alle billederne jo bare være.
Avatar billede schaefner Juniormester
13. maj 2003 - 18:03 #5
Utestet:

<html>
<head>
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>Galleri Vindue... !</title>
</head>
<body topmargin="0" leftmargin="0">

<center><a href="#" onclick="self.close()">
<?php
if(isset($pic)) {
    echo "<img src=\"/galleri/$event/$pic\" border=\"0\">";
} else {
    $handle = opendir($event);
    while (($fil = readdir($handle)) !== false) {
        if ($fil != "." && $fil != ".." && substr($fil,-3) == "jpg") {
            $billeder[] = $fil;
        }
    }
    closedir($handle);
    echo "<img src=\"/galleri/$event/$billeder[$show]\" border=\"0\">";
}
?>
</a></center>

<?php
if(!isset($show)) {
    $show = 0;
}
if ($show != 0) {
    $forrige = $show-1;
    echo "<a href=\"?event=$event&show=$forrige\">Forrige</a> ";
}
if (count($billeder)-1 != $show) {
    $naeste = $show+1;
    echo "<a href=\"?event=$event&show=$naeste\">Næste</a>";
}
?>

</body>
</html>

Det kan godt være du skal rette i stien til billederne.
Avatar billede syswatch Novice
13. maj 2003 - 20:19 #6
Det har du sku klaret godt schaefner... den virkede... skulle bare lige rette stierne... Men kan du ikke lige smide et svar så du kan få nogle point ?
Avatar billede schaefner Juniormester
13. maj 2003 - 20:20 #7
jo, det gør jeg da :)
Avatar billede syswatch Novice
13. maj 2003 - 20:21 #8
Jeg har lige fundet en lille BUG.... check lige www.syswatch.dk og under galleri. Prøv at vælge et billede midt i det hele, så kommer der kun en Næste knap, og hvis du trykker på den, så tager den billede 2... ???
Avatar billede schaefner Juniormester
13. maj 2003 - 20:31 #9
if(!isset($show)) {
    $show = rand(0,count($billeder)-1);
}
I stedet for:
if(!isset($show)) {
    $show = 0;
}

Det burde hjælpe lidt på det.
Avatar billede schaefner Juniormester
13. maj 2003 - 20:32 #10
Men den vil ikke køre som selve galleri-oversigten.
Avatar billede syswatch Novice
13. maj 2003 - 20:35 #11
Hvad mener du med at det ikke vil køre som i selve galleri oversigten ? Jeg synes ikke rigtig at kunne se nogen forskel på det...
Avatar billede schaefner Juniormester
13. maj 2003 - 20:38 #12
Når et billede popper op, og du så trykker frem og så tilbage igen, så vil det ikke være det billede du åbnede. Det var det jeg mente :)

Iøvrigt var jeg selv til mc træf i esbjerg. Ganske mange motorcykler ;)
Avatar billede syswatch Novice
13. maj 2003 - 20:42 #13
Ok, det vil sige at vi ikke kan få det til at virke sådan så hvis man vælger billede 5, så er næste billede 6 og det forrige 4 ???

Kørte du også selv på mc ? Eller var du bare tilskuer ?
Avatar billede schaefner Juniormester
13. maj 2003 - 20:46 #14
Jeg var bare tilskuer. Jeg er kun 17, så jeg holdt mig på jorden ;)

Det kan godt laves, men så skal dit eksisterende galleri-scripts laves lidt om.
Avatar billede syswatch Novice
13. maj 2003 - 20:48 #15
Det gør ikke så meget hvis det bliver lavet om, du kan få yderligere 100 point hvis du vil lave det, ellers får du bare de 200 point for dette her.... det er op til dig.
Avatar billede schaefner Juniormester
13. maj 2003 - 20:49 #16
Jeg kigger på det og vender tilbage senere.
Avatar billede syswatch Novice
13. maj 2003 - 20:52 #17
ok...
Avatar billede syswatch Novice
15. maj 2003 - 13:21 #18
Hey Schaefner: Har du fundet ud af om du ville lave scriptet om, eller skal jeg bare lukke spg'et... ?
Avatar billede schaefner Juniormester
15. maj 2003 - 20:39 #19
Jeg er igang :)
Avatar billede schaefner Juniormester
15. maj 2003 - 22:35 #20
Utestet:

galleri.php

<?php
include("$DOCUMENT_ROOT/galleri/maintop.php");
include("$DOCUMENT_ROOT/galleri/dbcon.php");
?>
<table width="400" border="0"><tr>
<?php
// Lidt indstillinger
$path = ".$bib/";
$handle = opendir($path);
$cells = 4; // Antal celler ved siden af hinanden
$cellcount = 1;
while (($fil = readdir($handle)) !== false) {
    if ($fil != "." && $fil != ".." && substr($fil,-3) == "jpg") {
        $images[] = $fil;
    }
}
closedir($handle);

foreach ($images AS $key => $value) {
    echo "<td valign=\"bottom\" align=\"center\">";
    $size = getimagesize($path.$value);
    if ($size[0] < $size[1]) {
        echo "<a href=\"#\" onclick=\"popUp('http://www.syswatch.dk/galleri/vispic.php?event=$bib&show=$key'); return false\"><img src=\"$path/$value\" alt=\"$value\" border=\"0\" width=\"66\" height=\"100\"></a>";
    } else {
        echo "<a href=\"#\" onclick=\"popUp1('http://www.syswatch.dk/galleri/vispic.php?event=$bib&show=$key'); return false\"><img src=\"$path/$value\" alt=\"$value\" border=\"0\" width=\"100\" height=\"66\"></a>";
    }
    echo "</td>";

    if ($cellcount == $cells) {
        $cellcount = 0;
        echo "</tr><tr>";
    }
    $cellcount++;
}
// Udskriver de evt. resterende celler
while ($cellcount <= $cells) {
    echo "<td></td>";
    $cellcount++;
}
?>
</tr></table>

--------------------------------
vispic.php

<html>
<head>
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>Galleri Vindue... !</title>
</head>
<body topmargin="0" leftmargin="0">

<center><a href="#" onclick="self.close()">
<?php
$handle = opendir($event);
while (($fil = readdir($handle)) !== false) {
    if ($fil != "." && $fil != ".." && substr($fil,-3) == "jpg") {
        $images[] = $fil;
    }
}
closedir($handle);
echo "<img src=\"/galleri/$event/$images[$show]\" border=\"0\">";
?>
</a></center>

<?php
if ($show != 0) {
    $forrige = $show-1;
    echo "<a href=\"?event=$event&show=$forrige\">Forrige</a> ";
}
if (count($billeder)-1 != $show) {
    $naeste = $show+1;
    echo "<a href=\"?event=$event&show=$naeste\">Næste</a>";
}
?>

</body>
</html>
Avatar billede syswatch Novice
19. maj 2003 - 09:04 #21
Hej Schaefner, så har jeg testet det. Det ser ud til at der er en lille bug, ellers tror jeg det spiller. Men den sætter et / for meget ind i billedelinket så den ikke viser de små billeder. Se evt. her: www.syswatch.dk under galleriet.
Avatar billede schaefner Juniormester
19. maj 2003 - 17:02 #22
Umiddelbart er det bare stien til billederne der er forkert. Stien står til:
http://www.syswatch.dk/home/syswatch/galleri/mctraf03//Im000872.jpg

men skal være:
http://www.syswatch.dk/galleri/mctraf03//Im000872.jpg
Avatar billede syswatch Novice
19. maj 2003 - 19:31 #23
Hvordan skal jeg skrive denne linie:

// Lidt indstillinger
$path = ".$bib/";

Jeg har skrevet den sådan: $path = "/home/syswatch/galleri/$bib/"; Det er nok derfor den skaber sig. Men den linie du har skrevet giver også lidt problemer.

Skal der egentlig være 2 stk // i stien til billedet ?
Avatar billede schaefner Juniormester
19. maj 2003 - 19:34 #24
nej, prøv bare:

$path = "/galleri/$bib";
Avatar billede syswatch Novice
19. maj 2003 - 19:37 #25
Den melder stadig fejl.... tjeck evt. lige siden...
Avatar billede schaefner Juniormester
19. maj 2003 - 19:40 #26
Prøv:
$path = "./";
Avatar billede syswatch Novice
19. maj 2003 - 19:47 #27
Not working...
Avatar billede syswatch Novice
19. maj 2003 - 19:48 #28
Den komplette sti til billederne er:

/home/syswatch/galleri/mctraf03/

Hvis det skulle hjælpe dig...
Avatar billede schaefner Juniormester
19. maj 2003 - 19:49 #29
Udskift dette:

foreach ($images AS $key => $value) {
    echo "<td valign=\"bottom\" align=\"center\">";
    $size = getimagesize($path.$value);
    if ($size[0] < $size[1]) {
        echo "<a href=\"#\" onclick=\"popUp('http://www.syswatch.dk/galleri/vispic.php?event=$bib&show=$key'); return false\"><img src=\"$path/$value\" alt=\"$value\" border=\"0\" width=\"66\" height=\"100\"></a>";
    } else {
        echo "<a href=\"#\" onclick=\"popUp1('http://www.syswatch.dk/galleri/vispic.php?event=$bib&show=$key'); return false\"><img src=\"$path/$value\" alt=\"$value\" border=\"0\" width=\"100\" height=\"66\"></a>";
    }
    echo "</td>";

    if ($cellcount == $cells) {
        $cellcount = 0;
        echo "</tr><tr>";
    }
    $cellcount++;
}

med:

foreach ($images AS $key => $value) {
    echo "<td valign=\"bottom\" align=\"center\">";
    $size = getimagesize($path.$value);
    if ($size[0] < $size[1]) {
        echo "<a href=\"#\" onclick=\"popUp('http://www.syswatch.dk/galleri/vispic.php?event=$bib&show=$key'); return false\"><img src=\"$value\" alt=\"$value\" border=\"0\" width=\"66\" height=\"100\"></a>";
    } else {
        echo "<a href=\"#\" onclick=\"popUp1('http://www.syswatch.dk/galleri/vispic.php?event=$bib&show=$key'); return false\"><img src=\"$$value\" alt=\"$value\" border=\"0\" width=\"100\" height=\"66\"></a>";
    }
    echo "</td>";

    if ($cellcount == $cells) {
        $cellcount = 0;
        echo "</tr><tr>";
    }
    $cellcount++;
}
Avatar billede syswatch Novice
19. maj 2003 - 19:52 #30
Done, uden held... stadig fejl i stien til de små billeder...
Avatar billede syswatch Novice
19. maj 2003 - 19:53 #31
Arh... du havde lige lavet et $ tegn for meget... nu virker det..
Avatar billede schaefner Juniormester
19. maj 2003 - 19:55 #32
Nu følger billederne i pop-up'en også galleriet ;)
Avatar billede syswatch Novice
19. maj 2003 - 19:58 #33
Yep... MANGE MANGE tak for hjælpen, lad os nu få afregnet med de point. Starter her med de 200, bagefter laver jeg et nyt spg der hedder point til schaefner, så svarer du lige der, og så får du resten, ok... ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester