Avatar billede uthsen Nybegynder
05. juni 2009 - 08:55 Der er 8 kommentarer og
1 løsning

Billed galleri sætte fokus og små billeder i rækker

Jeg vil gerne om dette script kan beholde focus på galleriet, når det kører eller der klikkes på de forskellige små billeder.
Samtidig vil jeg gerne have de små billeder thumbs vist i rækker med 6 thumbs i hver række og ikke som nu, hvor de bare kommer i en lang række under det store galleri billede.

Nogen der kan ændre koden til det?

Koden er:

<?php
/**
* PHP Slideshow
* Version: 2008-08-23
* Author:  Christian L. Dünweber
* Webpage: http://www.dunweber.com/docs/scripts/#slideshow
* Copyright (C) 2006-2008 Christian L. Dünweber
* This program is distributed under the GNU General Public License,
* see <http://www.gnu.org/licenses/gpl.html>.
*/

# Her angives nogle værdier som styrer slideshowet
#  $bibliotek: angiver stien til billederne. Angiv relativ sti. F.eks.
#    "../../billeder/slide".
#    Angiv "." hvis slideshowbillederne ligger i samme bibliotek som denne fil.
#  $miniaturer: sættes til 1 hvis der skal vises miniaturer, 0 hvis ikke.
#  $nyt_vindue: sættes til 1 hvis der skal åbnes et nyt vindue når det aktuelle
#    billede klikkes, 0 hvis ikke.
#  $width_main: angiver bredden af slideshowets hovedvindue og hovedbillede.
#  $miniheight: angiver højden af miniaturebillederne (hvis disse altså vises).
#  $autoslide: angiver om slideshowet skal kunne sættes til at skifte billede
#    automatisk. 1 for ja, 0 for nej.
#  $forsinkelse: angiver forsinkelsen i sekunder mellem billedeskift hvis autoslide
#    er slået til.
$bibliotek = "billeder"; // Angiv "." hvis denne fil ligger i samme bibliotek som billederne
$bibliotek1="beskrivelse_upload";//beskrivelser
$miniaturer = 1;
$nyt_vindue = 1;
$width_main = "250px"; // Angives i pixel. F.eks "250px"
$miniheight = "50px"; // Angives i pixel. F.eks "50px"
$autoslide = 1;
$forsinkelse = 3;
       
/*** Kodestart :: Ændre kun dette hvis du ved hvad du gør! ***/

// Gør variablen $nr der angiver billedenummer tilgængelig når der klikkes frem og
// tilbage samt $auto der styrer den selvkørende del af slideshowet
$nr = $_GET["nr"];
$auto = $_GET["auto"];

// Åbner biblioteket, looper igennem og opsamler billeder i arrayet $fotos. Her
// benytter vi kun billeder vis filnavn ender med "_small"
if($handle = opendir($bibliotek)) {
    while(false !== ($fil = readdir($handle))) {
        if($fil != "." && $fil != ".." &&
          preg_match("/\.(jpg|jpeg|png|gif|tiff|ico)$/i", $fil) &&
          preg_match("/_small/i", $fil)) {
            $fotos[] = $fil;
        }
    }
    closedir($handle);
} else {
    exit("Kunne ikke åbne biblioteket: <em>$bibliotek</em>");
}

// Looper igennem $fotos og fjerner "_small" så der kan linkes til den store
// version af billederne
for ($i=0; $i<count($fotos); $i++) {
    $fotos_stor[] = preg_replace("/_small/i", '', $fotos[$i]);
}

// Sorterer arrayene med billeder
sort($fotos);
sort($fotos_stor);

// Antal billeder i biblioteket
$antal = count($fotos);

// Vis første billede igen når slideshowet har kørt en omgang
if(!$nr || $nr == $antal || $nr > $antal) {
    $nr = 0;
}

// Inkrementer for hvert klik på næste-knappen
$naeste = $nr + 1;

// Sæt det forrige billedes index
if($nr == 0) {
    $forrige = $antal - 1;
} else {
    $forrige = $nr - 1;
}

