",$_GET['stato'])); unset($_GET['action']); break; case "creafsic": menu(ap_NoIndexNoDirectLink(AP_BASE_DIR.get_option('opt_AP_FolderUpload'))); unset($_POST['action']); break; case "BackupData": ap_BackupDatiFiles(date('Ymd_H_i_s')); $filename=Albo_DIR."/BackupDatiAlbo/tmp/msg.txt"; $fpmsg = @fopen($filename, "rb"); $Stato=fread($fpmsg,filesize($filename)); fclose($fpmsg); menu($Stato); unset($_POST['action']); break; case "setData": if ($_REQUEST['Data']> date("d/m/Y")){ $Stato="La Data dell'interruzione del serzio deve essere nel passato"; menu($Stato); }else menu("","1",$_REQUEST['Data']); break; case "verificaproc": TestProcedura(); break; case "creaTabella": creaTabella($_REQUEST['Tabella']); TestProcedura(); break; default: menu(); } function menu($Stato="",$passo="",$Data=""){ echo '
Icona Permessi

Utility Albo

'; if ($Stato!="") echo '

'.str_replace("%%br%%","
",$Stato).'

'; echo '

Attenzione!!!!!
Operazione di ripubblicazione degli atti in corso di validità a causa di interruzione del servizio di pubblicazione

Questa operazione Annulla gli atti già pubblicati ed in corso di validità con motivazione Annullamento per interruzione del sevizio di pubblicazione
Ripubblica gli atti in corso di validità annullati per un periodo di tempo (n. giorni) uguale a quello degli atti originali

Questa è una operazione che può modificare una grosa quantità di dati, si consiglia di eseguire un backup prima di procedere, per poter recuperare i dati originali in caso di errori.

'; switch ($passo){ case "": echo '
Data Interruzione:
'; break; case "1": $TotAtti=ap_get_all_atti(1,0,0,'',0,$Data,'',0,0,true,false); echo'

'.$TotAtti.' Atti in pubblicazione in data '.$Data.'. Ripubblica gli atti a causa dell\' interruzione del servizio?

'; } echo '
'; echo '

Verifica procedura

Questa procedura esegue un test generale della procedura e riporta eventuali anomalie nei dati e nelle impostazioni.
Operazioni eseguite:

Verifica permessi cartella di Upload degli allegati
Verifica dati del Data Base e viene riportata una breve statistica sui dati

Verifica

'; /*echo '

Diritto all\'Oblio

L\'albo pretorio implementa un sistema che permette di garantire la riservatezza degli allegati agli atti in modo cehe gli stessi possano essere visionati e scaricati solo dal sito che lo ospita ospita.

In particolare:
le pagine dell\'albo non vengono indicizzate ed archivate dai motori di ricerca attraverso l\'inserimento del meta tag <meta name=\'robots\' content=\'noindex, nofollow, noarchive\' />
Nella cartella di Upload degli allegati viene creato il file .htaccess per evitare accessi diretti ai file della cartella
Nella radice del sito viene inserito il file robots.txt con l\'esclusione della cartella di Upload degli allegati da parte dei crawler dei motori di ricerca

Crea/Aggiorna

'; */ $elenco=""; $elencoExpo=""; $Dir=str_replace("\\","/",Albo_DIR.'/BackupDatiAlbo'); if (is_dir($Dir)){ $files_bck = scandir($Dir, 1); foreach($files_bck as $fileinfo) { if (is_file($Dir."/".$fileinfo)) { $elenco.=""; $elencoExpo.=""; } } } echo '

Procedura di Backup dei dati dell\'Albo Pretorio

Backup dei Dati:     

Esporta file di Backup:

