Aggiornamento del CHANGELOG
This commit is contained in:
parent
c7f3885206
commit
89a02afff2
119
CHANGELOG.md
119
CHANGELOG.md
|
@ -16,53 +16,72 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
|
||||||
|
|
||||||
### Aggiunto (Added)
|
### Aggiunto (Added)
|
||||||
|
|
||||||
|
- Creazione di sistemi centralizzati per la gestione della funzioni principali del progetto (secondo una logica ad oggetti)
|
||||||
|
- Connessione al database (tramite PDO, con possibile ampliamento dei DMBS supportati)
|
||||||
|
- Autenticazione degli utenti
|
||||||
|
- Gestione e controllo dei permessi
|
||||||
|
- Gestione degli input degli utenti
|
||||||
|
- Personalizzazione delle impostazioni
|
||||||
|
- Traduzione e conversione dei formati (date e numeri)
|
||||||
|
- Gestione degli aggiornamenti
|
||||||
- Creazione della documentazione ufficiale per sviluppatori (disponibile nel Wiki e in `docs/`)
|
- Creazione della documentazione ufficiale per sviluppatori (disponibile nel Wiki e in `docs/`)
|
||||||
- Creazione di un sistema API ufficiale
|
- Creazione di un sistema API ufficiale
|
||||||
- Creazione di sistemi centralizzati per la gestione della connessione al database, dell'autenticazione, degli input degli utenti, dei permessi, delle impostazioni, delle traduzioni e degli aggiornamenti (secondo una logica ad oggetti)
|
- Creazione di cartelle di default per i backup (`backup/`) e i log (`logs/`)
|
||||||
- Nuova gestione delle operazioni di debugging e logging
|
- Completo supporto alla traduzione del progetto
|
||||||
- Nuovi plugins e widgets
|
- Possibilità di vedere se ci sono altri utenti che stanno visualizzando lo stesso record (opzione "Attiva notifica di presenza utenti sul record" nel modulo **Impostazioni**)
|
||||||
- Nuovi moduli _Viste_, _Utenti e permessi_, _Opzioni_, con ulteriori moduli per la gestione di tabelle secondarie (_IVA_, _Pagamenti_, ...)
|
|
||||||
- Possibilità di vedere se ci sono altri utenti che stanno visualizzando lo stesso record (opzione "Sessione avanzata" nel modulo _Opzioni_)
|
|
||||||
- Possibilità di creare nuovi elementi dei moduli all'interno del record (oltre che dalla visualizzazione generale del modulo)
|
- Possibilità di creare nuovi elementi dei moduli all'interno del record (oltre che dalla visualizzazione generale del modulo)
|
||||||
- Nuova struttura per permettere il richiamo via AJAX delle procedure per la creazione di nuovi elementi all'esterno del modulo specifico (tramite il file `add.php`)
|
- Nuova struttura per permettere il richiamo via AJAX delle procedure per la creazione di nuovi elementi all'esterno del modulo specifico (tramite il file `add.php`)
|
||||||
- Miglioramento della documentazione integrata delle funzioni PHP in `lib/functions.php`
|
- Nuovo sistema di gestione delle operazioni di debugging e logging
|
||||||
- Nuovo file `lib/init.js` per permettere una rapida inizializzazione dei componenti JS
|
- Nuovi plugins e widgets
|
||||||
- Creazione di cartelle di default per i backup (`backup/`) e i log (`logs/`)
|
- Introduzione di nuovi moduli primari e secondari
|
||||||
|
- **Viste**
|
||||||
|
- **Utenti e permessi** (convertito)
|
||||||
|
- **Impostazioni** (convertito)
|
||||||
|
- **IVA**
|
||||||
|
- **Pagamenti**
|
||||||
|
- **Porto**
|
||||||
|
- **Unità di misura**
|
||||||
|
- **Aspetto beni**
|
||||||
|
- **Causali**
|
||||||
|
- **Categorie**
|
||||||
|
- **Ritenute acconto**
|
||||||
|
- **Movimenti**
|
||||||
|
- Nuovo modulo per gestire i file `.ini` dei componenti degli impianti (**Gestione componenti**)
|
||||||
- Nuovo pulsante per resettare i filtri di ricerca (nella sezione generica dei moduli)
|
- Nuovo pulsante per resettare i filtri di ricerca (nella sezione generica dei moduli)
|
||||||
- Nuovo modulo per gestire i file `.ini` dei componenti degli impianti
|
|
||||||
- Nuova gestione generalizzata degli upload
|
- Nuova gestione generalizzata degli upload
|
||||||
|
- Nuova sistema di gestione delle operazioni _bulk_ degli upload
|
||||||
|
- Nuova documentazione integrata delle funzioni PHP in `lib/functions.php`
|
||||||
|
- Nuovo file `lib/init.js` per permettere una rapida inizializzazione dei componenti JS
|
||||||
- Nuove funzioni relative ai diversi moduli
|
- Nuove funzioni relative ai diversi moduli
|
||||||
- Possibilità di individuare i componenti dell'impianto su cui l'intervento viene effettuato
|
- Introduzione della numerazione univoca per gli impianti (**MyImpianti**)
|
||||||
- Possibilità di gestire le ritenute d'acconto
|
- Possibilità di individuare i componenti dell'impianto su cui l'intervento viene effettuato (**Interventi**)
|
||||||
- Firma degli interventi
|
- Possibilità di firmare degli interventi (**Interventi**)
|
||||||
- Selezione della tipologia di attività per ogni sessione di lavoro
|
- Possibilità di selezionare della tipologia di attività per ogni sessione di lavoro (**Interventi**)
|
||||||
- Tabella riepilogativa più completa dei costi
|
- Introduzione di una tabella riepilogativa più completa dei costi (**Interventi**)
|
||||||
- Sconto globale in _Interventi_, _Fatture_, _DDT_, _Ordini_, _Preventivi_
|
- Introduzione di sconti globali e specifici (unitari e percentuali) in **Contratti**, **DDT**, **Fatture**, **Interventi**, **Preventivi**, **Ordini**
|
||||||
|
|
||||||
### Modificato (Changed)
|
### Modificato (Changed)
|
||||||
|
|
||||||
- Gestione delle librerie e dipendenze PHP tramite _Composer_
|
- Gestione delle librerie e dipendenze PHP tramite _Composer_
|
||||||
- Gestione degli assets tramite Yarn e Gulp
|
- Gestione degli assets tramite _Yarn_ e _Gulp_
|
||||||
- Miglioramenti grafici
|
- Miglioramenti grafici
|
||||||
- Miglioramento della procedura di installazione
|
- Sostituzione di _Chosen_ con _Select2_
|
||||||
- Miglioramenti delle informazioni disponibili sul progetto e della procedura di segnalazione dei bug
|
- Gestione delle tabelle ora completamente basata su _Datatables_
|
||||||
- Impianti ora identificati tramite numerazione univoca (non più tramite matricola)
|
- Miglioramento della procedura di installazione e aggiornamento del gestionale
|
||||||
- Sostituzione di Chosen con Select2
|
|
||||||
- Miglioramento dell'interpretazione del template per la generazione degli input, ora disponibile ovunque all'interno del progetto
|
|
||||||
- Miglioramento generale sull'identificazione del modulo attualmente in uso e sull'inclusione dei file necessari per il funzionamento
|
|
||||||
- Miglioramento della gestione dei permessi
|
|
||||||
- Gestione della connessione al database tramite PDO (con possibile futuro ampliamento dei DMBS supportati)
|
|
||||||
- Gestione delle tabelle ora completamente basata su Datatables
|
|
||||||
- Ottimizzazione della schermata per aggiunta dell'intervento
|
|
||||||
- Miglioramento dei riquadri delle spese aggiuntive e degli articoli
|
|
||||||
- La prima anagrafica di tipo Azienda caricata viene impostata come Azienda predefinita
|
|
||||||
- Passaggio completo all'estensione `.php` per tutti i file dei moduli
|
|
||||||
- Miglioramento dei permessi di visione per il modulo _MyImpianti_ (ora ogni cliente vede solo i propri impianti)
|
|
||||||
- Miglioramento della procedura di aggiornamento del gestionale
|
|
||||||
- Aggiunto sistema di ripresa dell'aggiornamento (se questi è stato bloccato in una fase intermedia tra i singoli aggiornamenti)
|
- Aggiunto sistema di ripresa dell'aggiornamento (se questi è stato bloccato in una fase intermedia tra i singoli aggiornamenti)
|
||||||
- Aggiunto sistema di bloccaggio dell'aggiornamento, per evitare problemi nel caso molteplici richieste di update
|
- Aggiunto sistema di bloccaggio dell'aggiornamento, per evitare problemi nel caso molteplici richieste di update
|
||||||
- Semplificazione della procedura manuale, che ora non richiede nessuna modifica dei file VERSION da parte dell'utente (la versione dell'aggiornamento viene memorizzata nel file VERSION.new)
|
- Semplificazione della procedura manuale, che ora non richiede nessuna modifica dei file VERSION da parte dell'utente
|
||||||
- Modificata la struttura della tabella `updates`
|
- Modificata la struttura della tabella `updates`
|
||||||
|
- Passaggio completo all'estensione `.php` per tutti i file dei moduli
|
||||||
|
- Miglioramento dell'interpretazione del template per la generazione degli input, ora disponibile ovunque all'interno del progetto
|
||||||
|
- Miglioramento della gestione dei permessi
|
||||||
|
- Miglioramento delle stampe principali
|
||||||
|
- Miglioramento delle informazioni disponibili sul progetto e della procedura di segnalazione dei bug
|
||||||
|
- Miglioramento generale sull'identificazione del modulo attualmente in uso e sull'inclusione dei file necessari per il funzionamento
|
||||||
|
- La prima anagrafica di tipo Azienda caricata viene impostata come "Azienda predefinita"
|
||||||
|
- Ottimizzazione della schermata per aggiunta dell'intervento
|
||||||
|
- Miglioramento dei riquadri delle spese aggiuntive e degli articoli
|
||||||
|
- Miglioramento dei permessi di visione per il modulo **MyImpianti** (ogni cliente vede solo i propri impianti)
|
||||||
|
|
||||||
### Deprecato (Deprecated)
|
### Deprecato (Deprecated)
|
||||||
|
|
||||||
|
@ -72,30 +91,29 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
|
||||||
### Rimosso (Removed)
|
### Rimosso (Removed)
|
||||||
|
|
||||||
- Funzioni PHP non utilizzate (`lib/functions.php`)
|
- Funzioni PHP non utilizzate (`lib/functions.php`)
|
||||||
- is\_id\_ok
|
- is_id_ok
|
||||||
- write\_error
|
- write_error
|
||||||
- write\_ok
|
- write_ok
|
||||||
- getAvailableModules
|
- getAvailableModules
|
||||||
- read\_file
|
- read_file
|
||||||
- dateadd
|
- dateadd
|
||||||
- show\_info\_messages
|
- show_info_messages
|
||||||
- show\_error\_messages
|
- show_error_messages
|
||||||
- get\_module\_name
|
- get_module_name
|
||||||
- mytruncate
|
- mytruncate
|
||||||
- get\_user\_browser
|
- get_user_browser
|
||||||
- RemoveNonASCIICharacters
|
- RemoveNonASCIICharacters
|
||||||
- full\_html\_entity\_decode
|
- full_html_entity_decode
|
||||||
- data\_italiana
|
- data_italiana
|
||||||
- gestione\_sessioni
|
- gestione_sessioni
|
||||||
- get\_text\_around
|
- get_text_around
|
||||||
- coolDate
|
- coolDate
|
||||||
- get\_module\_name\_by\_id
|
- get_module_name_by_id
|
||||||
- cut\_text
|
- cut_text
|
||||||
- getLastPathSegment
|
- getLastPathSegment
|
||||||
- cut\_text
|
- cut_text
|
||||||
- Funzioni JS non utilizzate (`lib/functionsjs.php`)
|
- Funzioni JS non utilizzate (`lib/functionsjs.php`)
|
||||||
- Cartelle non più utilizzate (`lib/jscripts/`, `lib/html2pdf/`, `widgets`, `share`, ...)
|
- Cartelle e file non più utilizzati (`lib/jscripts`, `widgets`, `share`, `lib/dbo.class.php`, `lib/widgets.class.php`, ...)
|
||||||
- File non più utilizzati (`lib/dbo.class.php`, `lib/widgets.class.php`, ...)
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
@ -106,6 +124,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
|
||||||
- Aggiunta protezione contro attacchi di tipo XSS
|
- Aggiunta protezione contro attacchi di tipo XSS
|
||||||
- Aggiunta base per contrastare l'SQL Injection
|
- Aggiunta base per contrastare l'SQL Injection
|
||||||
- Aggiunta protezione (temporaneamente disabilitata) contro attacchi CSRF
|
- Aggiunta protezione (temporaneamente disabilitata) contro attacchi CSRF
|
||||||
|
- Aggiunto sistema basilare contro attacchi brute-force all'accesso
|
||||||
- Passaggio della codifica della password con algoritmo di hashing BCrypt
|
- Passaggio della codifica della password con algoritmo di hashing BCrypt
|
||||||
|
|
||||||
## 2.2 (2016-11-10)
|
## 2.2 (2016-11-10)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: OpenSTAManager\n"
|
"Project-Id-Version: OpenSTAManager\n"
|
||||||
"POT-Creation-Date: 2017-09-11 18:22+0200\n"
|
"POT-Creation-Date: 2017-09-12 10:41+0200\n"
|
||||||
"PO-Revision-Date: 2017-09-06 09:35+0200\n"
|
"PO-Revision-Date: 2017-09-06 09:35+0200\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
|
@ -1112,7 +1112,8 @@ msgstr ""
|
||||||
msgid "Carica"
|
msgid "Carica"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/functions.php:132 modules/backup/edit.php:10
|
#: lib/functions.php:132 modules/aggiornamenti/upload_modules.php:16
|
||||||
|
#: modules/backup/edit.php:10
|
||||||
msgid "Estensione zip non supportata!"
|
msgid "Estensione zip non supportata!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1387,22 +1388,18 @@ msgid "Cambiare la posizione di questo widget?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: modules/aggiornamenti/upload_modules.php:16
|
#: modules/aggiornamenti/upload_modules.php:16
|
||||||
msgid "Estensione php_zip non caricata!"
|
msgid "Verifica e attivala sul tuo file _FILE_"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: modules/aggiornamenti/upload_modules.php:16
|
#: modules/aggiornamenti/upload_modules.php:20
|
||||||
msgid "Verifica e attivala sul tuo php.ini"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: modules/aggiornamenti/upload_modules.php:18
|
|
||||||
msgid "Il file non è un archivio zip!"
|
msgid "Il file non è un archivio zip!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: modules/aggiornamenti/upload_modules.php:65
|
#: modules/aggiornamenti/upload_modules.php:63
|
||||||
msgid "File di aggiornamento non riconosciuto!"
|
msgid "File di aggiornamento non riconosciuto!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: modules/aggiornamenti/upload_modules.php:120
|
#: modules/aggiornamenti/upload_modules.php:116
|
||||||
msgid "File di installazione non valido!"
|
msgid "File di installazione non valido!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
@ -13,19 +13,21 @@ $size = $_FILES['blob']['size'];
|
||||||
$type = $_POST['type'];
|
$type = $_POST['type'];
|
||||||
|
|
||||||
if (!extension_loaded('zip')) {
|
if (!extension_loaded('zip')) {
|
||||||
$_SESSION['errors'][] = tr('Estensione php_zip non caricata!').'<br>'.tr('Verifica e attivala sul tuo php.ini');
|
$_SESSION['errors'][] = tr('Estensione zip non supportata!').'<br>'.tr('Verifica e attivala sul tuo file _FILE_', [
|
||||||
|
'_FILE_' => '<b>php.ini</b>'
|
||||||
|
]);
|
||||||
} elseif (!ends_with($filename, '.zip')) {
|
} elseif (!ends_with($filename, '.zip')) {
|
||||||
$_SESSION['errors'][] = tr('Il file non è un archivio zip!');
|
$_SESSION['errors'][] = tr('Il file non è un archivio zip!');
|
||||||
} elseif (!empty($tmp) && is_file($tmp)) {
|
} elseif (!empty($tmp) && is_file($tmp)) {
|
||||||
$zip = new ZipArchive();
|
$zip = new ZipArchive();
|
||||||
|
|
||||||
if ($zip->open($tmp)) {
|
if ($zip->open($tmp)) {
|
||||||
$tmpdir = 'tmp/';
|
$tmp_dir = $docroot.'/tmp';
|
||||||
|
|
||||||
// Controllo sulla cartella
|
// Controllo sulla cartella
|
||||||
directory($docroot.'/'.$tmpdir);
|
directory($tmp_dir);
|
||||||
|
|
||||||
$zip->extractTo($docroot.'/'.$tmpdir);
|
$zip->extractTo($tmp_dir);
|
||||||
|
|
||||||
// AGGIORNAMENTO
|
// AGGIORNAMENTO
|
||||||
if ($type == 'update') {
|
if ($type == 'update') {
|
||||||
|
@ -33,34 +35,30 @@ if (!extension_loaded('zip')) {
|
||||||
$old_config = file_get_contents($docroot.'/config.inc.php');
|
$old_config = file_get_contents($docroot.'/config.inc.php');
|
||||||
|
|
||||||
// Aggiornamento del CORE
|
// Aggiornamento del CORE
|
||||||
if (file_exists($docroot.'/'.$tmpdir.'/VERSION')) {
|
if (file_exists($tmp_dir.'/VERSION')) {
|
||||||
//rename($docroot.'/VERSION', $docroot.'/VERSION.old');
|
//rename($docroot.'/VERSION', $docroot.'/VERSION.old');
|
||||||
|
|
||||||
// Copia i file dalla cartella temporanea alla root
|
// Copia i file dalla cartella temporanea alla root
|
||||||
copyr($docroot.'/'.$tmpdir, $docroot);
|
copyr($tmp_dir, $docroot);
|
||||||
|
|
||||||
// Scollego l'utente per eventuali aggiornamenti del db
|
// Scollego l'utente per eventuali aggiornamenti del db
|
||||||
Auth::logout();
|
Auth::logout();
|
||||||
|
|
||||||
redirect($rootdir, 'php');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Aggiornamento di un MODULO
|
// Aggiornamento di un MODULO
|
||||||
elseif (file_exists($docroot.'/'.$tmpdir.'/MODULE')) {
|
elseif (file_exists($tmp_dir.'/MODULE')) {
|
||||||
$module_info = parse_ini_file($docroot.'/'.$tmpdir.'/MODULE', true);
|
$module_info = parse_ini_file($tmp_dir.'/MODULE', true);
|
||||||
$module_name = $module_info['module_name'];
|
$module_name = $module_info['module_name'];
|
||||||
$module_dir = $module_info['module_directory'];
|
$module_dir = $module_info['module_directory'];
|
||||||
|
|
||||||
// Copio i file nella cartella "modules/<nomemodulo>/"
|
// Copio i file nella cartella "modules/<nomemodulo>/"
|
||||||
copyr($docroot.'/'.$tmpdir, $docroot.'/modules/'.$module_dir.'/');
|
copyr($tmp_dir, $docroot.'/modules/'.$module_dir.'/');
|
||||||
|
|
||||||
// Rinomino il file di versione per forzare l'aggiornamento
|
// Rinomino il file di versione per forzare l'aggiornamento
|
||||||
//rename($docroot.'/VERSION_'.$module, $docroot.'/VERSION_'.$module.'.old');
|
//rename($docroot.'/VERSION_'.$module, $docroot.'/VERSION_'.$module.'.old');
|
||||||
|
|
||||||
// Scollego l'utente per eventuali aggiornamenti del db
|
// Scollego l'utente per eventuali aggiornamenti del db
|
||||||
Auth::logout();
|
Auth::logout();
|
||||||
|
|
||||||
redirect($rootdir, 'php');
|
|
||||||
} else {
|
} else {
|
||||||
$_SESSION['errors'][] = tr('File di aggiornamento non riconosciuto!');
|
$_SESSION['errors'][] = tr('File di aggiornamento non riconosciuto!');
|
||||||
}
|
}
|
||||||
|
@ -72,15 +70,15 @@ if (!extension_loaded('zip')) {
|
||||||
// NUOVO MODULO
|
// NUOVO MODULO
|
||||||
elseif ($type == 'new') {
|
elseif ($type == 'new') {
|
||||||
// Se non c'è il file MODULE non é un modulo
|
// Se non c'è il file MODULE non é un modulo
|
||||||
if (is_file($docroot.'/'.$tmpdir.'/MODULE')) {
|
if (is_file($tmp_dir.'/MODULE')) {
|
||||||
// Leggo le info dal file di configurazione del modulo
|
// Leggo le info dal file di configurazione del modulo
|
||||||
$module_info = parse_ini_file($docroot.'/'.$tmpdir.'/MODULE', true);
|
$module_info = parse_ini_file($tmp_dir.'/MODULE', true);
|
||||||
$module_name = $module_info['module_name'];
|
$module_name = $module_info['module_name'];
|
||||||
$module_version = $module_info['module_version'];
|
$module_version = $module_info['module_version'];
|
||||||
$module_dir = $module_info['module_directory'];
|
$module_dir = $module_info['module_directory'];
|
||||||
|
|
||||||
// Copio i file nella cartella "modules/<nomemodulo>/"
|
// Copio i file nella cartella "modules/<nomemodulo>/"
|
||||||
copyr($docroot.'/'.$tmpdir, $docroot.'/modules/'.$module_dir.'/');
|
copyr($tmp_dir, $docroot.'/modules/'.$module_dir.'/');
|
||||||
|
|
||||||
// Scollego l'utente per eventuali aggiornamenti del db
|
// Scollego l'utente per eventuali aggiornamenti del db
|
||||||
Auth::logout();
|
Auth::logout();
|
||||||
|
@ -111,8 +109,6 @@ if (!extension_loaded('zip')) {
|
||||||
$query = 'INSERT INTO zz_modules(`name`, `title`, `directory`, `options`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES('.prepare($module_name).', '.prepare($module_name).', '.prepare($module_dir).', '.prepare($module_info['module_options']).', '.prepare($module_info['module_icon']).', '.prepare($module_version).', '.prepare($module_info['module_compatibility']).', "100", '.prepare($module_info['module_parent']).', 0, 1)';
|
$query = 'INSERT INTO zz_modules(`name`, `title`, `directory`, `options`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES('.prepare($module_name).', '.prepare($module_name).', '.prepare($module_dir).', '.prepare($module_info['module_options']).', '.prepare($module_info['module_icon']).', '.prepare($module_version).', '.prepare($module_info['module_compatibility']).', "100", '.prepare($module_info['module_parent']).', 0, 1)';
|
||||||
$dbo->query($query);
|
$dbo->query($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
redirect($rootdir, 'php');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// File zip non contiene il file MODULE
|
// File zip non contiene il file MODULE
|
||||||
|
@ -121,7 +117,8 @@ if (!extension_loaded('zip')) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete($docroot.'/'.$tmpdir);
|
delete($tmp_dir);
|
||||||
|
redirect($rootdir);
|
||||||
} else {
|
} else {
|
||||||
$_SESSION['errors'][] = checkZip($tmp);
|
$_SESSION['errors'][] = checkZip($tmp);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue