139 lines
4.1 KiB
PHP
139 lines
4.1 KiB
PHP
|
<?php
|
||
|
if( $docroot == '' || !get_var("Attiva aggiornamenti") ){
|
||
|
die( _("Accesso negato!") );
|
||
|
}
|
||
|
|
||
|
$tmp = $_FILES['blob']['tmp_name'];
|
||
|
$filename = $_FILES['blob']['name'];
|
||
|
$filetype = $_FILES['blob']['type'];
|
||
|
$size = $_FILES['blob']['size'];
|
||
|
$type = $_POST['type'];
|
||
|
|
||
|
|
||
|
deltree($docroot."/modules/modulo_agg");
|
||
|
deltree($docroot."/modules/mod_agg");
|
||
|
|
||
|
if( $tmp != '' ){
|
||
|
if( extension_loaded("zip") ){
|
||
|
$zip = new ZipArchive();
|
||
|
|
||
|
if( is_file($tmp) ){
|
||
|
if( strstr( $filename, ".zip" ) ){
|
||
|
if( $zip->open( $tmp ) ){
|
||
|
$tmpdir = "tmp_aggiorna/";
|
||
|
if( !file_exists($docroot."/".$tmpdir) )
|
||
|
mkdir( $docroot."/".$tmpdir, 0755, true );
|
||
|
$zip -> extractTo( $docroot."/".$tmpdir );
|
||
|
|
||
|
/*
|
||
|
AGGIORNAMENTO
|
||
|
*/
|
||
|
if( $type=="update" ){
|
||
|
//Salvo i file di configurazione e versione attuale
|
||
|
$old_config = file_get_contents( $docroot."/config.inc.php" );
|
||
|
|
||
|
//Aggiornamento del CORE
|
||
|
if( file_exists($docroot."/".$tmpdir."/VERSION") ){
|
||
|
rename( $docroot."/VERSION", $docroot."/VERSION.old" );
|
||
|
|
||
|
//Copia i file dalla cartella temporanea alla root
|
||
|
copyr( $docroot."/".$tmpdir, $docroot,'' );
|
||
|
|
||
|
//Scollego l'utente per eventuali aggiornamenti del db
|
||
|
unset( $_SESSION['idutente'] );
|
||
|
redirect( $rootdir, "php" );
|
||
|
}
|
||
|
|
||
|
|
||
|
//Ripristino il file di configurazione dell'utente
|
||
|
file_put_contents( $docroot."/config.inc.php", $old_config );
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
NUOVO / Aggiorna MODULO
|
||
|
*/
|
||
|
else if( $type=="new" ){
|
||
|
//Se non c'è il file MODULE non é un modulo
|
||
|
|
||
|
|
||
|
if( is_file($docroot."/".$tmpdir."/MODULE") ){
|
||
|
//Leggo le info dal file di configurazione del modulo
|
||
|
$module_info = parse_ini_file( $docroot."/".$tmpdir."/MODULE", true );
|
||
|
$module_name = $module_info['module_name'];
|
||
|
$module_version = $module_info['module_version'];
|
||
|
$module_dir = $module_info['module_dir'];
|
||
|
|
||
|
//Copio i file nella cartella "modules/<nomemodulo>/"
|
||
|
copyr( $docroot."/".$tmpdir, $docroot."/modules/".$module_dir."/" ,'');
|
||
|
|
||
|
|
||
|
//Copio le cartelle modules
|
||
|
copyr( $docroot."/".$tmpdir."/modules", $docroot."/modules/" ,'');
|
||
|
copyr( $docroot."/".$tmpdir."/templates", $docroot."/templates/" ,'');
|
||
|
|
||
|
|
||
|
//Scollego l'utente per eventuali aggiornamenti del db
|
||
|
unset( $_SESSION['idutente'] );
|
||
|
unset( $_SESSION['username'] );
|
||
|
unset( $_SESSION['is_admin'] );
|
||
|
|
||
|
//Sposto il file di versione nella root per forzare l'aggiornamento del db
|
||
|
file_put_contents( $docroot."/VERSION_".$module_dir, $module_version );
|
||
|
|
||
|
//Sposto i file della cartella "share/" nella root
|
||
|
$share_dir = $docroot."/modules/".$module_dir."/share/";
|
||
|
if( is_dir($share_dir) ){
|
||
|
@copyr( $share_dir, $docroot."/share" ,'');
|
||
|
@deltree( $share_dir );
|
||
|
}
|
||
|
|
||
|
|
||
|
//Sposto i file della cartella "lib/" nella root
|
||
|
$lib_dir = $docroot."/modules/".$module_dir."/lib/";
|
||
|
if( is_dir($lib_dir) ){
|
||
|
@copyr( $lib_dir, $docroot."/lib" ,'');
|
||
|
@deltree( $lib_dir );
|
||
|
}
|
||
|
|
||
|
//Sposto i file della cartella "files/" nella root
|
||
|
$files_dir = $docroot."/modules/".$module_dir."/files/";
|
||
|
if( is_dir($files_dir) ){
|
||
|
@copyr( $files_dir, $docroot."/files",'' );
|
||
|
@deltree( $files_dir );
|
||
|
}
|
||
|
|
||
|
|
||
|
redirect( $rootdir, "php" );
|
||
|
}
|
||
|
|
||
|
//File zip non contiene il file MODULE
|
||
|
else{
|
||
|
array_push( $_SESSION['errors'], "File di installazione non valido!" );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
deltree($docroot."/".$tmpdir);
|
||
|
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
array_push( $_SESSION['errors'], checkZip($tmp) );
|
||
|
}
|
||
|
|
||
|
$zip->close();
|
||
|
}
|
||
|
|
||
|
else{
|
||
|
array_push( $_SESSION['errors'], "Il file non é un archivio zip!" );
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//Estensione php_zip non caricata
|
||
|
else{
|
||
|
array_push( $_SESSION['errors'], "Estensione php_zip non caricata!<br>Verifica e attivala sul tuo php.ini" );
|
||
|
}
|
||
|
}
|
||
|
?>
|
||
|
|