<?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 &eacute; 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" );
		}
	}
?>

