';
}
function ImplementaOblio(){
$uploads = wp_upload_dir();
$oldPathAllegati=substr($uploads['basedir'],0,strpos($uploads['basedir'],"wp-content", 0)).get_option('opt_AP_FolderUpload');
$newPathAllegati=AP_BASE_DIR."AllegatiAttiAlboPretorio";
$tmpdir=str_replace("\\","/",$oldPathAllegati);
$posizione=stripos($tmpdir,$uploads['basedir']);
if (($posizione==0) and (strlen($tmpdir)>strlen($uploads['basedir'])))
$elimina=TRUE;
else
$elimina=FALSE;
if(!is_dir($newPathAllegati)){
mkdir($newPathAllegati, 0755);
}
update_option('opt_AP_FolderUpload',"AllegatiAttiAlboPretorio");
// echo $uploads['basedir']."
";
if($oldPathAllegati!=$newPathAllegati)
ap_sposta_allegati($oldPathAllegati,$elimina);
else
ap_NoIndexNoDirectLink($newPathAllegati);
$nomeFile=Albo_DIR."/BackupDatiAlbo/tmp/msg.txt";
$fpmsg = @fopen($nomeFile, "r");
if ($fpmsg) {
$contenuto=fread($fpmsg,filesize($nomeFile));
$contenuto=nl2br($contenuto);
fclose($fpmsg);
echo'
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 '
';
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 '
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
';
$elenco="
Nessuno ";
$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.="
".$fileinfo." ";
$elencoExpo.="
".$fileinfo." ";
}
}
}
echo '
Procedura di Backup dei dati dell\'Albo Pretorio
';
}
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.= '
';
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);
if(is_file(AP_BASE_DIR.get_option('opt_AP_FolderUpload')."/.htaccess"))
$ob1=TRUE;
else
$ob1=FALSE;
if(is_file(AP_BASE_DIR.get_option('opt_AP_FolderUpload')."/index.php"))
$ob2=TRUE;
else
$ob2=FALSE;
echo '
Analisi Procedura