// Skal det aktuelle billedes link skal åbne et nyt vindue ($nyt_vindue = 1)
if($nyt_vindue == 1) {
    $target_blank =  "onclick=\"window.open(this.href,'',".
        "'width=640,height=480,left=30,top=30,resizable=yes'); return false;\"";
}

// Indlæser filen med beskriveler af de billederne (beskrivelser.txt) hvis denne eksisterer
if(file_exists($bibliotek1."/beskrivelser.txt")) {
    $billedeinfo = array();
    $billedeinfo = file($bibliotek1."/beskrivelser.txt");
    sort($billedeinfo);
    $beskrivelse = explode(";", $billedeinfo[$nr]);
}

// Hvis automatisk skiftende slideshow er slået til (dvs. hvis $autoslide = 1),
// køres slideshowet med en meta-refresh sammen med $naeste-tælleren
if($autoslide == 1) {
    if($auto == 1) {
        $autometa = "<meta http-equiv=\"refresh\" content=\"$forsinkelse;".
            " url=?auto=1&amp;nr=$naeste\" />";
        $autolink = "<p><a href=\"?nr=$nr\">Stop show</a></p>";
    } else {
        $autometa = "";
        $autolink = "<p><a href=\"?auto=1&amp;nr=$nr\">Start show</a></p>";
    }
}

// Opbygger container med miniaturer hvis disse ønskes vist
if($miniaturer == 1) {
    $mini = "<div id=\"slide-mini\">";
   
    for ($i=0; $i<count($fotos); $i++) {
        $mini .= "<a href=\"?nr=".$i."\" title=\"Klik og vis\">".
            "<img src=\"$bibliotek/".$fotos[$i]."\" alt=\"Klik og vis\"".
            " style=\"height:$miniheight;\" /></a>";
    }
   
    $mini .= "</div>";
}
       
/**
* HTML udskrives til visning :: Ændre til dit eget, MEN
* PAS PÅ ikke at ændre i PHP-kodestumperne der styre showet.
* De starter alle med et dollartegn $ og der er skrevet HTML-
* kommentarer der fortæller hvad er hvad.
* Al HTML-koden skal blive stående i denne fil.
*/

print <<<END
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
    <title>Slideshow med miniaturer</title>
   
    <!-- Her indsættes meta-tagen der genindlæser siden når slideshowet kører selv.
        FJERN IKKE! -->
    $autometa
   
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <style type="text/css">
    /**
    * Dette kan evt. indsættes i dit stylesheet og inkluderes på sædvanlig vis.
    */
    #slide-mini {
        text-align: center;
        }
    #slide-mini img {
        border: 1px solid silver;
        margin-right: 3px;
        margin-bottom: 3px;
        }
    .slide-main-img {
        border: 2px solid silver;
        padding: 5px;
        }
    .slide-table {
        margin: auto;
        }
    .slide-table td {
        color: silver;
        font-family: georgia,serif;
        font-size: 13px;
        }
    .slide-table a, .slide-table a:visited {
        color: silver;
        font-family: georgia,serif;
        font-size: 13px;
        }
    .slide-table a:hover {
        color: red;
        }
</style>








<!-- Her indsættes link til at starte og stoppe slideshowet - FJERN IKKE! -->
$autolink

<!-- Tabel til slideshowets hovedvindue med beskrivelse og frem-/tilbagelinks.
    ÆNDRE IKKE, men styr via CSS! -->
<table class="slide-table" style="width:$width_main;">
    <tr>
        <td colspan="3" align="center">$beskrivelse[1]</td>
    </tr>
    <tr>
        <td colspan="3" align="center">
        <a href="$bibliotek/$fotos_stor[$nr]" $target_blank title="Klik og se i stor">
        <img src="$bibliotek/$fotos_stor[$nr]" class="slide-main-img"
            alt="Klik og se i stor" style="width:$width_main;" /></a></td>
    </tr>
    <tr>
        <td><a href="?nr=$forrige">&laquo; Tilbage</a></td>
        <td valign="bottom">($naeste af $antal)</td>
        <td align="right"><a href="?nr=$naeste">Frem &raquo;</a></td>
    </tr>
