Avatar billede snorres Nybegynder
15. oktober 2004 - 16:55 Der er 11 kommentarer og
1 løsning

Side tal på automatisk billed side

Jeg har en side der automatisk går ind og finder alle billeder i en mappe og smider dem på en side, med maks 12 billeder per side.

Det jeg gerne ville have lavet er at der i toppen automatisk står hvor mange billeder der er i alt i mappen og lave sådan at man kan vaelge side.
altså så der nede i bunden står
Last 1 2 3 4 5 6 next
hvis de rer 6 sider i alt

min kode står nede for, håber virkelig nogen kan hjaelpe :D

<?php

#Indstillinger

$sum = 3; // Antal billeder ved siden af hinanden

$sumcount = 1;

$imgwidth = 100; // Billedets bredde

$imgheight = 100; // Bileddets højde

$mappe = "./Bgs/"; // Mappen med billeder

$pr_side = 12; // Antal billeder pr. side



if (isset($_GET['offset'])) {

    $offset = $_GET['offset'];

} else {

    $offset = 0;

}

$pics = $offset+$pr_side;

$i = $offset;

echo "$i - $pics / 48<br>";

# Laver et array med billederne, så vi senere kan sortere dem alfabetisk

$handle = opendir($mappe);

while (($fil = readdir($handle)) !== false) {

    if ($fil != "." && $fil != ".." && !is_dir($mappe."/".$fil)) {

        $billeder[] = "$fil";

    }

}

closedir($handle);



# Udskriver billederne

sort($billeder);
$billeder = array_reverse($billeder);

while($i < $pics && $billeder[$i] != "") {
$text = $billeder[$i];
$text = str_replace("_"," ", $text);
$text = str_replace("1","", $text);
$text = str_replace("2","", $text);
$text = str_replace("3","", $text);
$text = str_replace("4","", $text);
$text = str_replace("5","", $text);
$text = str_replace("6","", $text);
$text = str_replace("7","", $text);
$text = str_replace("8","", $text);
$text = str_replace("9","", $text);
$text = str_replace("0","", $text);
$text = str_replace(".jpg","", $text);
$text = str_replace(".gif","", $text);
$text = str_replace(".JPG","", $text);
$text = str_replace("ae","æ", $text);
$text = str_replace("AE","Æ", $text);
$text = str_replace("aa","å", $text);
$text = str_replace("AA","Å", $text);
$text = str_replace("oe","ø", $text);
$text = str_replace("OE","Ø", $text);
$text = str_replace("..","*", $text);
$text = str_replace("SMIL",":)", $text);


    echo "<td><table><tr><td><a href=\"$mappe/$billeder[$i]\" target=_blank><img src=\"$mappe/small/$billeder[$i]\" border=\"0\" width=\"100\" height=\"100\"><br>$text</td></a></tr></table></td>";

    if ($sumcount == $sum) {

        $sumcount = 0;

        echo "</tr><tr>";

    }

    $sumcount++;

    $i++;

}

?>

Shift page: <?php

#Udskriver frem og tilbage links

if ($offset >= $pr_side) {

    $forrige = $offset-$pr_side;

    echo "<a href=\"?offset=$forrige\"> Last </a> - ";

}

if (count($billeder) > $offset+$pr_side) {

    $naeste = $offset+$pr_side;

    echo "<a href=\"?offset=$naeste\"> Next </a>";

}

?>
Avatar billede bojo Nybegynder
15. oktober 2004 - 23:58 #1
noget ala dette - jeg har ikke rettet dine tabel fejl

<?php

#Indstillinger

$sum = 3; // Antal billeder ved siden af hinanden

$sumcount = 1;

$imgwidth = 100; // Billedets bredde

$imgheight = 100; // Bileddets højde

$mappe = "./"; // Mappen med billeder

$pr_side = 12; // Antal billeder pr. side


if (isset($_GET['offset'])) {

    $offset = $_GET['offset'];

} else {

    $offset = 0;

}

$pics = $offset+$pr_side;

$i = $offset;

# Laver et array med billederne, så vi senere kan sortere dem alfabetisk

$handle = opendir($mappe);

while (($fil = readdir($handle)) !== false) {

    if ($fil != "." && $fil != ".." && !is_dir($mappe."/".$fil)) {

        $billeder[] = "$fil";

    }

}

closedir($handle);