'; echo '
'; } function TestCampiTabella($Tabella,$Ripara=false){ global $wpdb; switch ($Tabella){ case $wpdb->table_name_Atti: $Par=array("IdAtto" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "PRI", "Default" => "", "Extra" =>"auto_increment"), "Numero" => array("Tipo" => "int(4)", "Null" =>"NO", "Key" => "", "Default" => "0", "Extra" =>""), "Anno" => array("Tipo" => "int(4)", "Null" =>"NO", "Key" => "", "Default" => "0", "Extra" =>""), "Data" => array("Tipo" => "date", "Null" =>"NO", "Key" => "", "Default" => "0000-00-00", "Extra" =>""), "Riferimento" => array("Tipo" => "varchar(100)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Oggetto" => array("Tipo" => "varchar(200)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "DataInizio" => array("Tipo" => "date", "Null" =>"NO", "Key" => "", "Default" => "0000-00-00", "Extra" =>""), "DataFine" => array("Tipo" => "date", "Null" =>"YES", "Key" => "", "Default" => "0000-00-00", "Extra" =>""), "Informazioni" => array("Tipo" => "varchar(255)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "IdCategoria" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "", "Default" => "0", "Extra" =>""), "RespProc" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "DataAnnullamento" => array("Tipo" => "date", "Null" =>"YES", "Key" => "", "Default" => "0000-00-00", "Extra" =>""), "MotivoAnnullamento" => array("Tipo" => "varchar(200)", "Null" =>"YES", "Key" => "", "Default" => "", "Extra" =>""), "Ente" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "", "Default" => "0", "Extra" =>"")); break; case $wpdb->table_name_Allegati: $Par=array("IdAllegato" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "PRI", "Default" => "", "Extra" =>"auto_increment"), "TitoloAllegato" => array("Tipo" => "varchar(255)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Allegato" => array("Tipo" => "varchar(255)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "IdAtto" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "", "Default" => "0", "Extra" =>"")); break; case $wpdb->table_name_Categorie: $Par=array("IdCategoria" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "PRI", "Default" => "", "Extra" =>"auto_increment"), "Nome" => array("Tipo" => "varchar(255)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Descrizione" => array("Tipo" => "varchar(255)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Genitore" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "", "Default" => "0", "Extra" =>""), "Giorni" => array("Tipo" => "smallint(3)", "Null" =>"NO", "Key" => "", "Default" => "0", "Extra" =>"")); break; case $wpdb->table_name_Log: $Par=array("Data" => array("Tipo" => "timestamp", "Null" =>"NO", "Key" => "", "Default" => "CURRENT_TIMESTAMP", "Extra" =>""), "Utente" => array("Tipo" => "varchar(60)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "IPAddress" => array("Tipo" => "varchar(16)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Oggetto" => array("Tipo" => "int(1)", "Null" =>"NO", "Key" => "", "Default" => "1", "Extra" =>""), "IdOggetto" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "", "Default" => "1", "Extra" =>""), "IdOggetto" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "", "Default" => "1", "Extra" =>""), "IdAtto" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "", "Default" => "0", "Extra" =>""), "TipoOperazione" => array("Tipo" => "int(1)", "Null" =>"NO", "Key" => "", "Default" => "1", "Extra" =>""), "Operazione" => array("Tipo" => "text", "Null" =>"Yes", "Key" => "", "Default" => "", "Extra" =>"")); break; case $wpdb->table_name_RespProc: $Par=array("IdResponsabile" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "PRI", "Default" => "", "Extra" =>"auto_increment"), "Cognome" => array("Tipo" => "varchar(20)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Nome" => array("Tipo" => "varchar(20)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Email" => array("Tipo" => "varchar(100)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Telefono" => array("Tipo" => "varchar(30)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Orario" => array("Tipo" => "varchar(60)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Note" => array("Tipo" => "text", "Null" =>"YES", "Key" => "", "Default" => "", "Extra" =>"")); break; case $wpdb->table_name_Enti: $Par=array("IdEnte" => array("Tipo" => "int(11)", "Null" =>"NO", "Key" => "PRI", "Default" => "", "Extra" =>"auto_increment"), "Nome" => array("Tipo" => "varchar(100)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Indirizzo" => array("Tipo" => "varchar(150)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Url" => array("Tipo" => "varchar(100)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Email" => array("Tipo" => "varchar(100)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Pec" => array("Tipo" => "varchar(100)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Telefono" => array("Tipo" => "varchar(40)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Fax" => array("Tipo" => "varchar(40)", "Null" =>"NO", "Key" => "", "Default" => "", "Extra" =>""), "Note" => array("Tipo" => "text", "Null" =>"Yes", "Key" => "", "Default" => "", "Extra" =>"")); break; } $wpdb->flush(); $result=$wpdb->get_results("Describe $Tabella"); $Verificato=true; $Msg=""; foreach ( $result as $campo ){ if (strtolower($Par[$campo->Field]["Tipo"])!=strtolower($campo->Type)){ $Msg.= $campo->Field." Tipo DB ". $campo->Type . " Tipo Originale ".$Par[$campo->Field]["Tipo"]."
"; $Verificato=false; } if (strtolower($Par[$campo->Field]["Null"])!=strtolower($campo->Null)){ $Msg.= $campo->Field." Null DB ". $campo->Null . " Null Originale ".$Par[$campo->Field]["Null"]."
"; $Verificato=false; } if (strtolower($Par[$campo->Field]["Default"])!=strtolower($campo->Default)){ $Msg.= $campo->Field." Default DB ". $campo->Default . " Default Originale ".$Par[$campo->Field]["Default"]."
"; $Verificato=false; } if (strtolower($Par[$campo->Field]["Extra"])!=strtolower($campo->Extra)){ $Msg.= $campo->Field." Extra DB ". $campo->Extra . " Extra Originale ".$Par[$campo->Field]["Extra"]."
"; $Verificato=false; } if (strtolower($Par[$campo->Field]["Key"])!=strtolower($campo->Key)){ $Msg.= $campo->Field." Key DB ". $campo->Key . " Key Originale ".$Par[$campo->Field]["Key"]."
"; $Verificato=false; } } if ($Verificato == True) $Msg.= 'Icona Verificato'; return $Msg; } function TestCongruitaDati($Tabella){ global $wpdb; switch ($Tabella){ case $wpdb->table_name_Atti: $n_atti = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->table_name_Atti;"); $n_atti_dapub = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->table_name_Atti Where Numero=0;"); $n_atti_attivi = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->table_name_Atti Where DataInizio <= now() And DataFine>= now() And Numero>0;"); $n_atti_storico=$n_atti-$n_atti_attivi-$n_atti_dapub; $Analisi.='Atti In corso di Validità:'.$n_atti_attivi.'
'; $Analisi.='Atti Scaduti:'.$n_atti_storico.'
'; $Analisi.='Atti da Pubblicare:'.$n_atti_dapub.'
'; // Verifica Atti con Categorie Orfane $CategorieOrfane=ap_categorie_orfane(); if ($CategorieOrfane){ foreach ($CategorieOrfane as $CategoriaOrfana){ $Analisi.="Atto N. ".$CategoriaOrfana->Numero."/".$CategoriaOrfana->Anno." riporta la Categoria con Codice ".$CategoriaOrfana->IdCategoria." NON TROVATA nella tabella Categorie
"; } } $EntiOrfani=ap_enti_orfani(); if ($EntiOrfani){ foreach ($EntiOrfani as $EnteOrfano){ $Analisi.="Atto N. ".$EnteOrfano->Numero."/".$EnteOrfano->Anno." riporta l'ente con Codice ".$EnteOrfano->Ente." NON TROVATO nella tabella Enti
"; } } $ResponsabiliOrfani=ap_responsabili_orfani(); if ($ResponsabiliOrfani){ foreach ($ResponsabiliOrfani as $ResponsabileOrfan0){ $Analisi.="Atto N. ".$ResponsabileOrfan0->Numero."/".$ResponsabileOrfan0->Anno." riporta il responsabile con Codice ".$ResponsabileOrfan0->RespProc." NON TROVATO nella tabella Responsabili
"; } } return $Analisi; break; case $wpdb->table_name_Allegati: $NumAllegati=ap_num_allegati(); $AllegatiOrfani=ap_allegati_orfani(); $Analisi= "N. Allegati ".$NumAllegati." di cui orfani ".count($AllegatiOrfani).""; if (count($AllegatiOrfani)>0) $Analisi.="
Allegati Orfani
"; foreach ($AllegatiOrfani as $AllegatoOrfano){ $Analisi.="Allegato ".$AllegatoOrfano->TitoloAllegato." Associato all'Atto con id n. ".$AllegatoOrfano->IdAtto."
"; } return $Analisi; break; case $wpdb->table_name_Categorie: $NumCategorie=ap_num_categorie(); $NumCategorieInutilizzate=ap_num_categorie_inutilizzate(); $Categorie=ap_get_categorie(); $UsoCategorie=""; foreach ($Categorie as $Categoria){ $NCategorie=ap_num_categoria_atto($Categoria->IdCategoria); $NCategorie=$NCategorie ? $NCategorie : 0; $UsoCategorie.="".$Categoria->Nome." Presente in ".$NCategorie ." Atti
"; } return "Categorie codificate ".$NumCategorie." di cui inutilizzate ".$NumCategorieInutilizzate."
".$UsoCategorie; break; case $wpdb->table_name_Log: $LogPerOggetti=ap_get_Stat_Log("Oggetto"); $Statistiche="Numero record per Oggetto
"; foreach ($LogPerOggetti as $LogPerOggetto){ $Statistiche.="".$LogPerOggetto->NomeOggetto." => ".$LogPerOggetto->Numero ."
"; } $LogPerTipoOperazioni=ap_get_Stat_Log("TipoOperazione"); $Statistiche.="Numero record per Tipo Operazione
"; foreach ($LogPerTipoOperazioni as $LogPerTipoOperazione){ $Statistiche.="".$LogPerTipoOperazione->NomeTipoOperazione." => ".$LogPerTipoOperazione->Numero ."
"; } return $Statistiche; break; case $wpdb->table_name_RespProc: $NumResp=ap_num_responsabili(); $NumResponsabiliInutilizzate=ap_num_responsabili_inutilizzati(); $Responsabili=ap_get_responsabili(); $UsoResponsabili=""; foreach ($Responsabili as $Responsabile){ $NResponsabile=ap_num_responsabili_atto($Responsabile->IdResponsabile); $NResponsabile=$NResponsabile ? $NResponsabile : 0; $UsoResponsabili.="".$Responsabile->Cognome." ".$Responsabile->Nome." Presente in ".$NResponsabile ." Atti
"; } return "Responsabili codificati ".$NumResp." di cui inutilizzati ".$NumResponsabiliInutilizzate."
".$UsoResponsabili; break; case $wpdb->table_name_Enti: $NumEnti=ap_num_enti(); $NumEntiInutilizzati=ap_num_enti_Inutilizzati(); $Enti=ap_get_enti(); $UsoEnti=""; foreach ($Enti as $Ente){ $NAtti=ap_num_enti_atto($Ente->IdEnte); $NAtti=$Natti ? $Natti : 0; $UsoEnti.="".$Ente->Nome." Presente in ".$NAtti ." Atti
"; } return "Enti codificati ".$NumEnti." di cui inutilizzati ".$NumEntiInutilizzati."
".$UsoEnti; break; } } function TestProcedura(){ global $wpdb; $Tabelle=array($wpdb->table_name_Atti, $wpdb->table_name_Categorie, $wpdb->table_name_Allegati, $wpdb->table_name_Log, $wpdb->table_name_RespProc, $wpdb->table_name_Enti); echo '
Icona Permessi

