Generator albumu zdjęć (album generator) [PHP]


Bardzo prosty generator albumu zdjęć. Stworzenie albumu ogranicza się do wrzucenia zdjęć i dodania odnośnika. (very simple!)

Instalacja skryptu to tylko załadowanie na serwer folderu z pobranej PACZKI.
Użytkownik widzi coś takiego.
FAQ:
Stworzenie albumu
Mając folder ze zdjęciami które mają stanowić album, kopiujemy tenże folder do "albumy". Kopiujemy nazwę samego folderu i tworzymy odnośnik "http://www.example.pl/webalbum/index.php?aa=NAZWA FOLDERU". W razie wystąpienia błędów na stronie należy się upewnić czy mamy prawa do odczytu zdjęć.



Poniżej przedstawiam kod skryptu:

<?php

$wiersz 
5// Ilość wierszy
$kolumna 4// Ilość kolumn
$szerokosc 120// Szerokość pojedynczej miniatury - jest używana przy skalowaniu zdjęć poziomych
$wysokosc 100// Wysokość pojedynczej miniatury - jest używana przy skalowaniu zdjęć pionowych


$szerokosc_max $szerokosc*5// Szerokość zdjęcia w trybie oglądania (dotyczy zdjęć poziomych)
$wysokosc_max 500// Wysokość zdjęcia w trybie oglądania (dotyczy zdjęć pionowych)


$action $_GET[a]; // jak tryb ("img" oglądanie, każdy inny tablica zdjęć)
$picture $_GET[n]; // nazwa zdjęcia potrzebna w trybie oglądania
$album $_GET[aa]; // nazwa albumu którym operujemy
$strona $_GET[ap]; // numer strony

