Visualizzazione risultati 1 fino 9 di 9

Discussione: Modifica di una galleria di immagini estratti da una cartella

  1. #1
    Guest

    Smile Modifica di una galleria di immagini estratti da una cartella

    ciao.. vorrei modificare questo script
    Questo script estra i link delle foto caricate in una cartella, vorrei che gli estraesse da una pagina php contenente i link. (è una galleria)
    Codice PHP:
    <?php
    // Configurazione della galleria
    // ---------------------------------

    // percorso della cartella contenente le immagini ORIGINALI
    $path_immagini = "immaginicaricate/";
    // percorso della cartella che dovrà contenere le anteprime
    $path_anteprime = "anteprime/";

    // numero di righe e colonne della tabella che mostrerà le anteprime
    $num_righe = 2;
    $num_colonne = 2;

    // larghezza ed altezza massima delle anteprime
    $larghezza_ant = 150;
    $altezza_ant = 150;
    // ---------------------------------


    // provo ad "aprire" la cartella delle immagini originali
    $handle = @opendir($path_immagini);

    // se c'è stato un errore...
    if(!$handle)
    die (
    "Errore nell'apertura della cartella delle immagini '$path_immagini'");

    // inizializzo l'array che conterrà i nomi delle immagini
    $immagini = array();

    // memorizzo in $immagini tutti i nomi delle immagini (JPG) presenti nella cartella degli originali
    while (false !== ($file = readdir($handle)))
    {
    if (
    $file != '.' && $file != '..' && strpos($file,'.jpg'))
    {
    if(
    strpos($file,'.jpg'))
    $immagini[] = $file;
    }
    }

    // metto in ordine alfabetico le immagini
    sort($immagini);

    // calcolo il numero dell'ultima pagina
    $ultima_pagina = ceil(count($immagini) / ($num_righe * $num_colonne));

    // decido che pagina mostrare
    if(isset($_GET['pag']))
    {
    // se è nell'URL è presente un numero di pagina
    if(is_numeric($_GET['pag']) && $_GET['pag'] > 0 && $_GET['pag'] <= $ultima_pagina)
    {
    // se il numero di pagina indicato è lecito
    $pag_corrente = $_GET['pag'];
    }
    else
    {
    // nell'URL è stato messo un numero di pagina errato.
    // l'utente sta "giocando" con il nostro script !!!
    header('location: galleria.php?pag=1');
    exit;
    }
    }
    else
    {
    // se non è stato specificato nulla via URL mostro la prima pagina
    $pag_corrente = 1;
    }

    // quale sarà la prima immagine da mostrare nella pagina corrente?
    $immagine_iniziale = ($pag_corrente-1) * $num_righe * $num_colonne;

    // Costruisco dei link per accedere alla pagina precedente e successiva (se esistono!)
    $navigatore = '';
    if(
    $pag_corrente > 1)
    $navigatore .= '<a href="galleria.php?pag='.($pag_corrente-1).'">&lt;&lt; Precedente</a> ';

    if(
    $pag_corrente < $ultima_pagina)
    $navigatore .= '<a href="galleria.php?pag='.($pag_corrente+1).'">Successiva &gt;&gt;</a>';

    // adesso devo costruire la tabella che conterrà le anteprime
    $tab_immagini = '';
    // il primo cliclo FOR è per costruire le righe
    for ($i = 0; $i < $num_righe ; $i++)
    {
    // se all'inizio di una riga mi accorgo che non ci sono più immagini da visualizzare
    // allora interrompo le iterazioni
    if(!isset($immagini[($i*$num_colonne) + $immagine_iniziale]))
    break;

    // apro la riga corrente
    $tab_immagini .= '<tr>';

    // il secondo ciclo FOR serve invece a costruire le singole celle apparteneti ad una riga
    for ($j = 0; $j < $num_colonne; $j++)
    {
    // l'indice dell'immagine da mostrare nella cella corrente
    $indice = ($i*$num_colonne) + $j + $immagine_iniziale;

    // se esiste una immagine con questo indice (potrebbero essere finite!)
    if(isset($immagini[$indice]))
    {
    // controllo che esista l'anteprima per l'immagine corrente
    // in caso contrario la creo "al volo"
    if(!file_exists($path_anteprime.$immagini[$indice]))
    crea_anteprima($immagini[$indice],$larghezza_ant,$altezza_ant,$path_immagini,$path_anteprime);

    // ricavo le dimensioni dell'anteprima corrente
    list($width, $height) = getimagesize($path_anteprime.$immagini[$indice]);

    // non mi resta che creare i tag per il link, l'immagine ed i nome dell'immagine
    $cella = '<a href="'.$path_immagini.$immagini[$indice].'">';
    $cella .= '<img src="'.$path_anteprime.$immagini[$indice].'" alt="'.$immagini[$indice].'" height="'.$height.'" width="'.$width.'">';
    $cella .='</a>';
    }
    else
    {
    // sono finite le immagini! Lascio la cella vuota
    $cella = '&nbsp;';
    }

    // metto il contenuto della cella appena creata nella tabella
    $tab_immagini .= '<td class="cella_immagine" align="center" valign="middle">'. $cella . '</td>';
    }

    // chiudo la riga corrente
    $tab_immagini .= '</tr>';
    }

    // tutto il contenuto "dinamico" è stato preparato, devo solo caricare il template che si occuperà di mostrarlo
    // per proteggermi dal caricamento del template esternamente allo script definisco una costante...
    define('LOAD_TEMPLATE',1);
    include(
    'template.php');

    // fine dello script
    exit;


    // funzione per la creazione delle anteprime
    function crea_anteprima($nome_immagine,$larghezza_anteprima,$altezza_anteprima,$path_immagini,$path_anteprime)
    {
    // ricavo la dimensione dell'immagine originale
    list($larghezza_orig, $altezza_orig) = getimagesize($path_immagini.$nome_immagine);

    if (
    $larghezza_orig < $altezza_orig) {
    $larghezza_anteprima = ($altezza_anteprima / $altezza_orig) * $larghezza_orig;
    } else {
    $altezza_anteprima = ($larghezza_anteprima / $larghezza_orig) * $altezza_orig;
    }

    // creo una nuova immagine, che conterrà l'anteprima
    $image_p = imagecreatetruecolor($larghezza_anteprima, $altezza_anteprima);

    // carico l'originale
    $image = imagecreatefromjpeg($path_immagini.$nome_immagine);

    // metto nella nuova immagine la "riduzione" dell'originale
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $larghezza_anteprima, $altezza_anteprima, $larghezza_orig, $altezza_orig);

    // salvo l'anteprima
    imagejpeg($image_p, $path_anteprime.$nome_immagine);
    }
    ?>

  2. #2
    Guest

    Predefinito

    Perchè non usi Jalbum che fa tutto lui www.jalbum.net

  3. #3
    Guest

    Predefinito

    c'è gia questo script ..e poi perchè mi serve per non caricare foto nella cartella... quasi tutti gli script rilevano automaticamente le foto caricate da una cartella e si aggiornano nell' album, io vorrei che le foto fossero rilevate da un file php o html (nel file ci saranno i link delle foto che poi saranno visualizzati nell' album).
    come si puo fare??

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da bigbook Visualizza messaggio
    c'è gia questo script ..e poi perchè mi serve per non caricare foto nella cartella... quasi tutti gli script rilevano automaticamente le foto caricate da una cartella e si aggiornano nell' album, io vorrei che le foto fossero rilevate da un file php o html (nel file ci saranno i link delle foto che poi saranno visualizzati nell' album).
    come si puo fare??
    Tutti quei cicli li te li fa Jalbum in automatico, visita il sito e scegli la galleria che preferisci, poi ti modifichi i codici come vuoi.

  5. #5
    Guest

    Predefinito

    infatti... non so come fare per modificare il codice.. è per questo che ho aperto il topic

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da bigbook Visualizza messaggio
    infatti... non so come fare per modificare il codice.. è per questo che ho aperto il topic
    Ma tu usi già Jalbum?

  7. #7
    Guest

    Predefinito

    ho trovato di meglio.. poi jalbum è in formato .exe e non so come usarlo :)

  8. #8
    Guest

    Predefinito

    Citazione Originalmente inviato da bigbook Visualizza messaggio
    ho trovato di meglio.. poi jalbum è in formato .exe e non so come usarlo :)
    Che hai trovato? C'è anche la versione per Mac, io uso Mac.

  9. #9
    Guest

    Predefinito

    Si chiama Piwigo ecco il link http://it.piwigo.org/ sempra funzionare benissimo su altervista.. si puo commentare

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •