Ciao a tutti, come inserisco un effetto lightbox su questo codice.
Grazie
<?php
#######################
# #
# Fotogallery. #
# Per configurarla #
# vai nel file: #
# config_gallery.php #
# #
#######################
// Inclusione del file config_gallery.php per aquisire le variabili.
include("config_gallery.php");
// Recupero della variabile passata in get.
// il valore "index" rappresenta l'indice della fotogallery, "view" la visualizzazione della singola foto.
@$mode = $_GET['mode'];
// Definizione delle variabili in base al valore di $mode
if ($mode == "index" || empty($mode) || !isset($mode))
{
$quanto = $thumb_width;
}
elseif ($mode == "view")
{
$quanto = $photo_width;
$destination_path = $dir;
}
// Aumenta la memoria utilizzabile fino a 128mb e il timeout a 4 minuti.
// Questo ci consente di creare le miniature senza avere un errore di timeout dal server
ini_set("memory_limit", "256M");
set_time_limit(240);
// Se non esiste la cartella di destinazione delle miniature (vedi config_gallery.php) ne si forza la creazione
if (!file_exists($destination_path))
{
mkdir($destination_path , 0077);
}
// Apertura della directory in cui sono contenute le foto a dimensione originale
if ($handle = opendir($dir))
{
$i = 1; //Inizializzazione dell'indice
// Letttura delle immagini conenute nella cartella $dir
while (false !== ($file = readdir($handle)))
{
list($width, $height, $type, $attr) = @getimagesize($dir.$file);
// Se è una immagine "JPEG" continuo con la sua elaborazione
// altrimenti si passa alla foto successiva
if($type == 2)
{
// Elaborazione delle nuove dimensioni (altezza e larghezza) in proporzione.
// Ciò consente di non alterare la qualità della immagine.
if($width > $height)
{
$new_width = $quanto;
$new_height = ($quanto * $height) / $width;
$new_height = number_format($new_height, 0);
}
elseif($height > $width)
{
$new_height = $quanto;
$new_width = ($quanto * $width) / $height;
$new_width = number_format($new_width, 0);
}
elseif($height == $width)
{
$new_width = $quanto;
$new_height = $quanto;
}
//Se si sta visualizzando una singola foto e questa è già stata ridimensionata si ignora questo passaggio, altrimenti la foto viene ridimensionata.
// L'"if" controlla se la foto in questione ha già le dimensioni desiderate. Se le dimensioni non sono uguali a quelle volute, verrà ridimensionata.
if ($mode == "view")
{
if ($new_height != $height && $new_width != $width)
{
isset($compression) ? $compression = $compression : $compression = 100; // In cso non sia settata la compressione (vedi config_gallery.php) gli si assegna il valore di default
$destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");// Creazione Immagine
$srcimg=ImageCreateFromJPEG($dir.$file) or die("Problemi nell'aprire l'immagine"); //Apertura Immagine Originale
ImageCopyResampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento"); //Ridimensionamento Nuova Immagine
ImageJPEG($destimg, $destination_path.$file, $compression) or die("Problemi nel salvataggio"); //Salvataggio Nuova Immagine
}
}
//Se si sta visualizzando l'indice delle foto (contenente le miniature) e queste sono già state ridimensionate si ignora questo passaggio, altrimenti la foto viene ridimensionata.
// l'"if" controlla se esiste già una miniatura, chiamata con lo stesso nome della foto originale, presente nella cartella di destinazione. Se non esiste viene creata la minatura
elseif (empty($mode))
{
if (!file_exists($destination_path.'/'.$file)) //Se la miniatura non esiste verrà creata altrimenti si ignora questo passaggio
{
isset($compression) ? $compression = $compression : $compression = 100; // In cso non sia settata la compressione (vedi config_gallery.php) gli si assegna il valore di default
$destimg=imagecreatetruecolor($new_width,$new_height) or die("Problemi nelle creazioni dell'immagine");// Creazione Immagine
$srcimg=ImageCreateFromJPEG($dir.$file) or die("Problemi nell'aprire l'immagine"); //Apertura Immagine Originale
ImageCopyResampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg)) or die("Problemi nel ridimensionamento"); //Ridimensionamento Nuova Immagine
ImageJPEG($destimg, $destination_path.$file, $compression) or die("Problemi nel salvataggio"); //Salvataggio Nuova Immagine
}
}
$image * = $file; //Creazione dell'array contenente le immagini
$i++; //Incremento dell'indice
}
}
// Chiusura della cartella $dir
closedir($handle);
}
else
{
// Se vi è un errore nell'aprire la cartella $dir allora viene stampato a video seguente paragrafo
echo "<p align=\"center\">
Impossibile eseguire lo script.
<br />
Accertati di aver impostato correttamente i parametri e
che la cartella (nome: \"<b>$dir</b>\" ) in cui sono contenute le foto esista
</p>";
}
//Se si sta visualizzando l'indice allora utilizzo la paginazione propria dell'indice
if ($mode == "index" || empty($mode) || !isset($mode))
{
########################
# Paginazione per #
# la visualizzazione #
# dell'indice #
########################
// Se si è scelto di utilizzare la paginazione (vedi file config_gallery.php) allora vengono stampati i links.
// Altrimenti verranno visualizzate tutte le immagini nella stessa pagina.
if (empty($numperpagina))
{
$numperpagina = count($image);
}
isset($_GET['page']) ? $pageNum = $_GET['page'] : $pageNum = 1;
$inizio = ($pageNum - 1) * $numperpagina;
$fine = $inizio + $numperpagina;
$i = 1; //inizializzo l'indice
foreach ($image as $id => $nome)
{
if ($i > $fine)
{
break;
}
if ($i >= $inizio)
{ // stampa la miniatura
echo " <a class=\"example-image-link\" href=\"?id=$i&from=$pageNum&mode=view\"><img class=\"example-image\" src=\"".$destination_path.$nome."\" title=\"data-title=\"" .$nome."\" border=\"0\" alt=\"foto\" /></a>";
?>
<a class="example-image-link" href="?id=<?php echo $i; ?>&from=<?php echo$pageNum; ?>&mode=view" data-lightbox="example-1"><img class="example-image" src="<?php echo "" .$destination_path.$nome . "" ; ?>\ alt="image-1" /></a>
<a class="example-image-link" href="img/demopage/image-6.jpg" data-lightbox="example-set" data-title="Click anywhere outside the image or the X to the right to close."><img class="example-image" src="img/demopage/thumb-6.jpg" alt="" /></a>
<?php
}
$i++; // incremento dell'indice
}
if ($fine > count($image))
{
$fine = count($image);
}
// Conto delle pagine
$maxPage = ceil(count($image)/$numperpagina);
// Creazione link per accedere ad ogni pagina
$self = $_SERVER['PHP_SELF'];
$nav = '';
for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nav .= " $page ";
}
else
{
$nav .= " <a href=\"?page=$page\" title=\"Pagina $page di $maxPage\">$page</a> ";
}
}
// Creazione links Previous e Next
// e quelli First page e Last page
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"?page=$page\" title=\"Pagina $page di $maxPage\"><< precedente</a> ";
}
else
{
$prev = ''; // se siamo nella 1° pag non mostriamo Prev
}
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"?page=$page\" title=\"Pagina $page di $maxPage\" >successivo >></a> ";
}
else
{
$next = ''; // siamo nell' ultima pag, nn mostriamo Next
}
// mostra i links di navigazione
echo "<br />Pagine: ", $prev . $nav . $next ;
//print_r($image);
}
//Se si sta visualizzando a singola foto allora utilizzo la paginazione per visualizzare i link "precedente", "torna indietro" e "successiva"
elseif ($mode == "view")
{
########################
# Paginazione per #
# la visualizzazione #
# della singola foto #
########################
//Aquiusizione dell'id della foto. Default: 1
isset($_GET['id']) ? $id = $_GET['id'] : $id = 1 ;
//Stampa a video della foto
echo "<img src=\"".$dir.$image[$id]."\" title=\"\" alt=\"".$image[$id]."\" />";
echo "<br />".$image[$id];
//Categoria da cui si proviene
if (isset($_GET['from']))
{
$from = $_GET['from'];
}
else $from = 1;
//Link Foto Precedente
if ($id == 1)
{
$precedente = ""; //Se siamo nella prima pagina non mostriamo il link alla foto precedente
}
else
{
$prev = $id - 1;
$precedente = "<a href=\"?id=$prev&from=$from&mode=view \"><< Foto precedente</a>";
}
// Link Foto Successiva
if ($id == count($image))
{
$successiva = ""; //Se siamo nella ultima pagina non mostriamo il link alla foto successiva
}
else
{
$next = $id + 1;
$successiva = "<a href=\"?id=$next&from=$from&mode=view \">Foto successiva >></a>";
}
//Stampa paginazione
echo "<br /><br />".$precedente." <a href=\"?page=$from\">Indice foto</a> ".$successiva;
}
?>