echo "$i - $pics / ".count($billeder)."<br>";
for( $x=0; $x < count($billeder); $x+= $pr_side ) {
    echo "<a href='$PHP_SELF?offset=$x'>".$x." - ".($x+12)."</a>  ";
}
# Udskriver billederne

sort($billeder);
$billeder = array_reverse($billeder);

while($i < $pics && $billeder[$i] != "") {
$text = $billeder[$i];
$text = str_replace("_"," ", $text);
$text = str_replace("1","", $text);
$text = str_replace("2","", $text);
$text = str_replace("3","", $text);
$text = str_replace("4","", $text);
$text = str_replace("5","", $text);
$text = str_replace("6","", $text);
$text = str_replace("7","", $text);
$text = str_replace("8","", $text);
$text = str_replace("9","", $text);
$text = str_replace("0","", $text);
$text = str_replace(".jpg","", $text);
$text = str_replace(".gif","", $text);
$text = str_replace(".JPG","", $text);
$text = str_replace("ae","æ", $text);
$text = str_replace("AE","Æ", $text);
$text = str_replace("aa","å", $text);
$text = str_replace("AA","Å", $text);
$text = str_replace("oe","ø", $text);
$text = str_replace("OE","Ø", $text);
$text = str_replace("..","*", $text);
$text = str_replace("SMIL",":)", $text);


    echo "<td><table><tr><td><a href=\"$mappe/$billeder[$i]\" target=_blank><img src=\"$mappe/small/$billeder[$i]\" border=\"0\" width=\"100\" height=\"100\"><br>$text</td></a></tr></table></td>";

    if ($sumcount == $sum) {

        $sumcount = 0;

        echo "</tr><tr>";

    }

    $sumcount++;

    $i++;

}

?>

Shift page: <?php

#Udskriver frem og tilbage links

if ($offset >= $pr_side) {

    $forrige = $offset-$pr_side;

    echo "<a href=\"?offset=$forrige\"> Last </a> - ";

}

if (count($billeder) > $offset+$pr_side) {

    $naeste = $offset+$pr_side;

    echo "<a href=\"?offset=$naeste\"> Next </a>";

}

?>
Avatar billede snorres Nybegynder
16. oktober 2004 - 00:24 #2
Avatar billede snorres Nybegynder
16. oktober 2004 - 00:26 #3
Ah du havde aendret mappe navnet :)
Kan man få den til at skrive
Forige 1 2 3 4 5 6 naeste
istedet for
12-24 24-36 osv. ?
Avatar billede bojo Nybegynder
16. oktober 2004 - 02:09 #4
joooo, ret til echo "<a href='$PHP_SELF?offset=$x'>".floor($x/12)."</a>  "; i lin 50
Avatar billede bojo Nybegynder
16. oktober 2004 - 02:13 #5
eller faktisk til
echo "<a href='$PHP_SELF?offset=$x'>".floor($x/$pr_side)."</a>  ";
for at dine variable bruges
Avatar billede snorres Nybegynder
16. oktober 2004 - 14:12 #6
hva så med at den side man er på ikke er et link, men bare tekst?
Håber det kan lade sig gøre, og så er jeg vidst også ved at vaeere der, så et svar ville vaere godt :D
Avatar billede bojo Nybegynder
17. oktober 2004 - 01:34 #7
jeg er ikke helt med, hvad mener du med "den side man er på ikke er et link, men bare tekst"
Avatar billede snorres Nybegynder
17. oktober 2004 - 13:54 #8
sådan at hvis man er på side 2, ser det således ud:
tilbage <--link 1<---link 2<--ik link 3<-- link 4<---link next <--link
Avatar billede bojo Nybegynder
17. oktober 2004 - 14:06 #9
for( $x=0; $x < count($billeder); $x+= $pr_side ) {
    if( $x >= $offset && $x < $offset+$pr_side )
        echo floor($x/$pr_side)."  ";
    else
        echo "<a href='$PHP_SELF?offset=$x'>".floor($x/$pr_side)."</a>  ";
}
Avatar billede snorres Nybegynder
18. oktober 2004 - 11:12 #10
Så virker det da :D
Tusind tak :D
Får jeg et svar :D?
Avatar billede bojo Nybegynder
18. oktober 2004 - 11:54 #11
naahh - tag dem selv
Avatar billede snorres Nybegynder
18. oktober 2004 - 12:01 #12
Ok mange tak :)
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