if($strona==""$pstrona 0; else
{
    if(
$strona>0$pstrona $wiersz*$kolumna*($strona-1);
}
// obliczanie przesunięcia wyświetlanych zdjęć w zależności od strony i jej pojemności


print "
<!-- 

        ### Generator albumu zdjęć ###


autor: Kacper Placha
licencja: Uznanie autorstwa (CC)

-->
<META http-equiv='content-language' content='pl'>
<META http-equiv='content-type' content='text/html; charset=UTF-8'>
<link rel='stylesheet' href='style.css'>

<div id='c_album'>
<center>
"
;

    if(
$album<>"" && file_exists("albumy/".$album)) // tworzenie tablicy na podstawie folderu ze zdjęciami
    
{
        
$i 0;
        
$folder dir("albumy/".$album);
        while(
false !== ($file $folder->read())) if($file != '.' && $file != '..')
        {
            
$file_list[$i] = $file;
            
$i++;
        }
        
$folder->close();
        
// Sortowanie alfabetycznie
        
if(count($file_list)>0// jeśli folder będzie pusty tablica $file_list również i wykonanie poniższych komend wyrzuci błąd
        
{
            
$array_lowercase array_map('strtolower'$file_list); //tworzenie tablicy z nazwami plików, zamieniając wszystkie litery na małe
            
array_multisort($array_lowercaseSORT_ASCSORT_STRING$file_list); //prawidłowe sortowanie
        
}
    }
    
//print_r($file_list);

if($action<>"img")
// wyświetlanie tablicy zdjęć i generowanie miniaturek
    
print "<table class='album' border='0'>";
    
$img_zlisty 0;
    for(
$y=0$y<$wiersz$y++)
    {
        print 
"<tr>";
        for(
$x=0$x<$kolumna$x++)
        {
            print 
"<td width='120px' height='100px' align='center'>";
            if(
$file_list[$img_zlisty+$pstrona]<>"")
            {
                if(!
file_exists("mini/".$album)) // czy mamy gdzie zapisywać miniaturki
                
{
                    
mkdir("mini/".$album0777); // stworzenie i nadanie praw do folderu na miniaturki
                
}
                if(!
file_exists("mini/".$album."/".$file_list[$img_zlisty+$pstrona]))
                {
                    
// The file
                    
$filename "albumy/".$album."/".$file_list[$img_zlisty+$pstrona];
                    list(
$width$height) = getimagesize($filename);
                    if(
$width<$height)
                    { 
// pionowe
                        
$new_height $wysokosc;
                        
$new_width = ($width*$new_height)/$height;
                    }
                    else
                    { 
// poziome
                        
$new_width $szerokosc;
                        
$new_height = ($height*$new_width)/$width;
                    }
                    
$image_p imagecreatetruecolor($new_width$new_height);
                    
$image imagecreatefromjpeg($filename);
                    
imagecopyresampled($image_p$image0000$new_width$new_height$width$height);
                    
imagejpeg($image_p"mini/".$album."/".$file_list[$img_zlisty+$pstrona], 100);
                }
                print 
"<a href='?a=img&aa=".$album."&n=".$file_list[$img_zlisty+$pstrona]."'><img src='mini/".$album."/".$file_list[$img_zlisty+$pstrona]."'></a>";
            } else print 
"<img src='none.png'>";

        
$img_zlisty++;
        print 
"</td>";
        }
        print 
"</tr>";
    }
    
    
// Nawigacja między stronami
    
if(count($file_list)>$wiersz*$kolumna)
    {
        print 
"<tr><td colspan='".$kolumna."' style='border: none; font-size: 12px;' align='center'>Strona: ";
        
$ile_stron count($file_list)/($wiersz*$kolumna);
        if(
floor($ile_stron)<>$ile_stron$ile_stron floor($ile_stron)+1;
        for(
$i=1$i<$ile_stron+1$i++) 
        {
            if(
$strona==$i or ($strona=="" && $i==1))
            {
                print 
"<a href='#' class='page_no'>".$i."</a> ";
            }
            else
            {
                print 
"<a href='?aa=".$album."&ap=".$i."' class='page_yes'>".$i."</a> ";
            }
        }
        print 
"</td></tr>";
    }
    print 
"</table>";

}
else
{
/// PRZEGLĄDANIE ZDJĘĆ


    
list($width$height) = getimagesize("albumy/".$album."/".$picture);
                    if(
$width<$height)
                    { 
// pionowe
                        
$new_height $wysokosc_max;
                        
$new_width = ($width*$new_height)/$height;
                    }
                    else
                    { 
// poziome
                        
$new_width $szerokosc_max;
                        
$new_height = ($height*$new_width)/$width;

                    }
    print 
"<img src='albumy/".$album."/".$picture."' width='".$new_width."px' height='".$new_height."px'>";
    print 
"<table class='album' border='0'><tr>";
    
$key array_search($picture$file_list);
    for(
$i=-2$i<3$i++)
    {
        if(
$file_list[$key+$i]<>"")
        {
            print 
"<td width='120px' height='100px' align='center'>
            <a href='?a=img&aa="
.$album."&n=".$file_list[$key+$i]."'>
            <img src='mini/"
.$album."/".$file_list[$key+$i]."'></a></td>";
        }
        else
        {
            print 
"<td width='120px' height='100px' align='center'><img src='none.png'></td>";
        }
    }

    print 
"</tr>";

if(
$file_list[$key-1]<>"")
{
print 
"<tr><td style='border: none;' align='center'><a href='?a=img&aa=".$album."&n=".$file_list[$key-1]."' class='page_yes'>&lt;&lt;&lt; Poprzednie</a></td>";
}
else
{
print 
"<tr><td style='border: none;' align='center'><a href='#' class='page_no'>&lt;&lt;&lt; Poprzednie</a></td>";
}

print 
"<td colspan='3' style='border: none;' align='center'><a href='?aa=".$album."' class='page_yes'>Przegląd zdjęć</a></td>";

if(
$file_list[$key+1]<>"")
{
print 
"<td style='border: none;' align='center'><a href='?a=img&aa=".$album."&n=".$file_list[$key+1]."' class='page_yes'>Następne &gt;&gt;&gt;</a></td></tr>";
}
else
{
print 
"<td style='border: none;' align='center'><a href='#' class='page_no'>Następne &gt;&gt;&gt;</a></td></tr>";
}

print 
"</table>";

}

print 
"</center></div>";

?>


Pozdrawiam.

Komentarze:

Jeszcze nikt nie skomentował tego dzieła. Bądź pierwszy!

Dodaj komentarz:
Nick
E-mail (nie będzie publikowany)
Twoja strona, blog (bez "http://")

Przepisz kod z obrazka

Powrót do listy publikacji.
Polot.Info | Wirtualny Przyjaciel
(CC) Kacper Placha