</table>

<hr />

<!-- Her indsættes miniaturebillederne. FJERN IKKE! -->
$mini


</p>


END;
?>

KH Helle
Avatar billede repox Seniormester
05. juni 2009 - 09:49 #1
Jeg vil godt være den første til at sige at jeg ikke helt forstår hvad du mener.

Har du et link hvor man kan se scriptet i aktion? Det vil lette processen i forståelsen af ovenstående.
Avatar billede fant0mas Nybegynder
05. juni 2009 - 10:00 #2
Den med fokus forstår jeg heller ikke.
Men 6 pr. række:
if($miniaturer == 1) {
    $mini = "<div id=\"slide-mini\"><table border=\"1\"><tr>";
 
    for ($i=0; $i<count($fotos); $i++) {
    if(($i % 6) == 0){ // her sker magien!
        $mini .= "</tr><tr>";
        }
$mini .= "<td><a href=\"?nr=".$i."\" title=\"Klik og vis\">".
            "<img src=\"$bibliotek/".$fotos[$i]."\" alt=\"Klik og vis\"".
            " style=\"height:$miniheight;\" /></a></td>";
    }
 
    $mini .= "<tr></table></div>";
}
Avatar billede fant0mas Nybegynder
05. juni 2009 - 11:00 #3
Måske sådan:
$style =(isset($_GET['nr']) && $_GET['nr'] == $i)? 'style="border: solid 2px red;"': '';
$mini .= "<td ".$style."><a href=\"?nr=".$i."\" title=\"Klik og vis\">".
            "<img src=\"$bibliotek/".$fotos[$i]."\" alt=\"Klik og vis\"".
            " style=\"height:$miniheight;\" /></a></td>";
    }
Avatar billede uthsen Nybegynder
05. juni 2009 - 11:28 #4
repox : her er et link til galleriet i aktion, men her er der ikke problemer med fokus, da galleriet er sat ind i en iframe, men denne iframe vil jeg gerne have væk og så sker der det at hver gang der skiftes billede eller klikkes på frem og tilbage, reloader siden og starter i toppen og det skal den ikke - med fokus mener jeg at hver gang der er klikket på et og andet inde i et galleri, så forbliver man ved selve galleriet :O)

http://www.dkk-hvalpe.dk/chihuahua/galleri/galleriside1.php

Vender lige tilbage til de andre svar senere efter afprøvning :O)

Kh Helle
Avatar billede uthsen Nybegynder
05. juni 2009 - 11:30 #5
med rækker mener jeg de små billeder under det store skal komme i rækker på 6 billeder og ikke i en lang række. Uploadede jeg 100 billeder, kommer de i samme række og siden bliver meget bred :O)))))
Avatar billede uthsen Nybegynder
05. juni 2009 - 11:40 #6
Fokus - lidt alla dette flettet ind
<a name="A"></a>
"#homenavntekst"


fant0mas HIP HIP HURRA!!! Dert var lige præcis det jeg gerne ville have,men kan du ikke også lige ordne det med focus?

KH Helle
Avatar billede uthsen Nybegynder
05. juni 2009 - 18:19 #7
Jeg har selv løst Focus problemet sådan med<a name="galleri0001"></a> og #galleri0001:


<a name="galleri0001"><span style="color: rgb(250, 250, 250);">galleri0001</span></a>
</center></td></tr>


<tr>
<td colspan="3" rowspan="1">

<!--************************************************************kode galleri********************************************-->


<?php
/**
* PHP Slideshow
* Version: 2008-08-23
* Author:  Christian L. Dünweber
* Webpage: http://www.dunweber.com/docs/scripts/#slideshow
* Copyright (C) 2006-2008 Christian L. Dünweber
* This program is distributed under the GNU General Public License,
* see <http://www.gnu.org/licenses/gpl.html>.
*/

