Jump to content

Recommended Posts

Hi

I am working on this gallery http://www.klaedskeri.com/test2/ImageGallery/gallery.php

 

and i cant find out, how to fix the links Myndir 2 | Myndir 4 | Myndir 3 |    |  Slide show

as you can see on the script, it will not comes right out, below is the full code, can someone see what wrong, why does it not show Myndir 1 | Myndir 2 | Myndir 3 |Myndir 4 | Slide show what am i doing wrong

 

Sorry my English  :wink:

<?php
$width                  = 600;
$thumbnails_per_row     = 5;
$thumbnail_indexing     = TRUE;
$thumbnails_per_page    = 20;

$thumbnail_filetype     = "png";        // png or jpg
$slideshow_filetype     = "png";        // png or jpg

$multipleGalleries      = TRUE;
$galleries              = array(        "Myndir 1" => "./gallery01",
                                        "Myndir 2" => "./gallery02",
                                        "Myndir 3" => "./gallery03",
                                        "Myndir 4" => "./gallery04");
$link_original_image    = TRUE;

// delete all generated images after modifying anything below !!!

// slideshowsettings
$image_margin                   = 10;
$image_border                   = TRUE;
$image_dropShadow               = TRUE;
$image_offset_x                 = 1;
$image_offset_y                 = 1;
$image_dropShadow_scale         = 0.99;
$image_dropShadow_offset        = 12;
$image_dropShadow_blurRadius    = 10;   // not greater then 46 (because of pixel gaps) and not greater then $dropShadow_offset

// thumbnailsettings
$thumbnail_border               = TRUE;
$thumbnail_dropShadow           = TRUE;
$thumbnail_offset_x             = 0;
$thumbnail_offset_y             = 1;
$thumbnail_dropShadow_scale     = 0.99;
$thumbnail_dropShadow_offset    = 6;
$thumbnail_dropShadow_blurRadius= 6;    // not greater then 46 (because of pixel gaps) and not greater then $dropShadow_offset

$background_color               = array(255, 255, 255);
$border_color                   = array(0, 0, 0);
$dropShadow_color               = array(100, 100, 100); // has to be darker then the background color!!!

//################################################################################
//###                                                                   ####
//###   CONFIGURATION - ends here                                               ####
//###                                                                   ####
//###   !!! don't edit anything above, except you know what you are doing !!!           ####
//###                                                                   ####
//################################################################################

$html_background_color = "#".sprintf("%02s", dechex($background_color[0])).sprintf("%02s", dechex($background_color[1])).sprintf("%02s", dechex($background_color[2]));

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title>Myndir</title>
        <style type="text/css">
                body    {       font-family:    arial, sans-serif;
                                text-align:     center; // dirty hack for centered page-container in IE5
                                color:          #707070;
                                background-color:       <?php echo "$html_background_color"; ?>;
                                padding-top:    4%;             }
                #page   {       width:          <?php echo "$width"; ?>px;
                                margin:         0px auto;
                                padding:                10px;
                                text-align:     left;
                                border:         solid #c0c0c0 1px;      }
                #navigation {   border-bottom:  solid #c0c0c0 1px;
                                padding:                10px;           }
                #statusbar {    border-bottom:  solid #c0c0c0 1px;
                                padding:                10px;           }
                #img_area {     text-align:     center;
                                margin-top:     15px;           }
                #footer {       border-top:     solid #c0c0c0 1px;
                                padding:                10px;
                                text-align:     center;         }
                #footer p       {       font-size:              10px;
                                color:          #555555;
                                font-weight:    bold;           }
                img     {       border:         0px;            }
                p       {       font-size:              12px;
                                color:          #777777;
                                font-weight:    normal;         }
                a       {       font-weight:    bold;
                                color:          #999999;
                                text-decoration:        none;           }
        </style>
