Changeset 380 for trunk/admin/modules


Ignore:
Timestamp:
Oct 17, 2022, 5:39:20 PM (2 years ago)
Author:
roby
Message:

ADMIN

  • rivisti alcuni passaggi della funzione:

-- aggiunta l'evidenziazione della voce di menu in presenza di nuovi aggiornamenti
-- aggiunto il pulsante di avvio dell'aggiornamento (che non è più eseguito automaticamente ma solo su comando del superutente)
-- aggiunto il controllo della raggiungibilità del server di aggiornamento
-- aggiunta la funzione di backup dei files modificati (escluso il db)

Location:
trunk/admin/modules/Elezioni
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/modules/Elezioni/aggiornamento.php

    r379 r380  
    2424
    2525//if ($perms<128 or !$id_cons_gen) die("$perms Non hai i permessi per inserire dati, o non hai scelto la consultazione!");
    26 if (isset($param['errmex'])) $mex=addslashes($param['errmex']); else $mex='';
     26if (isset($param['errmex'])) $mex=htmlspecialchars($param['errmex']); else $mex='';
     27if (isset($param['procedi'])) $procedi=intval($param['procedi']); else $procedi=0;
    2728if ($perms!=256) $mex = "Non hai i permessi per avviare un aggiornamento!";
    2829if($mex!='') { ele(); echo "<hr><br><h2 style=\"text-align:center;\">$mex</h2><br><hr>"; include("footer.php");die();}
    29 
    30 $newrev=$_SESSION['remoterev'];
     30if(phpversion()<5.6) $host="http://80.211.143.127";
     31else $host="https://trac.eleonline.it";
     32$headers=get_headers("$host/ele3/changeset/");
     33$testurl=strlen($headers[0])>0?true:false;
     34if($testurl){           
     35        $file = file("$host/ele3/changeset/");
     36        $cntFile = count($file);
     37        $fine=0;
     38        $currentLine=0;
     39        foreach ($file as $line_num => $line) {
     40                if(strpos($line,'<title>') ) {$fine=1; continue;}
     41                if ($fine){
     42                        $newrev=(int) filter_var($line, FILTER_SANITIZE_NUMBER_INT);
     43                        $_SESSION['remoterev']=$newrev;
     44                        break;
     45                }
     46        }
     47        unset($file);
     48}else{
     49        $errmex="Non c'Ú connessione con il server";
     50        Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
     51}
     52#$newrev=$_SESSION['remoterev'];
    3153$myrev=$_SESSION['localrev'];
    3254if($newrev==$myrev) {
     
    3456        Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
    3557}
     58if(!$procedi){
     59        ele();
     60        echo "<hr><br><h2 style=\"text-align:center;\">Revisione installata: $myrev<br>Revisione disponibile: $newrev</h2><br><hr>";
     61        $file = file("$host/ele3/log/?format=changelog&limit=100&mode=stop_on_copy&rev=379&stop_rev=375&verbose=on");   
     62#       echo "<br>Procedo con l'aggiornamento? ";
     63        echo "<form name=\"conferma\" action=\"admin.php\"><input type=\"hidden\" name=\"op\" value=\"aggiorna\">";
     64        echo "<input type=\"hidden\" name=\"id_cons_gen\" value=\"$id_cons_gen\"><input type=\"hidden\" name=\"procedi\" value=\"1\">";
     65        echo "<br><table align=\"center\"><tr><td><h3>Procedo con l'aggiornamento?</h3></td><td><input type=\"submit\" name=\"vai\" value=\""._OK."\"></td></tr></table></form>";
     66        echo "<br><br><p>Log delle modifiche (massimo 100 righe)</p>";
     67        echo "<br><textarea name=\"log\" rows=\"15\" cols=\"150\">";
     68        foreach ($file as $line_num => $line) echo "$line";
     69        echo "</textarea>";
     70        include("footer.php");die();
     71}
    3672$righe='';
    37 if(phpversion()<5.6) $host="http://80.211.143.127";
    38 else $host="https://trac.eleonline.it";
    3973        $file =  '../admin';
    4074        $client = '../client';
     
    4377        $trunkcli='./files/trunk/client';
    4478        $path = "./files/";
     79        $backup = "./backup/";
    4580        if(file_exists($path)) {
    4681                if (!is_dir($path)) {
     
    73108                $righe.= '<br>File zip estratto';
    74109        } else {
    75 #               die( '<br>Errore nell\'estrazione del file zip! Aggiornamento interrotto');
    76                 $errmex= '<br>Errore nell\'estrazione del file zip! Aggiornamento interrotto';
     110                $errmex= "<br>Errore nell'estrazione del file zip! Aggiornamento interrotto";
    77111                Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
    78112        }
    79        
    80 #}
     113        if(file_exists($backup)) {
     114                if (!is_dir($backup)) {
     115                        $errmex="E' presente un file di nome $backup nella cartella admin, va cancellato per poter aggiornare";
     116                        Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
     117                        }
     118                else
     119                        $righe.= "<br>La cartella $backup Ú già presente, procedo con l'aggiornamento";
     120        }else{
     121                $righe.= "<br>La cartella $backup non Ú presente, procedo con la creazione";
     122                mkdir($backup, 0777, true);
     123        }
    81124$righe.= "<br><br><b>Copio i nuovi files nell'installazione di amministrazione locale</b>";
    82 recurse_copy($trunkadm,$file);
     125recurse_copy($trunkadm,$file,$backup.'admin/');
    83126$righe.= "<br>Files di aggiornamento copiati correttamente.";
    84127$righe.= "<br><br><b>Copio i nuovi files nell'installazione client locale</b>";
    85 recurse_copy($trunkcli,$client);
     128recurse_copy($trunkcli,$client,$backup.'client/');
    86129$righe.= "<br>Files di aggiornamento copiati correttamente.";
    87 function recurse_copy($src,$dst) {
     130function recurse_copy($src,$dst,$bck) {
    88131    $dir = opendir($src);
    89132    if(!file_exists($dst))
     
    92135                        Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
    93136                }
     137    if(!file_exists($bck))
     138                if(@mkdir($bck)==false) {
     139                        $errmex= "<br>Errore durante la creazione della directory $bck (controllare i permessi), aggiornamento interrotto";
     140                        Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
     141                }
    94142    while(false !== ( $file = readdir($dir)) ) {
    95143        if (( $file != '.' ) && ( $file != '..' )) {
    96144            if ( is_dir($src . '/' . $file) ) {
    97                 recurse_copy($src . '/' . $file,$dst . '/' . $file);
     145                recurse_copy($src . '/' . $file,$dst . '/' . $file,$bck . '/' . $file);
    98146            }
    99147            else {
    100                 if(!copy($src . '/' . $file,$dst . '/' . $file)) {
     148                if(!copy($src . '/' . $file,$bck . '/' . $file)) {
     149                                        $errmex= "<br>Errore durante la copia del file".$bck . '/' . $file."(controllare i permessi), aggiornamento interrotto";
     150                                        Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
     151                                }
     152               if(!copy($src . '/' . $file,$dst . '/' . $file)) {
    101153                                        $errmex= "<br>Errore durante la copia del file".$dst . '/' . $file."(controllare i permessi), aggiornamento interrotto";
    102154                                        Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
     
    107159    closedir($dir);
    108160}
    109 echo "<hr><br><h2 style=\"text-align:center;\">Aggiornamento completato</h2><br><hr>";
    110 #echo "<br><a href=\"admin.php\"> <-------------   Torna al programma   --------------> </a><br><br><br>";
    111161$righedb='';
    112162if(file_exists('./files/trunk/admin/modules/Elezioni/aggiornadb.php')) {
    113163        $righe.= "<br><br><b>Aggiornamento del database</b>";
    114164        ob_start();
    115         include ('./aggiornadb.php');
     165        include ('modules/Elezioni/aggiornadb.php');
    116166        $righedb=ob_get_contents();
    117167        ob_end_clean();
     
    127177    }
    128178}
     179$_SESSION['localrev']=$newrev;
    129180ele();
     181echo "<hr><br><h2 style=\"text-align:center;\">Aggiornamento completato</h2><br><hr>";
     182echo "<br><br><h3>Log delle operazioni</h3>";
    130183echo $righe;
    131184include("footer.php");
  • trunk/admin/modules/Elezioni/ele.php

    r379 r380  
    183183                $newrev=$_SESSION['remoterev'];
    184184                $myrev=$_SESSION['localrev'];
    185                 if($newrev==$myrev) echo "<a href=\"admin.php?op=aggiorna&amp;id_cons_gen=$id_cons_gen\">$bullet"._AGGIORNA."</a><br>";
     185                if($newrev==$myrev or $newrev==0) echo "<a href=\"admin.php?op=aggiorna&amp;id_cons_gen=$id_cons_gen\">$bullet"._AGGIORNA."</a><br>";
    186186                else    echo "<a href=\"admin.php?op=aggiorna&amp;id_cons_gen=$id_cons_gen\">$bullet_red<b>"._AGGIORNA."</b></a><br>";
    187187                echo "<a href=\"admin.php?op=confconsiglio&amp;id_cons_gen=$id_cons_gen\">$bullet"._CONFCONS."</a>
Note: See TracChangeset for help on using the changeset viewer.