webForumDet fria alternativet

Problem med bild galleri!

1 svar · 400 visningar · startad av Beat

BeatMedlem sedan okt. 200732 inlägg
#1

Hej alla

Jag har gjort ett bildgalleri där jag använder mig utav en Iframe för att få det att funka bra. Jag har lagt en Iframe ovanför mina thumbnails och när man klickar på dem så öppnas bilderna i min Iframe. Jag använder dock PHP för att anropa alla mina bilder som ligger i en specifik mapp och så blir de automatisk thumbnails och när man klickar så ja ni förstår.

Men jag har fått ett problem jag vill att det ska gå att klicka på bilden som blir inne i Iframen och om man klickar på den så funkar den som en länk till bildens riktiga storlek. Hur gör jag detta? Har försökt på flera sätt utan att lyckas.

Sen en annan fråga finns det något bättre sätt än att använda Iframe för att få bildgallerit att se ut som jag har nu.

Koden där man ser bilderna och allt sådant:

<?php
session_start(); // Alltid överst på sidan

include "conn.php"; // Databasanslutningen

// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}

?>
<html>
<head>
<title>Bildserie Test</title>
</head>
<body>
<center>
<iframe src=''
name='iframe'
width='700' height='400' frameborder='0' align='center' scrolling='no'>
</iframe>
</center>
<br />
<?php
require_once("bildserietest.php");
$indirectory = "uploads/$_SESSION[sess_user]/";

$images = getImagesInDir($indirectory, true);

foreach ($images as $image)

  {
  echo "<a href=".$image." target='iframe'><img src=".$image." width='120' height='90' border='0'></a>";
  }
?>
<br />
<p>
<?php
require_once("bildserietest.php");
$indirectory = "uploads/$_SESSION[sess_user]/";

$images = getImagesInDir($indirectory, true);

foreach ($images as $image)

  {
  echo "<a href=".$image." target='blanc'><img src=".$image." width='120' height='90' border='0'></a>";  }
?>
</p>

</body>
</html>

Min php kod som loopar igenom bilderna:

<?php
/**
* Returns an array with the paths of all images in the directory $dir.
* If $fullDir is set to true, subdirectives and their images will be
* returned as well, as arrays withing the array.
*
* @param $dir The directive in which to look for images
* @param $fullDir Decide weather or not to look in subdirectives as well
*
* @return An array holding image paths and possibly subarrays holding
           paths of images in subdirectives
*
*/
function getImagesInDir($dir = '', $fullDir = true)
{
    $allowedExtensions = array('jpg', 'gif', 'png');
    $allImages = array();
    
    // Om $dir är ett giltligt direktiv
    if(is_dir($dir)) {
        if($dh = opendir($dir)) {
            // Medan det finns fler filer, fortsätt att läsa in dem
            while(($file = readdir($dh)) !== false) {
                // Ignorera s.k. 'punkt-filer'
                if($file != "." && $file != "..") {
                    // Om denna fil är en katalog (mapp)
                    if(filetype($filetype) == 'dir') {
                        $tmp = getImagesInDir($dir.$file, $fullDir);
                        if (!empty($tmp)) {
                            $allImages[] = $tmp;
                        }
                    } elseif(in_array(getExtension($file), $allowedExtensions)) {
                        $allImages[] = $dir.$file;
                    } // if
                } // if
            } // while
        } // if
    } // if
    return $allImages;
}

/**
* Returns the file extension of a file
*
* @param $imageName The complete image name
*
* @return The file's extension, excluding a dot
*/
function getExtension($imageName)
{
    return end(explode('.', $imageName));
}

?>
eliassonMedlem sedan juli 200429 inlägg
#2

Jag skulle nog använda javascript och lite div'ar för att lösa detta problemet. Undvik gärna iframes då frames är en SEO-dödare rakt igenom.
Jag vill inte påstå att javascript är bättre, men det kommer iallfall lösa ditt problem på ett effektivt sätt.

Lycka till.

125 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)