Avatar billede Hans Frederik Novice
25. september 2010 - 22:52 Der er 7 kommentarer og
1 løsning

Hent side til ny div.

Hej Eksperter!

Jeg har et problem, som bliver lidt kompliceret at formulerer, men jeg vil gøre mit bedste!

på hjemmesiden http://hansfrederik.dk/ bruger jeg en fil, billeder.php (kode nedenfor) til mine billedgallerier, den har tre funktioner i en. 1: Den giver en tabel over de mapper der ligger i den mappe den har fået besked på at kigge i. 2: Når man klikker på en af de mapper, viser den billederne af mappen som thumbs. 3: Når man klikker på en af disse, viser den dette billede stort. (se http://hansfrederik.dk/index.php?page=billeder&sub=Billeder%20fra%20Asien)

Det er fint og godt. Men jeg har lyst til at gøre det lidt smartere!

Her er hvordan: Når man trykker på en af thumpsne i skridt 2, skal en ny, gennemsigtig div åbne, der dækker hele siden, og her skal billedet vises.

Jeg har lavet en skjult div i min index.php, og har tænkt mig at hente billedet ind i denne div (se funktion i ovenstående link, ved tryk på "show billeddiv"). Det kan jeg dog ikke finde ud af.

min index.php <body> ser således ud:
<body>
<div id="billeddiv" class="billedramme">
        <? include('billeddiv.php'); ?>
</div>

<div class="beholder">
    <div class="baggrund">

        <div class="top">
        <a href="http://hansfrederik.dk"><img src="faelles/pics/hansfrederik.png" alt="Hans Frederik Ross Nielsen" class="validimg"></a>
        </div>
       
        <div class="kontakt">
        <? include ("faelles/kontakt/kontaktlink.html"); ?>
        </div>

        <div class="menu">
        <? include ("faelles/menu/menu.php"); ?>
        </div>

        <div class="indhold">
        <?
            $page = $_GET['page'];
            if (!empty($page)) {
                $page .= '.php';
                include($page);
            }
            else {
                include('intro.php');
            }
        ?>
        </div>
       
        <div class="valid">
            <? include ("faelles/valid/valid.html"); ?>
        </div>
    </div>
</div>
</body>


Og min billeder.php fil ser således ud:

<?
if($_GET[billeder]){
    if(isset($_GET[n])){
        echo printpic($_GET[folder],$_GET[n]);
    }
}

else{
    $sti = "$_GET[sub]/".$_GET[sti];
    echo printdir($sti);
}