# Her angives nogle værdier som styrer slideshowet
#  $bibliotek: angiver stien til billederne. Angiv relativ sti. F.eks.
#    "../../billeder/slide".
#    Angiv "." hvis slideshowbillederne ligger i samme bibliotek som denne fil.
#  $miniaturer: sættes til 1 hvis der skal vises miniaturer, 0 hvis ikke.
#  $nyt_vindue: sættes til 1 hvis der skal åbnes et nyt vindue når det aktuelle
#    billede klikkes, 0 hvis ikke.
#  $width_main: angiver bredden af slideshowets hovedvindue og hovedbillede.
#  $miniheight: angiver højden af miniaturebillederne (hvis disse altså vises).
#  $autoslide: angiver om slideshowet skal kunne sættes til at skifte billede
#    automatisk. 1 for ja, 0 for nej.
#  $forsinkelse: angiver forsinkelsen i sekunder mellem billedeskift hvis autoslide
#    er slået til.
$bibliotek = "galleri0001/billeder"; // Angiv "." hvis denne fil ligger i samme bibliotek som billederne
$bibliotek1="beskrivelse_upload";//beskrivelser
$miniaturer = 1;
$nyt_vindue = 1;
$width_main = "250px"; // Angives i pixel. F.eks "250px"
$miniheight = "50px"; // Angives i pixel. F.eks "50px"
$autoslide = 1;
$forsinkelse = 3;
       
/*** Kodestart :: Ændre kun dette hvis du ved hvad du gør! ***/

// Gør variablen $nr der angiver billedenummer tilgængelig når der klikkes frem og
// tilbage samt $auto der styrer den selvkørende del af slideshowet
$nr = $_GET["nr"];
$auto = $_GET["auto"];

// Åbner biblioteket, looper igennem og opsamler billeder i arrayet $fotos. Her
// benytter vi kun billeder vis filnavn ender med "_small"
if($handle = opendir($bibliotek)) {
    while(false !== ($fil = readdir($handle))) {
        if($fil != "." && $fil != ".." &&
          preg_match("/\.(jpg|jpeg|png|gif|tiff|ico)$/i", $fil) &&
          preg_match("/_small/i", $fil)) {
            $fotos[] = $fil;
        }
    }
    closedir($handle);
} else {
    exit("Kunne ikke åbne biblioteket: <em>$bibliotek</em>");
}

// Looper igennem $fotos og fjerner "_small" så der kan linkes til den store
// version af billederne
for ($i=0; $i<count($fotos); $i++) {
    $fotos_stor[] = preg_replace("/_small/i", '', $fotos[$i]);
}

// Sorterer arrayene med billeder
sort($fotos);
sort($fotos_stor);

// Antal billeder i biblioteket
$antal = count($fotos);

// Vis første billede igen når slideshowet har kørt en omgang
if(!$nr || $nr == $antal || $nr > $antal) {
    $nr = 0;
}

// Inkrementer for hvert klik på næste-knappen
$naeste = $nr + 1;

// Sæt det forrige billedes index
if($nr == 0) {
    $forrige = $antal - 1;
} else {
    $forrige = $nr - 1;
}

// Skal det aktuelle billedes link skal åbne et nyt vindue ($nyt_vindue = 1)
if($nyt_vindue == 1) {
    $target_blank =  "onclick=\"window.open(this.href,'',".
        "'width=640,height=480,left=30,top=30,resizable=yes'); return false;\"";
}

// Indlæser filen med beskriveler af de billederne (beskrivelser.txt) hvis denne eksisterer
if(file_exists($bibliotek1."/beskrivelser.txt")) {
    $billedeinfo = array();
    $billedeinfo = file($bibliotek1."/beskrivelser.txt");
    sort($billedeinfo);
    $beskrivelse = explode(";", $billedeinfo[$nr]);
}