Analisi Procedura

Torna indietro

Permessi Cartella Upload

'; $CartellaUp=str_replace("\\","/",AP_BASE_DIR."/".get_option('opt_AP_FolderUpload')); $permessi=ap_get_fileperm($CartellaUp); if(substr(ap_get_fileperm_Gruppo($CartellaUp,"Proprietario"),1,1)=="w") $StatoCartella='Icona Verificato'; else $StatoCartella='Icona Non Verificato'; echo '
Cartella Permessi Stato
'.$CartellaUp.' '.$permessi.' '.$StatoCartella.'
'; echo'

Analisi Data Base

'; foreach($Tabelle as $Tabella){ $TestCampi=""; if (existTable($Tabella)) $EsisteTabella='Icona Verificato'; else $EsisteTabella='Crea Tabella'; /*switch ($Tabella){ case 'wp_albopretorio_atti': $n_atti = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->table_name_Atti;" ) ); $n_atti_dapub = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->table_name_Atti Where Numero=0;")); $n_atti_attivi = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->table_name_Atti Where DataInizio <= now() And DataFine>= now() And Numero>0;")); $n_atti_storico=$n_atti-$n_atti_attivi-$n_atti_dapub; $Analisi.='Atti In corso di Validità:'.$n_atti_attivi.'
'; $Analisi.='Atti Scaduti:'.$n_atti_storico.'
'; $Analisi.='Atti da Pubblicare:'.$n_atti_dapub.'
'; $TestCampi=TestCampiTabella($Tabella); break; default; $Analisi='Niente'; }*/ $TestCampi=TestCampiTabella($Tabella); $DatiTabella=TestCongruitaDati($Tabella); /* */ echo' '; } echo'
Tabella Esistenza Struttura Analisi dati
'.NFieldInTable($Tabella).'
'.$Tabella.' '.$EsisteTabella.' '.$TestCampi.' '.$DatiTabella.'
'; } ?>