Piccolo script per la creazione di archivi compressi contenenti le immagini di una sezione della galleria fotografica.
Avendo la necessità di fare scaricare tutte le immagini presenti in una cartella della galleria, ho creato questo script che può facilmente essere
integrato in ogni sezione di flatnuke.
<?php
include "forum/include/archive.php";
include "shared.php";
$source_mod = getparam("source_mod",PAR_GET,SAN_FLAT);
$nome_d = getparam("nome_d",PAR_GET,SAN_FLAT);
$nome_d = str_replace("/","-",$nome_d);
$zip=new zip_file("/" . $nome_d); //qui creiamo lo zip file vuoto
$zip->set_options(array('inmemory'=>"1",'overwrite'=>1,'recurse' => 0, 'storepaths' => 0,'prepend','level','type'=>"zip"));
$zip->add_files("sections/" . $source_mod . "/*.jp*g");
$zip->add_files("sections/" . $source_mod . "/*.png");
$zip->create_archive();
$zip->download_file();
?>
Questo script va salvato nella root di flatnuke con il nome zipgallery.php.
Le prime due righe servono ad includere il file per la gestione degli archivi e per le funzioni condivise di flatnuke.
Successivamente vengono acquisiti due parametri:
$source_mod: indica il modulo (la sezione) che ha chiamato lo script e ci servirà ad identificare la
cartella con i file da zippare $nome_d: indica il nome dell'archivio. La funzione
str_replace l'ho usata per eliminare gli / delle sottosezioni.
Viene quindi creata un'istanza della classe zip file che, in questo caso, tiene in memoria il file, senza tener conto del path in cui sono
memorizzati i file ed evita di inserire nell'archivio i file delle sottocartele.
Vengono quindi aggiuntii tramite le istruzioni add_files tutti i file con estensione jpg jpeg e png.
Infine viene prima creato l'archivio e quindi inviato all'utente per il download!
Per integrare il tutto in una qualunque Galleria
di flatnuke basta inserire nel relativo section.php il codice:
<?php
$mod = getparam("mod",PAR_GET,SAN_FLAT);
?>
<a href="zipgallery.php?source_mod=<?=$mod?>&nome_d=<?=$mod?>.zip">Scarica tutte le immagini in un archivio</a>
Che richiama lo script precedente!! E' tutto!
Pubblicato Venerdi 17 Agosto 2007 - 17:20 (letto 23072 volte) Stampa