581 lines
24 KiB
PHP
581 lines
24 KiB
PHP
|
<?php
|
||
|
$skip_permissions = true;
|
||
|
include_once(__DIR__."/../core.php");
|
||
|
|
||
|
$action = filter('action');
|
||
|
|
||
|
// Se ci sono in corso operazioni sulla pagina index.php e non su questa pagina, ritorno a index
|
||
|
if (isset($op) && !isset($action)) return;
|
||
|
|
||
|
// Creazione file di configurazione
|
||
|
if ($action == "updateconfig" && filter('db_host') != null && filter('db_name') != null) {
|
||
|
$db_engine = "mysql";
|
||
|
$db_host = filter('db_host');
|
||
|
$db_name = filter('db_name');
|
||
|
$db_username = filter('db_username');
|
||
|
$db_password = filter('db_password');
|
||
|
|
||
|
$_SESSION['osm_password'] = filter('osm_password');
|
||
|
$_SESSION['osm_email'] = filter('osm_email');
|
||
|
|
||
|
$new_config = '<?php
|
||
|
$theme = "default";
|
||
|
|
||
|
//Esempio: $backup_dir = "' . $docroot . '/backup/";
|
||
|
$backup_dir = "' . $docroot . '/backup/";
|
||
|
|
||
|
$db_engine = "' . $db_engine . '";
|
||
|
$db_host = "' . $db_host . '";
|
||
|
$db_username = "' . $db_username . '";
|
||
|
$db_password = "' . $db_password . '";
|
||
|
$db_name = "' . $db_name . '";
|
||
|
?>';
|
||
|
|
||
|
// Se riesco a scrivere il file di configurazione e a connettermi al db avvio la procedura di aggiornamento db
|
||
|
if (file_put_contents("config.inc.php", $new_config)) {
|
||
|
$dbo = new Dbo();
|
||
|
$dbo_state = $dbo->connect();
|
||
|
|
||
|
// Se non ci si collega al db mostro l'errore...
|
||
|
if ($dbo_state != true) {
|
||
|
echo '
|
||
|
<div class="box box-center box-danger box-solid text-center">
|
||
|
<div class="box-header with-border">
|
||
|
<h3 class="box-title">' . _("Impossibile connettersi al database") . '</h3>
|
||
|
</div>
|
||
|
<div class="box-body">
|
||
|
<p>' . _("Si è verificato un'errore durante la connessione al database.") . '</p>
|
||
|
<p>' . _("Controllare di aver inserito correttamente i dati di accesso, e che il database atto ad ospitare i dati del gestionale sia esistente.") . '</p>
|
||
|
<a class="btn btn-info" href="' . $rootdir . '/index.php"><i class="fa fa-repeat"></i> ' . _("Riprova") . '</a>
|
||
|
</div>
|
||
|
</div>';
|
||
|
unlink("config.inc.php");
|
||
|
}
|
||
|
else
|
||
|
redirect("index.php");
|
||
|
}
|
||
|
// Se il file config non è scrivibile mostro un errore
|
||
|
else {
|
||
|
echo '
|
||
|
<div class="box box-center box-danger box-solid text-center">
|
||
|
<div class="box-header with-border">
|
||
|
<h3 class="box-title">' . _("Permessi di scrittura mancanti") . '</h3>
|
||
|
</div>
|
||
|
<div class="box-body">
|
||
|
<p>' . _("Sembra che non ci siano i permessi di scrittura sul file <b>config.inc.php</b>") . '</p>
|
||
|
<form action="' . $rootdir . '/index.php?action=updateconfig&firstuse=true" method="post">
|
||
|
<div class="hide">
|
||
|
<input type="hidden" name="db_name" value="' . $db_name . '">
|
||
|
<input type="hidden" name="db_password" value="' . $db_password . '">
|
||
|
<input type="hidden" name="db_username" value="' . $db_username . '">;
|
||
|
<input type="hidden" name="db_host" value="' . $db_host . '">
|
||
|
</div>
|
||
|
<a class="btn btn-warning" href="' . $rootdir . '/index.php"><i class="fa fa-arrow-left"></i> ' . _("Torna indietro") . '</a>
|
||
|
<button class="btn btn-info"><i class="fa fa-repeat"></i> ' . _("Riprova") . '</button>
|
||
|
</form>
|
||
|
<hr>
|
||
|
<div class="box box-default collapsed-box">
|
||
|
<div class="box-header with-border">
|
||
|
<h4 class="box-title"><a class="clickable" data-widget="collapse">' . _("Creazione manuale...") . '</a></h4>
|
||
|
<div class="box-tools pull-right">
|
||
|
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="box-body">
|
||
|
<p>' . _("Inserire il seguente testo nel file <b>config.inc.php</b>") . '</p>
|
||
|
<pre class="text-left">' . htmlentities($new_config) . '</pre>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>';
|
||
|
}
|
||
|
}
|
||
|
else if (! file_exists("config.inc.php") || (! isset($db_name) || ! isset($db_username) || ! isset($db_password) || ! isset($db_engine))) {
|
||
|
if (file_exists("config.inc.php")) {
|
||
|
echo '
|
||
|
<div class="box box-center box-danger box-solid text-center">
|
||
|
<div class="box-header with-border">
|
||
|
<h3 class="box-title">' . _("Parametri non sufficienti!") . '</h3>
|
||
|
</div>
|
||
|
<div class="box-body">
|
||
|
<p>' . _("L'avvio del software è fallito a causa dell'assenza di alcuni paramentri nella configurazione di base.") . '</p>
|
||
|
<p>' . _("Si prega di controllare che il file <b>config.inc.php</b> contenga tutti i dati inseriti durante la configurazione iniziale (con l'eccezione di password e indirizzo email amministrativi).") . '</p>
|
||
|
<p>' . _("Nel caso il problema persista, rivolgersi all'assistenza ufficiale.") . '</p>
|
||
|
<a class="btn btn-info" href="' . $rootdir . '/index.php"><i class="fa fa-repeat"></i> ' . _("Riprova") . '</a>
|
||
|
</div>
|
||
|
</div>';
|
||
|
}
|
||
|
?>
|
||
|
<!-- controlli per essere sicuro che l'utente abbia letto la licenza -->
|
||
|
<script>
|
||
|
$(document).ready( function(){
|
||
|
/*
|
||
|
$('#licenza').scroll(function () {
|
||
|
if ( $(this).scrollTop() >= $(this)[0].scrollHeight - 300) {
|
||
|
$('#agree').removeAttr('disabled');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
$('#link-licenza').click(function () {
|
||
|
$('#agree').removeAttr('disabled');
|
||
|
});
|
||
|
*/
|
||
|
|
||
|
$('.login-box').hide();
|
||
|
|
||
|
$("#installazione").steps({
|
||
|
headerTag: "h3",
|
||
|
bodyTag: "section",
|
||
|
transitionEffect: "slideLeft",
|
||
|
//stepsOrientation: "vertical",
|
||
|
|
||
|
/* Behaviour */
|
||
|
autoFocus: false,
|
||
|
enableAllSteps: false,
|
||
|
enableKeyNavigation: true,
|
||
|
enablePagination: true,
|
||
|
suppressPaginationOnFocus: true,
|
||
|
enableContentCache: true,
|
||
|
enableCancelButton: false,
|
||
|
enableFinishButton: true,
|
||
|
preloadContent: true,
|
||
|
showFinishButtonAlways: false,
|
||
|
forceMoveForward: false,
|
||
|
saveState: false,
|
||
|
startIndex: 0,
|
||
|
|
||
|
/* Transition Effects */
|
||
|
transitionEffect: $.fn.steps.transitionEffect.none,
|
||
|
transitionEffectSpeed: 400,
|
||
|
|
||
|
/* Events */
|
||
|
onStepChanging: function (event, currentIndex, newIndex) {
|
||
|
if (newIndex==1){
|
||
|
if( !$('#agree').is(':checked') ){
|
||
|
alert("<?php echo _("Prima di proseguire devi leggere e accettare la licenza.") ?>");
|
||
|
$( "#agree" ).focus();
|
||
|
return false;
|
||
|
}else{
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
return true;
|
||
|
},
|
||
|
onStepChanged: function (event, currentIndex, priorIndex) {
|
||
|
if (currentIndex==1) $('#config_form').parsley();
|
||
|
},
|
||
|
onCanceled: function (event) { },
|
||
|
onFinishing: function (event, currentIndex) { $('#config_form').submit(); },
|
||
|
onFinished: function (event, currentIndex) { },
|
||
|
|
||
|
/* Labels */
|
||
|
labels: {
|
||
|
cancel: "<?php echo _("Ricomincia") ?>",
|
||
|
current: "<?php echo _("step corrente:") ?>",
|
||
|
pagination: "<?php echo _("Paginazione") ?>",
|
||
|
finish: "<?php echo _("Installa") ?>",
|
||
|
next: "<?php echo _("Successivo") ?>",
|
||
|
previous: "<?php echo _("Precedente") ?>",
|
||
|
loading: "<?php echo _("Caricamento...") ?>"
|
||
|
}
|
||
|
});
|
||
|
|
||
|
});
|
||
|
</script>
|
||
|
<?php
|
||
|
echo '
|
||
|
<div class="box box-center-large">
|
||
|
<div class="box-header with-border text-center">
|
||
|
<img src="' . $img . '/logo.png" alt="'._("GEST366 Logo").'">
|
||
|
</div>
|
||
|
|
||
|
<div class="box-body" id="installazione">
|
||
|
<a name="top"></a>';
|
||
|
|
||
|
// LICENZA
|
||
|
echo '
|
||
|
<h3>' . _("Licenza") . '</h3>
|
||
|
<section>
|
||
|
<textarea id="licenza" class="form-control" readonly="true" rows="15">'.file_get_contents("LICENSE") .'</textarea><br>
|
||
|
<a class="pull-left" id="link-licenza" href="http://katolaz.homeunix.net/gplv3/gplv3-'.$lang .'-final.html" target="_blank">[ '._("Versione italiana") .' ]</a><br><br>
|
||
|
|
||
|
<div class="row">
|
||
|
<div class="col-md-8">
|
||
|
<span class="pull-left" title="' ._("Leggi e accetta la licenza per proseguire") . '">'._("Per proseguire, leggi e accetta la licenza") .'*</span>
|
||
|
</div>
|
||
|
|
||
|
<div class="col-md-4">
|
||
|
<input type="checkbox" id="agree" name="agree">
|
||
|
<label for="agree">'._("Ho letto e accettato") .'</label>
|
||
|
</div>
|
||
|
</div>
|
||
|
</section>';
|
||
|
|
||
|
// PARAMETRI
|
||
|
echo '
|
||
|
<h3>' ._("Configurazione") . '</h3>
|
||
|
<section>
|
||
|
|
||
|
<big>' ._("Non hai ancora configurato GEST366") . '.</big><br>
|
||
|
<small class="help-block">' ._("Configura correttamente il software con i seguenti parametri (modificabili successivamente dal file <b>config.inc.php</b>)") . '</small><br>';
|
||
|
|
||
|
// Form dei parametri
|
||
|
echo '
|
||
|
<form action="index.php?action=updateconfig&firstuse=true" method="post" id="config_form" class="col-md-12">
|
||
|
<div class="row">';
|
||
|
|
||
|
// db_host
|
||
|
echo '
|
||
|
<div class="col-md-12">
|
||
|
' ._("Database host") . '*:<br>
|
||
|
<input type="text" class="form-control" title="' ._("Digita l'indirizzo host del database su cui installare GEST366") . '" required placeholder="Indirizzo database host..." name="db_host" id="db_host" value="' .$db_host . '">
|
||
|
<span class="help-block pull-left"><small>' ._("Es:") . ' <i>localhost</i></small></span><br><br>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div class="row">';
|
||
|
|
||
|
// db_username
|
||
|
echo '
|
||
|
<div class="col-md-4">
|
||
|
' ._("Database username") . '*:<br>
|
||
|
<input type="text" class="form-control" title="' ._("Digita il nome utente per connettersi al database MySQL") . '" required placeholder="Nome utente MySQL..." name="db_username" id="db_username" value="' .$db_username . '">
|
||
|
<span class="help-block pull-left"><small>' ._("Es:") . ' <i>root</i></small></span><br><br>
|
||
|
</div>';
|
||
|
|
||
|
// db_password
|
||
|
echo '
|
||
|
<div class="col-md-4">
|
||
|
' ._("Database password") . ':<br>
|
||
|
<input type="password" class="form-control" title="' ._("Digita la password per connettersi al database MySQL") . '" placeholder="Password utente MySQL..." name="db_password" value="' .$db_password . '">
|
||
|
<span class="help-block pull-left"><small>' ._("Es:") . ' <i>mysql</i></small></span><br><br>
|
||
|
</div>';
|
||
|
|
||
|
// db_name
|
||
|
echo '
|
||
|
<div class="col-md-4">
|
||
|
' ._("Nome database") . '*:<br>
|
||
|
<input type="text" class="form-control" title="' ._("Digita il nome del tuo database su cui installare GEST366") . '" required placeholder="Nome database..." name="db_name" id="db_name" value="' .$db_name . '">
|
||
|
<span class="help-block pull-left"><small>' ._("Es:") . ' <i>gest366</i></small></span><br><br>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
<div class="row">';
|
||
|
|
||
|
// Password utente admin
|
||
|
echo '
|
||
|
<div class="col-md-6">
|
||
|
<b>' ._("Password dell'amministratore") . ':</b>
|
||
|
<input type="password" class="form-control" title="' ._("Digita una password per accedere a GEST366 dopo l'installazione") . '" name="osm_password" placeholder="Scegli una password per accedere a GEST366..." value="' .$_SESSION["osm_password"] . '">
|
||
|
<span class="help-block pull-left"><small>' ._("Valore di default") .': <i>admin<i></small></span><br><br>
|
||
|
</div>';
|
||
|
|
||
|
// Email utente admin
|
||
|
echo '
|
||
|
<div class="col-md-6">
|
||
|
<b>' ._("Email dell'utente principale") . ':</b>
|
||
|
<input type="text" class="form-control" name="osm_email" title="' ._("Digita il tuo indirizzo email") . '" placeholder="Digita il tuo indirizzo email..." value="' .$_SESSION["osm_email"] . '">
|
||
|
</div>
|
||
|
</div>';
|
||
|
|
||
|
/*
|
||
|
* <div class="row">
|
||
|
* <div class="col-md-12">
|
||
|
* <span class="pull-right" >*<small><small>"._("Campi obbligatori")."</small></small></span><br><br>
|
||
|
* <button id="salva" type="button" class="btn btn-primary col-md-3 pull-right" ><i class="fa fa-check"></i> "._("Salva e continua")."</button><br><br><br>
|
||
|
* </div>
|
||
|
* </div>
|
||
|
*/
|
||
|
echo '
|
||
|
|
||
|
</form>
|
||
|
</section>
|
||
|
|
||
|
</div>
|
||
|
</div>';
|
||
|
}
|
||
|
else {
|
||
|
$is_db_installed = 'no';
|
||
|
$osm_installed = '0';
|
||
|
|
||
|
// Se non ci si collega al db mostro l'errore...
|
||
|
if ($dbo_state != true) {
|
||
|
echo '
|
||
|
<div class="box box-center box-danger box-solid text-center">
|
||
|
<div class="box-header with-border">
|
||
|
<h3 class="box-title">' . _("Impossibile connettersi al database") . '</h3>
|
||
|
</div>
|
||
|
<div class="box-body">
|
||
|
<p>' . _("Si è verificato un'errore durante la connessione al database.") . '</p>
|
||
|
<p>' . _("Controllare di aver inserito correttamente i dati di accesso, e che il database atto ad ospitare i dati del gestionale sia esistente.") . '</p>
|
||
|
<a class="btn btn-info" href="' . $rootdir . '/index.php"><i class="fa fa-repeat"></i> ' . _("Riprova") . '</a>
|
||
|
</div>
|
||
|
</div>';
|
||
|
exit();
|
||
|
}
|
||
|
else {
|
||
|
// Verifico se il database è già installato
|
||
|
$is_db_installed = $dbo->fetchNum("SHOW TABLES LIKE 'zz_modules'");
|
||
|
|
||
|
// Verifico se il database è già stato marcato come installato se c'è la tabella `zz_impostazioni`
|
||
|
// if( $dbo->fetchNum("DESCRIBE zz_impostazioni", 1)==true ){
|
||
|
if ($dbo->fetchNum("SHOW TABLES LIKE 'zz_impostazioni'") > 0) {
|
||
|
$osm_installed = get_var("osm_installed");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Script per l'aggiornamento del database dopo gli aggiornamenti del programma
|
||
|
*/
|
||
|
$file_to_search_old = '';
|
||
|
$file_to_search = '';
|
||
|
$module_to_update = '';
|
||
|
|
||
|
// prima installazione: forzo gli aggiornamenti dalla prima release a quella attuale se ho configurato il db
|
||
|
if ($is_db_installed == 'no' && $db_name != "" && $action != 'do_update') {
|
||
|
if ($osm_installed == '0') {
|
||
|
// Forzo gli aggiornamenti dalla prima release
|
||
|
file_put_contents("VERSION.old", "base");
|
||
|
|
||
|
$frase_button = _("Installa");
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
$frase_button = _("Aggiorna");
|
||
|
}
|
||
|
|
||
|
// Leggo se ci sono dei file di aggiornamento dei moduli
|
||
|
$modules = array();
|
||
|
$handle = opendir($docroot);
|
||
|
while ( false !== ($file = readdir($handle)) ) {
|
||
|
if (is_file($docroot . "/" . $file) && preg_match("/VERSION_([a-zA-Z0-9_]+)/", $docroot . "/" . $file, $m)) {
|
||
|
array_push($modules, $m[1]);
|
||
|
}
|
||
|
}
|
||
|
closedir($handle);
|
||
|
|
||
|
// Cerco se ci sono aggiornamenti di moduli da eseguire e li aggiungo alla lista dei moduli da aggiornare
|
||
|
if (sizeof($modules) > 0) {
|
||
|
if (file_exists($docroot . "/VERSION_" . $modules[0])) {
|
||
|
$file_to_search_old = "VERSION_" . $modules[0] . ".old";
|
||
|
|
||
|
// Se il file contenente la versione precedente del modulo non c'è, lo creo per installare il modulo da zero
|
||
|
if (! file_exists($file_to_search_old)) {
|
||
|
file_put_contents($file_to_search_old, 'base');
|
||
|
}
|
||
|
$file_to_search = "VERSION_" . $modules[0];
|
||
|
$module_to_update = $modules[0];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Se c'è il VERSION.old devo aggiornare prima il "core"
|
||
|
if (file_exists($docroot . "/VERSION.old")) {
|
||
|
$file_to_search_old = 'VERSION.old';
|
||
|
$file_to_search = 'VERSION';
|
||
|
$module_to_update = 'core';
|
||
|
}
|
||
|
|
||
|
// Procedo all'aggiornamento solo se selezionato un db
|
||
|
if ($db_name != '') {
|
||
|
// Se c'è un aggiornamento da eseguire creo la tabella `updates` con i relativi aggiornamenti
|
||
|
if ($action != 'do_update' && file_exists($file_to_search) && file_exists($file_to_search_old)) {
|
||
|
|
||
|
// Creo la tabella degli aggiornamenti
|
||
|
$dbo->query("DROP TABLE IF EXISTS updates");
|
||
|
if ($module_to_update == 'core') $sql = $docroot . "/update/create_updates.sql";
|
||
|
else $sql = $docroot . "/modules/" . $module_to_update . "/update/create_updates.sql";
|
||
|
|
||
|
$dbo->multiQuery($sql);
|
||
|
|
||
|
// Leggo qual è l'ultimo aggiornamento fatto e imposto a `done` tutti gli aggiornamenti già eseguiti
|
||
|
if ($module_to_update == 'core') {
|
||
|
$qv = "SELECT idupdate FROM updates WHERE `version`='" . getVersion($file_to_search_old) . "'";
|
||
|
$rsv = $dbo->fetchArray($qv);
|
||
|
$first_idupdate = $rsv[0]['idupdate'];
|
||
|
}
|
||
|
else {
|
||
|
$qv = "SELECT `idupdate`, (SELECT `new` FROM `zz_modules` AS m WHERE name='" . $module_to_update . "') AS `new` FROM updates WHERE `version`=(SELECT `version` FROM zz_modules AS m WHERE name='" . $module_to_update . "') ORDER BY `idupdate` ASC LIMIT 0,1";
|
||
|
$rsv = $dbo->fetchArray($qv);
|
||
|
|
||
|
if ($rsv[0]['new'] == '0') $first_idupdate = $rsv[0]['idupdate'];
|
||
|
else $first_idupdate = '-1';
|
||
|
}
|
||
|
|
||
|
$dbo->query("UPDATE `updates` SET `done`=1 WHERE `idupdate` <= \"" . $first_idupdate . "\"");
|
||
|
|
||
|
if ($frase_button == _("Installa")) {
|
||
|
$firstuse = "true";
|
||
|
}
|
||
|
else {
|
||
|
$firstuse = "false";
|
||
|
}
|
||
|
|
||
|
echo '
|
||
|
<div class="box box-center-large text-center">
|
||
|
<div class="box-header with-border">
|
||
|
<h3 class="box-title">';
|
||
|
if ($osm_installed == '0') echo _('Installazione');
|
||
|
else echo _('Aggiornamento');
|
||
|
echo '</h3>
|
||
|
</div>
|
||
|
<div class="box-body">';
|
||
|
if ($osm_installed == '0') {
|
||
|
echo '
|
||
|
<p><strong>' . _("È la prima volta che avvii GEST366 e non hai ancora inizializzato il database.") . '</strong></p>';
|
||
|
}
|
||
|
echo '
|
||
|
<p>' . str_replace(array("_VERSIONOLD_", "_VERSION_", "_MODULE_"), array(getVersion($file_to_search_old), getVersion($file_to_search), $module_to_update), _("È necessario eseguire l'aggiornamento del database dalla versione <b>_VERSIONOLD_</b> alla <b>_VERSION_</b> del modulo <b>_MODULE_</b>")) . '.</p>
|
||
|
<p>' . _('Premi il tasto') . ' <b>"' . $frase_button . '"</b> ' . _("per procedere con l'aggiornamento") . ':</p>
|
||
|
<input type="button" class="btn btn-primary" value="' . $frase_button . '"';
|
||
|
echo " onclick=\"if( confirm('" . _("Continuare?") . "') ){ $('#progress').show(); $('#result').load('index.php?action=do_update&firstuse=" . $firstuse . "'); $(this).remove(); }\"";
|
||
|
echo '>
|
||
|
|
||
|
<div id="progress">
|
||
|
<div class="bar"></div>
|
||
|
<div class="text">0%</div>
|
||
|
<hr>
|
||
|
<div class="box box-warning text-center collapsed-box">
|
||
|
<div class="box-header with-border">
|
||
|
<h3 class="box-title"><a class="clickable" data-widget="collapse">' . _("Log") . '</a></h3>
|
||
|
<div class="box-tools pull-right">
|
||
|
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-plus"></i></button>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="box-body info text-left"></div>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div id="result"></div>
|
||
|
|
||
|
<script>
|
||
|
$(document).ready( function(){
|
||
|
$(".login-box").fadeOut();
|
||
|
$("#progress .bar").progressbar({ value: 0 });
|
||
|
});
|
||
|
</script>
|
||
|
</div>
|
||
|
</div>';
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Aggiornamento tramite ajax
|
||
|
*/
|
||
|
if ($action == 'do_update') {
|
||
|
// Logout se non eseguito dall'utente
|
||
|
logout();
|
||
|
|
||
|
// Seleziono tutti gli aggiornamenti successivi all'attuale e nel ciclo for() eseguo gli script ad uno ad uno
|
||
|
$qm = "SELECT * FROM updates WHERE `done`=0 ORDER BY idupdate ASC";
|
||
|
$rsm = $dbo->fetchArray($qm);
|
||
|
$nm = sizeof($rsm);
|
||
|
|
||
|
// Nessun aggiornamento database disponibile
|
||
|
if ($nm == 0 && ! isset($_GET['continue'])) {
|
||
|
echo '<p>' . str_replace("_VERSION_", getVersion(), _("GEST366 è aggiornato alla versione _VERSION_")) . '</p>';
|
||
|
|
||
|
// Rimostro la finestra di login
|
||
|
echo "<script> $('.login-box').fadeIn(); </script>";
|
||
|
}
|
||
|
|
||
|
// Aggiornamento appena terminato
|
||
|
else if ($nm == 0 && isset($_GET['continue'])) {
|
||
|
echo "<p><strong>" . str_replace(array("_VERSIONOLD_", "_VERSION_"), array(getVersion($file_to_search_old), getVersion($file_to_search)), _("Aggiornamento del modulo _VERSIONOLD_ alla versione _VERSION_ completato")) . "</strong> <i class=\"fa fa-smile-o\"></i></p>";
|
||
|
|
||
|
// Imposto la versione corrente nella tabella `zz_modules`
|
||
|
$dbo->query("UPDATE zz_modules SET `version`='" . getVersion($file_to_search) . "', `new`=0 WHERE name=\"" . $module_to_update . "\" OR parent=( SELECT id FROM (SELECT id FROM `zz_modules` WHERE name=\"" . $module_to_update . "\") AS tmp )");
|
||
|
|
||
|
// Rimuovo file .old dopo l'aggiornamento
|
||
|
@unlink($file_to_search_old);
|
||
|
|
||
|
// Rimuovo file VERSION_nomemodulo dopo aggiornamento
|
||
|
if ($module_to_update != 'core') @unlink($file_to_search);
|
||
|
|
||
|
// Rimostro la finestra di login
|
||
|
echo "<script> $('.login-box').fadeIn(); </script>\n";
|
||
|
|
||
|
// Istruzioni per la prima installazione
|
||
|
if ($_GET['firstuse'] == 'true') {
|
||
|
echo '
|
||
|
<p>' . _("Puoi procedere al login con i seguenti dati:") . '</p>
|
||
|
<p>' . _("Username") . ': <i>admin</i></p>
|
||
|
<p>' . _("Password") . ': <i> ' . $_SESSION['osm_password'] . '</i></p>
|
||
|
<p class="text-danger">' . _("È fortemente consigliato rimuovere i permessi di scrittura dal file <b>config.inc.php</b>") . '.</p>';
|
||
|
}
|
||
|
|
||
|
// Aggiornamento all'ultima release della versione e compatibilità moduli
|
||
|
$dbo->query("UPDATE `zz_modules` SET `compatibility`='" . getVersion() . "', `version`='" . getVersion() . "' WHERE `default`='1';");
|
||
|
|
||
|
// Rimuovo il flag `new` a tutti i moduli
|
||
|
$dbo->query("UPDATE `zz_modules` SET `new`=0");
|
||
|
|
||
|
// Imposto che il db di GEST366 è già stato installato
|
||
|
$dbo->query("UPDATE `zz_impostazioni` SET `valore`='1' WHERE nome='osm_installed'");
|
||
|
|
||
|
// Imposto la password di admin che l'utente ha selezionato all'inizio
|
||
|
if (isset($_SESSION['osm_password'])) {
|
||
|
if($_SESSION['osm_password'] != ""){
|
||
|
$dbo->query("UPDATE `zz_utenti` SET `password`=MD5(\"" . $_SESSION['osm_password'] . "\") WHERE `username`='admin' ");
|
||
|
}
|
||
|
unset($_SESSION["osm_password"]);
|
||
|
}
|
||
|
|
||
|
if (isset($_SESSION['osm_email'])) {
|
||
|
$dbo->query("UPDATE `zz_utenti` SET `email`=\"" . $_SESSION['osm_email'] . "\" WHERE `username`='admin' ");
|
||
|
unset($_SESSION['osm_email']);
|
||
|
}
|
||
|
|
||
|
unset($_SESSION['errors']);
|
||
|
}
|
||
|
// Aggiornamento in progresso
|
||
|
else {
|
||
|
// Esecuzione query release
|
||
|
if ($rsm[0]['filename'] != '') {
|
||
|
if ($module_to_update == 'core') $sql = $docroot . "/update/" . $rsm[0]['filename'];
|
||
|
else $sql = $docroot . "/modules/" . $module_to_update . "/update/" . $rsm[0]['filename'];
|
||
|
|
||
|
// Leggo quanti aggiornamenti totali ci sono da fare
|
||
|
// $rsc = $dbo->fetchArray("SELECT COUNT(idupdate) AS da_fare FROM `updates` WHERE `idupdate` > (SELECT `idupdate` FROM updates WHERE `version`='" . getVersion($file_to_search_old) . "') AND `idupdate`<=(SELECT `idupdate` FROM updates WHERE `version`='" . getVersion() . "')");
|
||
|
$rsc = $dbo->fetchArray("SELECT COUNT(idupdate) AS da_fare FROM `updates` WHERE done='0'");
|
||
|
|
||
|
$da_fare = $rsc[0]['da_fare'];
|
||
|
|
||
|
// Leggo quanti aggiornamenti sono stati fatti
|
||
|
// $rsc = $dbo->fetchArray("SELECT COUNT(idupdate) AS fatti FROM `updates` WHERE `idupdate` > (SELECT `idupdate` FROM updates WHERE `version`='" . getVersion($file_to_search_old) . "') AND `idupdate`< '" . $rsm[0]['idupdate'] . "'");
|
||
|
$rsc = $dbo->fetchArray("SELECT COUNT(idupdate) AS fatti FROM `updates` WHERE done='1'");
|
||
|
// $fatti=$fatti - $da_fare ;
|
||
|
$fatti = $rsc[0]['fatti'] + 1;
|
||
|
$totali = ($fatti + $da_fare) -1;
|
||
|
$percent = intval($fatti / $totali * 100);
|
||
|
|
||
|
$dbo->multiQuery($sql);
|
||
|
echo '
|
||
|
<script>
|
||
|
$(\'#progress .bar\').children().show().width(\'' . $percent . '%\');
|
||
|
$(\'#progress .text\').text(\'' . $percent . '%\');
|
||
|
|
||
|
$(\'#progress .info\').html( $(\'#progress .info\').html() + \'<p><strong>' . str_replace(array("_DONE_", "_TODO_"), array($fatti, $totali), _("Aggiornamenti completati: _DONE_ su _TODO_...")) . '</strong></p>\' );
|
||
|
|
||
|
$(\'#progress .info\').html( $(\'#progress .info\').html() + \'<p> <i class="fa fa-check"></i> ' . str_replace(array("_VERSION_", "_FILENAME_"), array($rsm[0]['version'], $rsm[0]['filename']), _("Aggiornamento alla versione <b>_VERSION_</b> (<i>_FILENAME_</i>)")) . '</p>\' );
|
||
|
</script>';
|
||
|
}
|
||
|
|
||
|
// Esecuzione script release
|
||
|
if ($rsm[0]['script'] != '') {
|
||
|
if ($module_to_update == 'core') $script = $docroot . "/update/" . $rsm[0]['script'];
|
||
|
else $script = $docroot . "/modules/" . $module_to_update . "/update/" . $rsm[0]['script'];
|
||
|
|
||
|
if (file_exists($script)) {
|
||
|
echo '<script> $(\'#progress .info\').html( $(\'#progress .info\').html()+\'<p> <i class="fa fa-check"></i> ' . str_replace("_NAME_", $rsm[0]['script'], _("Esecuzione script <b>_NAME_</b>")) . "</p>' ); </script>\n";
|
||
|
include_once ($script);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Imposto questo aggiornamento come eseguito e ricarico il div per fare il successivo
|
||
|
$dbo->query("UPDATE `updates` SET `done`=1 WHERE idupdate=\"" . $rsm[0]['idupdate'] . "\"");
|
||
|
echo "<script>$('#result').load('index.php?action=do_update&continue&firstuse=" . $_GET['firstuse'] . "');</script>\n";
|
||
|
}
|
||
|
exit();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
?>
|