// Hvis automatisk skiftende slideshow er slået til (dvs. hvis $autoslide = 1),
// køres slideshowet med en meta-refresh sammen med $naeste-tælleren
if($autoslide == 1) {
    if($auto == 1) {
        $autometa = "<meta http-equiv=\"refresh\" content=\"$forsinkelse;".
            " url=?auto=1&amp;nr=$naeste#galleri0001\" />";
        $autolink = "<p><a href=\"?nr=$nr#galleri0001\">Stop show</a></p>";
    } else {
        $autometa = "";
        $autolink = "<p><a href=\"?auto=1&amp;nr=$nr#galleri0001\">Start show</a></p>";
    }
}

// Opbygger container med miniaturer hvis disse ønskes vist
if($miniaturer == 1) {
    $mini = "<div id=\"slide-mini\"><table border=\"1\"><tr>";
 
    for ($i=0; $i<count($fotos); $i++) {
    if(($i % 6) == 0){ // her sker magien!
        $mini .= "</tr><tr>";
        }
$mini .= "<td><a href=\"?nr=".$i."#galleri0001\" title=\"Klik og vis\">".
            "<img src=\"$bibliotek/".$fotos[$i]."\" alt=\"Klik og vis\"".
            " style=\"height:$miniheight;\" /></a></td>";
    }
 
    $mini .= "<tr></table></div>";
}
/**
* HTML udskrives til visning :: Ændre til dit eget, MEN
* PAS PÅ ikke at ændre i PHP-kodestumperne der styre showet.
* De starter alle med et dollartegn $ og der er skrevet HTML-
* kommentarer der fortæller hvad er hvad.
* Al HTML-koden skal blive stående i denne fil.
*/

print <<<END
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
    <title>Slideshow med miniaturer</title>
   
    <!-- Her indsættes meta-tagen der genindlæser siden når slideshowet kører selv.
        FJERN IKKE! -->
    $autometa
   
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <style type="text/css">
    /**
    * Dette kan evt. indsættes i dit stylesheet og inkluderes på sædvanlig vis.
    */
    #slide-mini {
        text-align: center;
        }
    #slide-mini img {
        border: 1px solid silver;
        margin-right: 3px;
        margin-bottom: 3px;
        }
    .slide-main-img {
        border: 2px solid silver;
        padding: 5px;
        }
    .slide-table {
        margin: auto;
        }
    .slide-table td {
        color: silver;
        font-family: georgia,serif;
        font-size: 13px;
        }
    .slide-table a, .slide-table a:visited {
        color: silver;
        font-family: georgia,serif;
        font-size: 13px;
        }
    .slide-table a:hover {
        color: red;
        }
</style>








<!-- Her indsættes link til at starte og stoppe slideshowet - FJERN IKKE! -->
$autolink

<!-- Tabel til slideshowets hovedvindue med beskrivelse og frem-/tilbagelinks.
    ÆNDRE IKKE, men styr via CSS! -->
<table class="slide-table" style="width:$width_main;">
    <tr>
        <td colspan="3" align="center">$beskrivelse[1]</td>
    </tr>
    <tr>
        <td colspan="3" align="center">
        <a href="$bibliotek/$fotos_stor[$nr]" $target_blank title="Klik og se i stor">
        <img src="$bibliotek/$fotos_stor[$nr]" class="slide-main-img"
            alt="Klik og se i stor" style="width:$width_main;" /></a></td>
    </tr>
    <tr>
        <td><a href="?nr=$forrige#galleri0001">&laquo; Tilbage</a></td>
        <td valign="bottom">($naeste af $antal)</td>
        <td align="right"><a href="?nr=$naeste#galleri0001">Frem &raquo;</a></td>
    </tr>
</table>

<hr />

<!-- Her indsættes miniaturebillederne. FJERN IKKE! -->
$mini


</p>


END;
?>
Avatar billede uthsen Nybegynder
05. juni 2009 - 18:20 #8
fant0mas:

Kan du ikke lige lægge et svar, så du kan få point for din del?

KH Helle
Avatar billede uthsen Nybegynder
17. september 2012 - 15:25 #9
lukker
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