</head>
<body>
<div id="page">
<?php
        // initialization------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        
        $SCRIPT_NAME    = getenv("SCRIPT_NAME");
        
        if (isset($_GET["gallery"]))    { $gallery = $_GET["gallery"]; }
        else                            { $gallery = $galleries[key($galleries)]; }
        if (isset($_GET["view"]))       { $view = $_GET["view"]; }
        else                            { $view = "thumbnails"; }

        if (isset($_GET["thumbnail_index"]))    { $thumbnail_index = $_GET["thumbnail_index"]; }
        else                                    { $thumbnail_index = 0; }

        if (isset($_GET["slideshow_index"]))    { $slideshow_index = $_GET["slideshow_index"]; }
        else                                    { $slideshow_index = 0; }
        
        if (!is_dir($gallery)) { die("<br/><br/>ERROR: invalid directory: $gallery"); }
        if (!is_dir($gallery."/.thumbs")) if (!mkdir($gallery."/.thumbs")) { die("<br/><br/>ERROR: can't create thumbnail directory in $gallery"); }
        if (!is_dir($gallery."/.modified")) if (!mkdir($gallery."/.modified")) { die("<br/><br/>ERROR: can't create directory for modified images in $gallery"); }
        
        $thumbnail_size = intval($width/$thumbnails_per_row);
        
        // functions------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        function scale_image($img, $factor) {
                $temp = imagecreatetruecolor(imagesx($img)*$factor, imagesy($img)*$factor);
                imagecopyresized($temp, $img, 0, 0, 0, 0, imagesx($img)*$factor, imagesy($img)*$factor, imagesx($img), imagesy($img));
                return $temp;
                imagedestroy($temp);
        }
        
        function draw_image_border($img) {
                imagerectangle($img, 0, 0, imagesx($img)-1, imagesy($img)-1, imagecolorresolve($img, $GLOBALS["border_color"][0], $GLOBALS["border_color"][1], $GLOBALS["border_color"][2]));
                return $img; 
        }

        function draw_dropShadow($img, $dropShadow_scale, $dropShadow_offset, $dropShadow_blurRadius, $background_color, $dropShadow_color, $image_offset_x, $image_offset_y) {
                
                $dropShadow_width = intval(imagesx($img)*$dropShadow_scale);
                $dropShadow_height = intval(imagesy($img)*$dropShadow_scale);
                
                $img_dropShadow = imagecreatetruecolor($dropShadow_width+$dropShadow_offset+$dropShadow_blurRadius, $dropShadow_height+$dropShadow_offset+$dropShadow_blurRadius);
                
                // determine drop shadow color gradient
                
                $gradient_steps = array();              // RGB array with the gradient steps
                $temp_color = array();                  // temporary RGB array
                $dropShadowGradientColors = array();    // integer array with all gradient colors from dark to bright
                
                for ($i=0; $i<=2; $i++) {
                        $gradient_steps[$i] = ($background_color[$i]-$dropShadow_color[$i])/$dropShadow_blurRadius;
                }
                
                $temp_color[0] = $dropShadow_color[0]+$gradient_steps[0]/2;
                $temp_color[1] = $dropShadow_color[1]+$gradient_steps[1]/2;
                $temp_color[2] = $dropShadow_color[2]+$gradient_steps[2]/2;
                $dropShadowGradientColors[0] = imagecolorresolve($img_dropShadow, $temp_color[0], $temp_color[1], $temp_color[2]);
                
                for ($i=1; $i<$dropShadow_blurRadius; $i++) {
                        $temp_color[0] = $temp_color[0]+$gradient_steps[0];
                        $temp_color[1] = $temp_color[1]+$gradient_steps[1];
                        $temp_color[2] = $temp_color[2]+$gradient_steps[2];
                        $dropShadowGradientColors[$i] = imagecolorresolve($img_dropShadow, $temp_color[0], $temp_color[1], $temp_color[2]);
                }
                
                // draw drop shadow
                
                imagefill($img_dropShadow, 0, 0, imagecolorresolve($img_dropShadow, $background_color[0], $background_color[1], $background_color[2]));
                imagefilledrectangle($img_dropShadow, $dropShadow_offset+1, $dropShadow_offset+1, $dropShadow_offset+$dropShadow_width-1, $dropShadow_offset+$dropShadow_height-1, imagecolorresolve($img, $dropShadow_color[0], $dropShadow_color[1], $dropShadow_color[2]));
                
                for ($i=0; $i<$dropShadow_blurRadius; $i++) {
                        // borders:  top / left / right / bottom
                        imageline($img_dropShadow, $dropShadow_offset, $dropShadow_offset-$i, $dropShadow_offset+$dropShadow_width, $dropShadow_offset-$i, $dropShadowGradientColors[$i]);
                        imageline($img_dropShadow, $dropShadow_offset-$i, $dropShadow_offset, $dropShadow_offset-$i, $dropShadow_offset+$dropShadow_height, $dropShadowGradientColors[$i]);
                        imageline($img_dropShadow, $dropShadow_offset+$dropShadow_width+$i, $dropShadow_offset, $dropShadow_offset+$dropShadow_width+$i, $dropShadow_offset+$dropShadow_height, $dropShadowGradientColors[$i]);
                        imageline($img_dropShadow, $dropShadow_offset, $dropShadow_offset+$dropShadow_height+$i, $dropShadow_offset+$dropShadow_width, $dropShadow_offset+$dropShadow_height+$i, $dropShadowGradientColors[$i]);
                        // corners: left top / right top / left bottom / right bottom
                        imagearc($img_dropShadow, $dropShadow_offset+$dropShadow_blurRadius-$i, $dropShadow_offset+$dropShadow_blurRadius-$i, 2*$dropShadow_blurRadius, 2*$dropShadow_blurRadius, 180, 270, $dropShadowGradientColors[$i]);
                        imagearc($img_dropShadow, $dropShadow_offset-$dropShadow_blurRadius+$i+$dropShadow_width, $dropShadow_offset+$dropShadow_blurRadius-$i, 2*$dropShadow_blurRadius, 2*$dropShadow_blurRadius, 270, 0, $dropShadowGradientColors[$i]);
                        imagearc($img_dropShadow, $dropShadow_offset+$dropShadow_blurRadius-$i, $dropShadow_offset-$dropShadow_blurRadius+$i+$dropShadow_height, 2*$dropShadow_blurRadius, 2*$dropShadow_blurRadius, 90,180, $dropShadowGradientColors[$i]);
                        imagearc($img_dropShadow, $dropShadow_offset-$dropShadow_blurRadius+$i+$dropShadow_width, $dropShadow_offset-$dropShadow_blurRadius+$i+$dropShadow_height, 2*$dropShadow_blurRadius, 2*$dropShadow_blurRadius, 0, 90, $dropShadowGradientColors[$i]);
                        // redraw all corners enlarged by 1 px to prevent pixel gaps
                        imagearc($img_dropShadow, $dropShadow_offset+$dropShadow_blurRadius-$i, $dropShadow_offset+$dropShadow_blurRadius-$i, 2*$dropShadow_blurRadius+1, 2*$dropShadow_blurRadius+1, 180, 270, $dropShadowGradientColors[$i]);
                        imagearc($img_dropShadow, $dropShadow_offset-$dropShadow_blurRadius+$i+$dropShadow_width, $dropShadow_offset+$dropShadow_blurRadius-$i, 2*$dropShadow_blurRadius+1, 2*$dropShadow_blurRadius+1, 270, 0, $dropShadowGradientColors[$i]);
                        imagearc($img_dropShadow, $dropShadow_offset+$dropShadow_blurRadius-$i, $dropShadow_offset-$dropShadow_blurRadius+$i+$dropShadow_height, 2*$dropShadow_blurRadius+1, 2*$dropShadow_blurRadius+1, 90,180, $dropShadowGradientColors[$i]);
                        imagearc($img_dropShadow, $dropShadow_offset-$dropShadow_blurRadius+$i+$dropShadow_width, $dropShadow_offset-$dropShadow_blurRadius+$i+$dropShadow_height, 2*$dropShadow_blurRadius+1, 2*$dropShadow_blurRadius+1, 0, 90, $dropShadowGradientColors[$i]);
                }
                
                imagecopy($img_dropShadow, $img, $image_offset_x, $image_offset_y, 0, 0, imagesx($img), imagesy($img));
                
                return $img_dropShadow;
                imagedestroy($img_dropShadow);
        }

        function create_thumbnail($image) {

                $thumbnail_size=$GLOBALS["thumbnail_size"];
                
                $image_properties=getimagesize($image);
                switch ($image_properties[2]) {
                        case 1: $thumb = imagecreatefromgif($image);break;
                        case 2: $thumb = imagecreatefromjpeg($image);break;
                        case 3: $thumb = imagecreatefrompng($image);break;
                        default: die("<br/><br/>unknown file type: $image");
                }
                
                $temp = imagecreatetruecolor($thumbnail_size, $thumbnail_size);
                imagefill($temp, 0, 0, imagecolorresolve($temp, $GLOBALS["background_color"][0], $GLOBALS["background_color"][1], $GLOBALS["background_color"][2]));
                
                if ($image_properties[0]>$image_properties[1]) {
                        $thumb = scale_image($thumb, (1/($image_properties[0]/$thumbnail_size)*0.93)); // *0.93 is an ugly hack to make image in the thumb smaller (reason: $thumbnail_size was first the size of the thumb-image, but now it is the size of the hole thumb, including dropshadow)
                        if ($GLOBALS["thumbnail_border"]) { $thumb = draw_image_border($thumb); }
                        if ($GLOBALS["thumbnail_dropShadow"]) { $thumb = draw_dropShadow($thumb, $GLOBALS["thumbnail_dropShadow_scale"], $GLOBALS["thumbnail_dropShadow_offset"], $GLOBALS["thumbnail_dropShadow_blurRadius"], $GLOBALS["background_color"], $GLOBALS["dropShadow_color"], $GLOBALS["thumbnail_offset_x"], $GLOBALS["thumbnail_offset_y"]); }
                        imagecopy($temp, $thumb, 1, $thumbnail_size/2-imagesy($thumb)/2, 0, 0, imagesx($thumb), imagesy($thumb));
                }
                else {
                        $thumb = scale_image($thumb, (1/($image_properties[1]/$thumbnail_size)*0.93)); // *0.93 is an ugly hack to make image in the thumb smaller (reason: $thumbnail_size was first the size of the thumb-image, but now it is the size of the hole thumb, including dropshadow)
                        if ($GLOBALS["thumbnail_border"]) { $thumb = draw_image_border($thumb); }
                        if ($GLOBALS["thumbnail_dropShadow"]) { $thumb = draw_dropShadow($thumb, $GLOBALS["thumbnail_dropShadow_scale"], $GLOBALS["thumbnail_dropShadow_offset"], $GLOBALS["thumbnail_dropShadow_blurRadius"], $GLOBALS["background_color"], $GLOBALS["dropShadow_color"], $GLOBALS["thumbnail_offset_x"], $GLOBALS["thumbnail_offset_y"]); }
                        imagecopy($temp, $thumb, $thumbnail_size/2-imagesx($thumb)/2, 1, 0, 0, imagesx($thumb), imagesy($thumb));
                }
                
                switch ($GLOBALS["thumbnail_filetype"]) {
                        case "png": {
                                imagepng($temp, "./.thumbs/$thumbnail_size"."_thumb_".$image.".".$GLOBALS["thumbnail_filetype"]);
                        }
                        break;
                        case "jpg": {
                                imagejpeg($temp, "./.thumbs/$thumbnail_size"."_thumb_".$image.".".$GLOBALS["thumbnail_filetype"]);
                        }
                        break;
                        default: {
                                die("<br/><br/>ERROR: unsupported target filetype for thumbnails: ".$GLOBALS["thumbnail_filetype"]);
                        }
                }
                
                imagedestroy($thumb);
                imagedestroy($temp);
                return TRUE;
        }

        function create_slideshow_item($image) {
                
                $image_properties=getimagesize($image);
                switch ($image_properties[2]) {
                        case 1: $img = imagecreatefromgif($image);break;
                        case 2: $img = imagecreatefromjpeg($image);break;
                        case 3: $img = imagecreatefrompng($image);break;
                        default: die("<br/><br/>unknown file type: $image");
                }
                
                if ($image_properties[0]>=($GLOBALS["width"]-2*$GLOBALS["image_margin"])) {
                        $img = scale_image($img, ($GLOBALS["width"]-2*$GLOBALS["image_margin"])/$image_properties[0]);
                        if ($GLOBALS["image_border"]) { $img = draw_image_border($img); }
                        if ($GLOBALS["image_dropShadow"]) { $img = draw_dropShadow($img, $GLOBALS["image_dropShadow_scale"], $GLOBALS["image_dropShadow_offset"], $GLOBALS["image_dropShadow_blurRadius"], $GLOBALS["background_color"], $GLOBALS["dropShadow_color"], $GLOBALS["image_offset_x"], $GLOBALS["image_offset_y"]); }
                }
                else {
                        if ($GLOBALS["image_border"]) { $img = draw_image_border($img); }
                        if ($GLOBALS["image_dropShadow"]) { $img = draw_dropShadow($img, $GLOBALS["image_dropShadow_scale"], $GLOBALS["image_dropShadow_offset"], $GLOBALS["image_dropShadow_blurRadius"], $GLOBALS["background_color"], $GLOBALS["dropShadow_color"], $GLOBALS["image_offset_x"], $GLOBALS["image_offset_y"]); }
                }
                
                switch ($GLOBALS["slideshow_filetype"]) {
                        case "png": {
                                imagepng($img, "./.modified/".$GLOBALS["width"]."_mod_".$image.".".$GLOBALS["slideshow_filetype"]);
                        }
                        break;
                        case "jpg": {
                                imagejpeg($img, "./.modified/".$GLOBALS["width"]."_mod_".$image.".".$GLOBALS["slideshow_filetype"]);
                        }
                        break;
                        default: {
                                die("<br/><br/>ERROR: unsupported target filetype for thumbnails: ".$GLOBALS["slideshow_filetype"]);
                        }
                }
                
                imagedestroy($img);
                return TRUE;
        }

        // main------------------------------------------------------------------------------------------------------------------------------------------------------------------------

        $gallery_name = key($galleries);
        
        // navigation------------------------------------------------------------------------------------------------
        
        echo "<div id=\"navigation\">";
        
        if ($multipleGalleries) {
                foreach ($galleries as $entry) {
                        echo "<a href=\"$SCRIPT_NAME?gallery=$entry\" title=\"show gallery ".key($galleries)."\">".key($galleries)."</a>  |  ";
                        if ($gallery==$entry) { $gallery_name = key($galleries); }
                        next($galleries);
                }
        }

        if ($view=="thumbnails")        { echo "  <a href=\"$SCRIPT_NAME?view=slideshow&gallery=$gallery\" title=\"show gallery as slide show\">Slide Show</a>"; }
        else                            { echo "  <a href=\"$SCRIPT_NAME?view=thumbnails&gallery=$gallery\" title=\"show gallery overview\">Overview</a>"; }
        
        echo "</div>";

        // generate images array------------------------------------------------------------------------------------------------

        chdir($gallery);
        $directory = dir("./"); 
        $images_array = array();
        while ($file = $directory->read()) {
                if (is_file($file) and in_array(strtolower(substr($file, -4)), array(".png", ".jpg", ".gif"))) {
                        $images_array[] = $file;
                }
        }
        $directory->close();
        reset($images_array);

        $images_count = count($images_array);
        sort($images_array);
        
        // generate all for this gallery-----------------------------------------------------------------------------------------------
        
        if ($_GET["action"]=="generate_all") {
                $count1=0;
                $count2=0;
                echo "<p>";
                foreach ($images_array as $image) {
                        if (!is_file("./.thumbs/$thumbnail_size"."_thumb_".$image.".".$thumbnail_filetype)) {
                                create_thumbnail($image);
                                echo "generated thumbnail for <i>$image</i><br/>";
                                $count1++;
                        }
                        if (!is_file("./.modified/$width"."_mod_".$image.".".$slideshow_filetype)) {
                                create_slideshow_item($image);
                                echo "generated slideshow picture for <i>$image</i><br/>";
                                $count2++;
                        }
                }
                echo "<br/><br/>generated <b>$count1</b> thumbnails and <b>$count2</b> slideshow pictures for gallery <i>$gallery_name</i></p>";
        }
        
        // generate gallery------------------------------------------------------------------------------------------------

        switch ($view) {
                case "thumbnails": {
                        
                        echo "<div id=\"statusbar\">";
                        echo "<p>$images_count myndir í <b>$gallery_name</b></p>";
                        if ($thumbnail_indexing) {
                                $images_array = array_chunk($images_array, $thumbnails_per_page);
                                $images_array = $images_array[$thumbnail_index];
                                if ($images_count>$thumbnails_per_page) {
                                        echo "<p>";
                                        if ($thumbnail_index>0) { echo "<a href=\"$SCRIPT_NAME?view=thumbnails&gallery=$gallery&thumbnail_index=".($thumbnail_index-1)."\" title=\"previous\"><< prev  </a>"; }
                                        echo ($thumbnail_index+1)."/".ceil($images_count/$thumbnails_per_page)."  ";
                                        if ($thumbnail_index<(ceil($images_count/$thumbnails_per_page)-1)) { echo "<a href=\"$SCRIPT_NAME?view=thumbnails&gallery=$gallery&thumbnail_index=".($thumbnail_index+1)."\" title=\"next\">next >></a>"; }
                                        echo "</p>";
                                }
                        }
                        echo "</div>";
                        
                        echo "<div id=\"img_area\">";
                        $i = 1;
                        $row = 0;
                        foreach ($images_array as $image) {
                                
                                if (!is_file("./.thumbs/$thumbnail_size"."_thumb_".$image.".".$thumbnail_filetype)) { create_thumbnail($image); }
                                
                                echo "<a href=\"$SCRIPT_NAME?view=slideshow&gallery=$gallery&slideshow_index=".($i-1+$row*$thumbnails_per_row+$thumbnail_index*$thumbnails_per_page)."\"><img src=\"$gallery/.thumbs/$thumbnail_size"."_thumb_".$image.".".$thumbnail_filetype."\" title=\"$image\" alt=\"thumbnail\" /></a>";
                                
                                if ($i==$thumbnails_per_row) {
                                        $i = 1;
                                        echo "<br/>";
                                        $row++;
                                }
                                else { $i++; }
                                next($images_array);
                        }
                }
                break;
                case "slideshow": {
                        
                        echo "<div id=\"statusbar\"><p>";
                        if ($slideshow_index>0) { echo "<a href=\"$SCRIPT_NAME?view=slideshow&gallery=$gallery&slideshow_index=".($slideshow_index-1)."\" title=\"previous\"><< Fyrri  </a>"; }
                        echo ($slideshow_index+1)."/$images_count  ";
                        if ($slideshow_index<($images_count-1)) { echo "<a href=\"$SCRIPT_NAME?view=slideshow&gallery=$gallery&slideshow_index=".($slideshow_index+1)."\" title=\"next\">Næsta >></a>"; }
                        echo "</p></div>";
                        
                        echo "<div id=\"img_area\">";
                        
                        if (!is_file("./.modified/$width"."_mod_".$images_array[$slideshow_index].".".$slideshow_filetype)) { create_slideshow_item($images_array[$slideshow_index]); }
                        
                        if ($link_original_image) {
                                echo "<a href=\"$gallery/".$images_array[$slideshow_index]."\"><img src=\"$gallery/.modified/$width"."_mod_".$images_array[$slideshow_index].".".$slideshow_filetype."\" title=\"".$images_array[$slideshow_index]."\" alt=\"".$images_array[$slideshow_index]."\" /></a>";
                        }
                        else {
                                echo "<img src=\"$gallery/.modified/$width"."_mod_".$images_array[$slideshow_index].".".$slideshow_filetype."\" title=\"".$images_array[$slideshow_index]."\" alt=\"".$images_array[$slideshow_index]."\" />";
                        }
                }
                break;
        }
        echo "</div>";
?>

Link to comment
https://forums.phpfreaks.com/topic/90188-gallery-script-need-small-help/
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.