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_lowercase, SORT_ASC, SORT_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/".$album, 0777); // 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, $image, 0, 0, 0, 0, $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'><<< Poprzednie</a></td>";
}
else
{
print "<tr><td style='border: none;' align='center'><a href='#' class='page_no'><<< 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 >>></a></td></tr>";
}
else
{
print "<td style='border: none;' align='center'><a href='#' class='page_no'>Następne >>></a></td></tr>";
}
print "</table>";
}
print "</center></div>";
?>
Pozdrawiam.
Komentarze:
Jeszcze nikt nie skomentował tego dzieła. Bądź pierwszy!Dodaj komentarz:
Powrót do listy publikacji.