//Her opsættes links og thumbs.
function printdir($folder){
    $path = realpath("./");
    $sti = $path."/".$folder;
    if($bib = opendir($sti)){
        $n = 0;
        while (false !== ($fil = readdir($bib))){
            if($fil !== "." && $fil !== ".." && !ereg("^\..+", $fil)){
                $fil_liste[] = "$fil";
            }
        }
        closedir($bib);
        if(is_array($fil_liste)){
            usort($fil_liste, "strnatcmp");
        }

        $nn = 0;
        for ($n = 0; $n<count($fil_liste); $n++){
            $page = $_GET[page];
            if($nn==0){
                $nn++;
            }
            //Her opsættes linkene til mapperne med billider.
            if(is_dir($sti."/".$fil_liste[$n]) and $nn < 5){
                $liste[] = "<tr class=listebaggrund><th class=asien><p><a class=fedlinksort href='$_SERVER[PHP_SELF]?page=$page&amp;sub=$_GET[sub]&amp;sti=$fil_liste[$n]'>$fil_liste[$n]</a></p></th></tr>";
            }
            elseif(is_dir($sti."/".$fil_liste[$n])){
                if($nn==5 and $n==4)    {
                include "$_GET[sub].php";
                }
                $liste[] = "<tr class=listebaggrund><th class=asien><p><a class=fedlinksort href='$_SERVER[PHP_SELF]?page=$page&amp;sub=$_GET[sub]&amp;sti=$fil_liste[$n]'>$fil_liste[$n]</a></p></th>";
            }
            //Her opsættes thumb-siden.
            elseif($nn == 1){
                $liste[] = "<tr><td class=asienthumb><p class=asienp>
                <a href='$_SERVER[PHP_SELF]?folder=$folder&amp;page=$page&amp;sub=$sub&amp;n=$n&amp;billeder=1'>
                <img src='thumb.php?pic=$folder/$fil_liste[$n]' alt='Se billede' class=noborder></a></p></td>\n";
                }
            else{
                $liste[] = "<td class=asienthumb><p class=asienp>
                <a href='$_SERVER[PHP_SELF]?folder=$folder&amp;page=$page&amp;sub=$sub&amp;n=$n&amp;billeder=1'>
                <img src='thumb.php?pic=$folder/$fil_liste[$n]' alt='Se billede' class=noborder></a></p></td>\n";
            }
            if($nn == 5){
                $liste[] = "</tr>\n";
                $nn = 0;
            }
            $nn++;
        }
        $mappe = explode("/",$folder);
        echo "<p class=titel><a href='$_SERVER[PHP_SELF]?page=billeder&sub=$_GET[sub]'>$_GET[sub]</a>: <a href='$_SERVER[PHP_SELF]?page=billeder&sub=$_GET[sub]&sti=$mappe[1]'>$mappe[1]</a></p>";
        $filliste = $filliste ."<table class=noborder>\n".join("", $liste)."</table>\n";
        return $filliste;
    }
    else {
        die("Noget gik galt :(  Skriv til webmaster! (Kode1)".$bib);
    }
}
//Her opsættes visningen af det store billede.
function printpic($folder,$n){
    $path = realpath("./");
    $sti = $path."/".$folder;
    if($bib = opendir($sti)){
        while (false !== ($fil = readdir($bib))){
            if($fil !== "." && $fil !== ".." && !ereg("^\..+", $fil)){
                if(is_dir($sti."/".$fil)){
                    $fil_liste[] = "<a href='$_SERVER[PHP_SELF]?sti=$fil&amp;billeder=1'>$fil</a>";
                }
                else{
                    $fil_liste[] = "$fil";
                }
            }
        }
        closedir($bib);
        if(is_array($fil_liste)){
            usort($fil_liste, "strnatcmp");
        }
        for ($num = ($n-2); $num <= ($n+2); $num++){
            if($num >= 0 && $num < count($fil_liste)){
                $liste[] = "<td class=center><p class=asienp>
                <a href='$_SERVER[PHP_SELF]?folder=$folder&amp;page=billeder&amp;n=$num&amp;billeder=1'>
                <img src='thumb.php?pic=$folder/$fil_liste[$num]' alt='Se billede' class=noborder></a></p><p class=asienp>
                <a href='$_SERVER[PHP_SELF]?folder=$folder&amp;n=$num&amp;billeder=1'>$fil_liste[$num]</a></p></td>\n";
            }
            else{
                $liste[] ="<td></td>";
            }
        }
        $numm = $n-1;
        $nump = $n+1;
        $mappe = explode("/",$folder);
        echo "<p class=titel><a href='$_SERVER[PHP_SELF]?page=billeder&sub=$_GET[sub]'>$_GET[sub]</a>: <a href='$_SERVER[PHP_SELF]?page=billeder&sub=$_GET[sub]&sti=$mappe[1]'>$mappe[1]</a></p>";
        echo "<table class=asientable><tr>";
        if($numm >= 0){
            echo "<td>
            <a href='$_SERVER[PHP_SELF]?folder=$folder&amp;page=billeder&amp;n=$numm&amp;billeder=1'>
            <img src='faelles/pics/pilv.png' alt='Forrige billede' class=noborder></a>
            </td>";
        }
        echo "<td><p class=ingenmargin><img src='pic.php?pic=$folder/$fil_liste[$n]' alt='Billede' class=noborder></p></td><td>";
        if($nump<count($fil_liste)){
            echo "<a href='$_SERVER[PHP_SELF]?folder=$folder&amp;page=billeder&amp;n=$nump&amp;billeder=1'>
            <img src='faelles/pics/pilh.png' alt='Næste billede' class=noborder></a></td>";
        }
        echo "</tr></table>\n";
        $filliste = $filliste ."<table class=asientable><tr>".join("", $liste)."</tr></table>\n";
        $filliste = $filliste;
        return $filliste;
    }
    else {
        die("Noget gik galt :(  Skriv til webmaster! (Kode2)".$bib);
    }
}
?>

Jeg håber I kan hjælpe mig, for jeg er helt lost her!
Avatar billede zips Juniormester
25. september 2010 - 23:32 #1
Avatar billede Hans Frederik Novice
26. september 2010 - 00:04 #2
@zips læg et svar, så får du point. Det er den bedste løsning EVER!!! Super nice!
Avatar billede zips Juniormester
26. september 2010 - 10:46 #3
Her er et svar :-)
Avatar billede Hans Frederik Novice
26. september 2010 - 13:09 #4
@ zips.. Der er et lille problem med lightbox, af en eller anden grund viser den ikke "close" ikonet i nederste højre hjørne. Kan du hjælpe med at finde ud af hvorfor? Jeg har selvfølgelig modificeret lightbox.js.
Avatar billede Hans Frederik Novice
26. september 2010 - 14:16 #5
@ zips.. og et andet spørgsmål: Kan man flytte "caption" baren fra at være under billedet til at være til venstre for billedet?
Avatar billede zips Juniormester
26. september 2010 - 21:08 #6
Der er ikke noget close billede på den sti du linker til
http://hansfrederik.dk/pics/lightbox/closelabel.gif
Det skal være
http://hansfrederik.dk/faelles/pics/lightbox/closelabel.gif

Dvs at denne sti er ikke rigtigt i lightbox.js
fileLoadingImage:'../pics/lightbox/loading.gif'

At få "caption" op på siden kræver en ændring af lightbox.js jeg har ikke selv prøvet, men i linje 162 er den span som indeholder det, men fre linje 376 og ned laves bottom baren, den kan måske flyttes til den sted du ønsker den skal vises.
Avatar billede Hans Frederik Novice
26. september 2010 - 21:26 #7
Ach du meine Güte! Jeg trode at den gik ud fra placeringen af lightbox.js, og ikke index.php, men det er jo klart når man tænker over det.. Then again, lightbox.css går ud fra sin egen placering, selvom den jo også bliver "hentet ind i" index.php ligesom lightbox.js.

Anyway, tusind tak for hjælpen!

Jeg kigger på det med caption, og poster min løsning her hvis jeg finder en.
Avatar billede Hans Frederik Novice
27. september 2010 - 01:55 #8
@ zips: Jeg har oprettet et nyt spørgsmål her: http://www.eksperten.dk/spm/919791

Håber du kigger med.
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

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