'Version' ) ); define( 'AP_VERSION', $albopc_plugin_data['Version'] ); } // phpcs:disable WordPress.DB.DirectDatabaseQuery -- il plugin opera su tabelle custom proprie: nessuna API core equivalente, il caching non si applica alle query amministrative e di scrittura. include_once(dirname (__FILE__) .'/AlboPretorioFunctions.php'); /* libreria delle funzioni */ include_once(dirname (__FILE__) .'/AlboPretorioWidget.php'); include_once(dirname (__FILE__) .'/inc/editor-dialogs.php'); /* dialog AJAX dei pulsanti editor */ define("Albo_URL",plugin_dir_url(dirname (__FILE__).'/AlboPretorio.php')); define("Albo_DIR",dirname (__FILE__)); define("APHomePath",substr(plugin_dir_path(__FILE__),0,strpos(plugin_dir_path(__FILE__),"wp-content")-1)); define("AlboBCK",WP_CONTENT_DIR."/AlboOnLine"); $albopc_uploads = wp_upload_dir(); define("AP_BASE_DIR",$albopc_uploads['basedir']."/"); if (isset($_REQUEST['action'])){ require_once( ABSPATH . 'wp-includes/pluggable.php' ); switch(sanitize_text_field(wp_unslash($_REQUEST['action'] ?? ''))){ case "creafoblio": if (!isset($_REQUEST['rigenera'])) { $albopc_Stato=__("ATTENZIONE. Rilevato potenziale pericolo di attacco informatico, l'operazione è stata annullata","albo-pretorio-on-line"); break; } if (!wp_verify_nonce(sanitize_text_field(wp_unslash($_REQUEST['rigenera'] ?? '')),'rigeneraoblio')){ $albopc_Stato=__("ATTENZIONE. Rilevato potenziale pericolo di attacco informatico, l'operazione è stata annullata","albo-pretorio-on-line"); break; } albopc_crearobots(); $albopc_newPathAllegati=AP_BASE_DIR."AllegatiAttiAlboPretorio"; albopc_NoIndexNoDirectLink($albopc_newPathAllegati); wp_safe_redirect("?page=Albo_Pretorio"); break; } } if (!class_exists('AlboPretorio')) { class AlboPretorio { var $version; var $minium_WP = '3.1'; var $options = ''; var $plugin_name = ''; function __construct() { load_plugin_textdomain( 'albo-pretorio-on-line', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); // phpcs:ignore PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound -- il plugin distribuisce le proprie traduzioni .mo nella cartella languages/; per il caricamento da fork self-hosted (non wp.org) la chiamata resta necessaria if ( ! function_exists( 'get_plugins' ) ) require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); $plugins = get_plugins( "/".plugin_basename( dirname( __FILE__ ) ) ); $plugin_nome = basename( ( __FILE__ ) ); $this->version=$plugins[$plugin_nome]['Version']; // Inizializzazioni $this->define_tables(); $this->plugin_name = plugin_basename(__FILE__); // Hook per attivazione/disattivazione plugin register_activation_hook( __FILE__, array($this, 'activate')); register_deactivation_hook( __FILE__, array($this, 'deactivate') ); // Hook di inizializzazione che registra il punto di avvio del plugin add_action( 'admin_enqueue_scripts', array( $this,'Albo_Admin_Enqueue_Scripts' ) ); add_action('init', array($this, 'update_AlboPretorio_settings')); add_action('init', array($this, 'init') ); add_action('init', array($this, 'add_albo_button')); add_shortcode('Albo', array($this, 'VisualizzaAtti')); add_shortcode('AlboGruppiAtti', array($this, 'VisualizzaGruppiAtti')); add_shortcode('AlboAtto', array($this, 'albopc_VisualizzaAtto')); add_action('wp_head', array($this,'head_Front_End')); add_action( 'admin_menu', array ($this, 'add_menu') ); add_action('template_redirect', array($this, 'Gestione_Link')); add_filter('set-screen-option', array($this, 'atti_set_option'), 10, 3); add_filter( 'the_content', array($this, 'VisualizzaTabellaInAVCP'),10,1); add_action( 'wp_ajax_MemoFunzioni','albopc_MemoFunzioni' ); add_action( 'wp_ajax_LoadDefaultFunzioni','albopc_LoadDefaultFunzioni' ); add_action( 'wp_ajax_dismiss_alboonline_notice','albopc_dismiss_alboonline_notice' ); add_action( 'wp_ajax_rimuoviAllegato','albopc_rimuoviallegatoPP' ); add_filter( 'post_link',array($this,'permalinkSearchAlbo'), 10, 3); $RestApi=get_option('opt_AP_RestApi'); if($RestApi=="Si"){ add_action( 'rest_api_init', array($this, 'Reg_rest_api_route')); } if (get_option( 'opt_AP_Versione' ) != $this->version) { $this->activate(); } $this->load_dependencies(); $MsgLetto=get_option( 'alboonline-notice-dismissed' ); // var_dump($MsgLetto); if( $this->version=="4.4.6" && empty( $MsgLetto ) || $MsgLetto===FALSE) { add_action( 'admin_notices', array($this, 'admin_notice' )); } } function permalinkSearchAlbo($permalink, $post, $leavename){ // var_dump($post); if($post->post_type=="attiAlboOnLine"){ $permalink=$post->guid; } // var_dump($permalink); return $permalink; } function admin_notice(){ ?>

Albo Online

version)); ?>

','')); ?>

WP_REST_Server::READABLE, 'callback' => array($this,'rest_api_statistiche_get'), /* Dati pubblici per definizione: accesso libero, dichiarato esplicitamente. */ 'permission_callback' => '__return_true', )); // Registrazione route categorie register_rest_route('alboonline/v1','/categorie', array('methods' => WP_REST_Server::READABLE, 'callback' => array($this,'rest_api_categorie_get'), /* Dati pubblici per definizione: accesso libero, dichiarato esplicitamente. */ 'permission_callback' => '__return_true', )); // Registrazione route enti register_rest_route('alboonline/v1','/enti', array('methods' => WP_REST_Server::READABLE, 'callback' => array($this,'rest_api_enti_get'), /* Dati pubblici per definizione: accesso libero, dichiarato esplicitamente. */ 'permission_callback' => '__return_true', )); // Registrazione route atto register_rest_route('alboonline/v1','/atto/(?P\d+)/(?P\d+)', array('methods' => WP_REST_Server::READABLE, 'callback' => array($this,'rest_api_atto_get'), /* Dati pubblici per definizione: accesso libero, dichiarato esplicitamente. */ 'permission_callback' => '__return_true', 'args' => array('num' => array( 'validate_callback' => function($param, $request, $key) { return is_numeric( $param ); }), 'anno' => array( 'validate_callback' => function($param, $request, $key) { return is_numeric( $param ); }), ) )); // Registrazione route atto register_rest_route('alboonline/v1','/atto/(?P\d+)', array('methods' => WP_REST_Server::READABLE, 'callback' => array($this,'rest_api_atto_get_byID'), /* Dati pubblici per definizione: accesso libero, dichiarato esplicitamente. */ 'permission_callback' => '__return_true', 'args' => array('id' => array( 'validate_callback' => function($param, $request, $key) { return is_numeric( $param ); }), ) )); // Registrazione route atti register_rest_route('alboonline/v1','/atti', array('methods' => WP_REST_Server::READABLE, 'callback' => array($this,'rest_api_atti_get'), /* Dati pubblici per definizione: accesso libero, dichiarato esplicitamente. */ 'permission_callback' => '__return_true', 'args' => array( 'stato' => array('default'=>1, 'validate_callback' => function($param, $request, $key) { return is_numeric( $param )&&($param==1 ||$param==2); }), 'per_page' => array('default'=>10, 'validate_callback' => function($param, $request, $key) { return is_numeric( $param )&&($param>=-1); }), 'page' => array('default'=>1, 'validate_callback' => function($param, $request, $key) { return is_numeric( $param )&&($param>=0); }), 'categorie' => array('default'=>'0', 'validate_callback' => function($param, $request, $key) { if($param=='0'){ return true; }else{ return albopc_is_array_di_categorie($param); } }), 'numero' => array('default'=>0, 'validate_callback' => function($param, $request, $key) { return is_numeric( $param )&&($param>=0); }), 'anno' => array('default'=>0, 'validate_callback' => function($param, $request, $key) { return is_numeric( $param ); }), 'oggetto' => array('default'=>'', 'validate_callback' => function($param, $request, $key) { return is_string( $param ); }), 'dadata' => array('default'=>'0', 'validate_callback' => function($param, $request, $key) { return is_string( $param ); }), 'adata' => array('default'=>'0', 'validate_callback' => function($param, $request, $key) { return is_string( $param ); }), 'riferimento' => array('default'=>'', 'validate_callback' => function($param, $request, $key) { return is_string( $param ); }), 'ente' => array('default'=>-1, 'validate_callback' => function($param, $request, $key) { return is_numeric( $param )&&($param>=-1); }), ), )); } function rest_api_atto_get_byID($request){ $Atto=array(); $IDAtto=$request->get_param("id"); $risultato=albopc_get_atto($IDAtto); if(count($risultato)==0){ return new WP_Error( 'no_atto', __('Nessun atto trovato con questi parametri','albo-pretorio-on-line'), array( 'status' => 404 ) ); } return new WP_REST_Response($this->REST_API_get_atto($risultato), 200 ); } function rest_api_atto_get($request){ $Atto=array(); $NumeroAtto=$request->get_param("num"); $AnnoAtto=$request->get_param("anno"); $risultato=albopc_get_all_atti(0,$NumeroAtto,$AnnoAtto); if(count($risultato)==0){ return new WP_Error( 'no_atto', __('Nessun atto trovato con questi parametri','albo-pretorio-on-line'), array( 'status' => 404 ) ); } return new WP_REST_Response($this->REST_API_get_atto($risultato), 200 ); } function REST_API_get_atto($risultato){ $risultato=$risultato[0]; $IdAtto=$risultato->IdAtto; $DatiAtto=albopc_get_atto($IdAtto); $DatiCategoria=array(); $DatiEnte=array(); $DatiSoggetti=array(); $Allegati=array(); $Meta=""; foreach($DatiAtto as $D_Atto){ //Categoria Atto $D_Catergoria=albopc_get_categoria($D_Atto->IdCategoria); $D_Catergoria=$D_Catergoria[0]; $DatiCategoria["Nome"] =$D_Catergoria->Nome; $DatiCategoria["Descrizione"] =$D_Catergoria->Descrizione; //Fine Categoria Atto //Ente Atto $D_Ente=albopc_get_ente($D_Atto->Ente); $DatiEnte["Nome"] =$D_Ente->Nome; $DatiEnte["Indirizzo"] =$D_Ente->Indirizzo; $DatiEnte["Url"] =$D_Ente->Url; $DatiEnte["Email"] =$D_Ente->Email; $DatiEnte["Pec"] =$D_Ente->Pec; $DatiEnte["Telefono"] =$D_Ente->Telefono; $DatiEnte["Fax"] =$D_Ente->Fax; $DatiEnte["Note"] =$D_Ente->Note; //Fine Ente Atto // Soggetti $Soggetti=unserialize($D_Atto->Soggetti, array('allowed_classes'=>false)); if($Soggetti){ $Soggetti=albopc_get_alcuni_soggetti_ruolo(implode(",",$Soggetti)); $Ruolo=""; foreach($Soggetti as $Soggetto){ if(albopc_get_Funzione_Responsabile($Soggetto->Funzione,"Display")=="No"){ continue; } $DatiSoggetti[$Soggetto->IdResponsabile]=array( "Cognome" =>$Soggetto->Cognome, "Nome" =>$Soggetto->Nome, "Email" =>$Soggetto->Email, "Telefono" =>$Soggetto->Telefono, "Orario" =>$Soggetto->Orario, "Note" =>$Soggetto->Note, "CodFun" =>$Soggetto->Funzione, "Funzione" =>albopc_get_Funzione_Responsabile($Soggetto->Funzione,__('Descrizione','albo-pretorio-on-line'))); } } // Fine Soggetti // Allegati $allegatiatto=albopc_get_all_allegati_atto($IdAtto); $TipidiFiles=albopc_get_tipidifiles(); $sep="?"; $PagAlboCor=get_option('opt_AP_PAttiCor'); $PagAlboSto=get_option('opt_AP_PAttiSto'); if(!isset($PagAlboCor) || $PagAlboCor=="") if (strpos($PagAlboCor,"?")>0) $sep="&"; foreach ($allegatiatto as $allegato) { $Estensione=albopc_ExtensionType($allegato->Allegato); if($Estensione!="ndf" && isset($TipidiFiles[$Estensione])){ $Icona=$TipidiFiles[$Estensione]['Icona']; $TipoFile=$TipidiFiles[$Estensione]['Descrizione']; }else{ // tipo non registrato: icona di ripiego per estensione nota $Fallback=albopc_icona_fallback_tipo(pathinfo($allegato->Allegato, PATHINFO_EXTENSION)); $Icona=$Fallback['Icona']; $TipoFile=$Fallback['Descrizione']; } if (is_file($allegato->Allegato)){ $Link=albopc_DaPath_a_URL($allegato->Allegato); $Rel=(albopc_is_atto_corrente($IdAtto)?$PagAlboCor:$PagAlboSto).$sep.'action=dwnalle&id='.$allegato->IdAllegato.'&idAtto='.$IdAtto; $Dimensione=albopc_Formato_Dimensione_File(filesize($allegato->Allegato)); } $Allegati[]=array("Titolo" =>$allegato->TitoloAllegato, "Allegato" =>$allegato->Allegato, "Estenzione" =>$Estensione, "Icona" =>$Icona, "TipoFile" =>$TipoFile, "Dimensione" =>$Dimensione, "Link" =>$Link, "Rel" =>$Rel); } // Fine Allegati $MetaDati=albopc_get_meta_atto($IdAtto); if($MetaDati!==FALSE){ foreach($MetaDati as $Metadato){ $Meta.=$Metadato->Meta."=".$Metadato->Value."
"; } $Meta=substr($Meta,0,-6); } $Atto["Numero"] =$D_Atto->Numero; $Atto["Anno"] =$D_Atto->Anno; $Atto["Data"] =$D_Atto->Data; $Atto["Riferimento"] =$D_Atto->Riferimento; $Atto["Oggetto"] =$D_Atto->Oggetto; $Atto["DataInizio"] =$D_Atto->DataInizio; $Atto["DataFine"] =$D_Atto->DataFine; $Atto["Informazioni"] =$D_Atto->Informazioni; $Atto["IdCategoria"] =$D_Atto->IdCategoria; $Atto["Categoria"] =$DatiCategoria; $Atto["DataAnnullamento"] =$D_Atto->DataAnnullamento; $Atto["MotivoAnnullamento"] =$D_Atto->MotivoAnnullamento; $Atto["IdEnte"] =$D_Atto->Ente; $Atto["Ente"] =$DatiEnte; $Atto["Metadati"] =stripslashes($Meta); $Atto["DataOblio"] =$D_Atto->DataOblio; $Atto["Soggetti"] =$DatiSoggetti; $Atto["Allegati"] =$Allegati; } return $Atto; } function rest_api_statistiche_get($request){ global $wpdb; $Statistiche=array(); $n_atti_attivi =albopc_get_all_atti(1,0,0,0,'', 0,0,"",0,0,true); $n_atti_storico=albopc_get_all_atti(2,0,0,0,'', 0,0,"",0,0,true); $n_atti_attivi_ANN =albopc_get_all_atti(1,0,0,0,'', 0,0,"",0,0,true,true); $n_atti_storico_ANN=albopc_get_all_atti(2,0,0,0,'', 0,0,"",0,0,true,true); $Statistiche=array( "num_Categorie" =>albopc_num_categorie(), "num_AttiCorrenti" =>$n_atti_attivi, "num_AttiStorico" =>$n_atti_storico, "num_AttiCorrenti_Annullati"=>$n_atti_attivi_ANN, "num_AttiStorico_Annullati" =>$n_atti_storico_ANN, "num_Allegati" =>albopc_num_allegati()); return new WP_REST_Response($Statistiche, 200 ); } function rest_api_categorie_get($request){ $Categorie=array(); $ArrCategorie=albopc_get_categorie(); foreach($ArrCategorie as $Categoria){ $Categorie[$Categoria->IdCategoria]=array( "Nome" =>$Categoria->Nome, "Descrizione" =>$Categoria->Descrizione, "Giorni" =>$Categoria->Giorni); } return new WP_REST_Response($Categorie, 200 ); } function rest_api_enti_get($request){ $Enti=array(); $ArrEnti=albopc_get_enti(); foreach($ArrEnti as $Ente){ $Enti[$Ente->IdEnte]=array( "Nome" =>$Ente->Nome, "Indirizzo" =>$Ente->Indirizzo, "Url" =>$Ente->Url, "Email" =>$Ente->Email, "Pec" =>$Ente->Pec, "Telefono" =>$Ente->Telefono, "Fax" =>$Ente->Fax, "Note" =>$Ente->Note, ); } return new WP_REST_Response($Enti, 200 ); } function rest_api_atti_get($request ) { $PagAlbo=get_option('opt_AP_PAtto'); if(!isset($PagAlbo) || $PagAlbo=="") return new WP_REST_Response(__('Errore:Pagina visualizzazione atto non impostata','albo-pretorio-on-line'),200); $albopc_Stato=$request->get_param("stato"); $N_A_pp=$request->get_param("per_page"); $Pag=$request->get_param("page"); $Categorie=$request->get_param("categorie"); $Numero=$request->get_param("numero"); $Anno=$request->get_param("anno"); $Oggetto=$request->get_param("oggetto"); $Dadata=$request->get_param("dadata"); $Adata=$request->get_param("adata"); $Riferimento=$request->get_param("riferimento"); $Ente=$request->get_param("ente"); if ($N_A_pp==0){ $N_A_pp=10; } if ($N_A_pp==-1){ $N_A_pp=0; } if ($Pag==0){ $Da=0; $A=$N_A_pp; }else{ $Da=($Pag-1)*$N_A_pp; $A=$N_A_pp; } $TotAtti=albopc_get_all_atti($albopc_Stato,$Numero,$Anno,$Categorie,$Oggetto,$Dadata,$Adata,'',0,0,true,false,$Riferimento,$Ente); $ListaAtti=albopc_get_all_atti($albopc_Stato,$Numero,$Anno,$Categorie,$Oggetto,$Dadata,$Adata,'Anno DESC,Numero DESC',$Da,$A,false,false,$Riferimento,$Ente); if($N_A_pp>0){ $Npag=(int)($TotAtti/$N_A_pp); if ($TotAtti%$N_A_pp>0 ){ $Npag++; } } $DatiAtti=array("TotAtti" => $TotAtti, "NumPagine" => $Npag, "Pagina" =>$Pag, "AttiPagina" => $N_A_pp); if (strpos($PagAlbo,"?")>0) $sep="&"; else $sep="?"; $Atti=array(); foreach($ListaAtti as $riga){ $MetaDati=albopc_get_meta_atto($riga->IdAtto); $Meta=""; if($MetaDati!==FALSE){ foreach($MetaDati as $Metadato){ $Meta.=$Metadato->Meta."=".$Metadato->Value."
"; } $Meta=substr($Meta,0,-6); } $Atti[$riga->IdAtto]["Numero"]=$riga->Numero; $Atti[$riga->IdAtto]["Anno"]=$riga->Anno; $Atti[$riga->IdAtto]["Riferimento"]=$riga->Riferimento; $Atti[$riga->IdAtto]["Oggetto"]=$riga->Oggetto; $Atti[$riga->IdAtto]["DataInizio"]=$riga->DataInizio; $Atti[$riga->IdAtto]["DataFine"]=$riga->DataFine; $Atti[$riga->IdAtto]["Informazioni"]=$riga->Informazioni; $Categoria=albopc_get_categoria($riga->IdCategoria); $Atti[$riga->IdAtto]["Categoria"]=$Categoria[0]->Nome; $Atti[$riga->IdAtto]["DataAnnullamento"]=$riga->DataAnnullamento; $Atti[$riga->IdAtto]["MotivoAnnullamento"]=$riga->MotivoAnnullamento; $Atti[$riga->IdAtto]["Ente"]=albopc_get_ente($riga->Ente); $Atti[$riga->IdAtto]["Metadati"]=stripslashes($Meta); $Atti[$riga->IdAtto]["DataOblio"]=$riga->DataOblio; $Atti[$riga->IdAtto]["Link"]=$PagAlbo.$sep.'numero='.$riga->Numero.'&anno='.$riga->Anno.'&titolo='; } $Dati=array($DatiAtti,$Atti); return new WP_REST_Response($Dati, 200 ); } function VisualizzaTabellaInAVCP($content){ $PostID= get_the_ID(); if (get_post_type( $PostID) !="avcp" Or get_option('opt_AP_AutoShortcode')!="Si") return $content; $Cig=get_post_meta($PostID,'avcp_cig',TRUE); $Parametri=array('meta'=>"CIG",'valore'=>$Cig,'titolo' => __('Atti Albo on line di riferimento','albo-pretorio-on-line')); $OldInterfaccia=get_option('opt_AP_OldInterfaccia'); if($OldInterfaccia=="Si"){ require_once ( dirname (__FILE__) . '/admin/gruppiatti.php' ); }else{ require_once ( dirname (__FILE__) . '/admin/gruppiatti_new.php' ); } return $content.albopc_Lista_AttiGruppo($Parametri); } function Gestione_Link(){ if(isset($_REQUEST['action'])){ switch (sanitize_text_field(wp_unslash($_REQUEST['action'] ?? ''))){ case "dwnalle": if(!isset($_SERVER["HTTP_REFERER"])){ wp_die(wp_kses_post(__('Oooooo!
Stai tentando di fare il furbo!
Non puoi accedere a questo file direttamente.','albo-pretorio-on-line'))); break; } $Allegato = albopc_get_allegato_atto(sanitize_text_field(wp_unslash($_REQUEST['id'] ?? ''))); if (empty($Allegato)) wp_die(esc_html__("Allegato non trovato","albo-pretorio-on-line")); $file_path =$Allegato[0]->Allegato; if (!is_file($file_path) or !is_readable($file_path)) wp_die(esc_html__("File non trovato, il file è stato cancellato o spostato!","albo-pretorio-on-line")); /* Il controllo sul Referer non basta a limitare l'accesso: chiunque scorra gli id puo' scaricare gli allegati di atti non ancora pubblicati o oltre la data di oblio, che il front-end non mostra. Qui si replica la stessa visibilita' del front-end (unione degli atti "in corso" e "storici entro l'oblio"): DataInizio<=oggi e DataOblio>oggi. Il valore '0000-00-00' significa "non impostato" e non deve bloccare. Gli atti annullati restano scaricabili, coerentemente con il fatto che il front-end li mostra ancora. */ $Atto = albopc_get_atto((int)$Allegato[0]->IdAtto); if (!empty($Atto)) { $Atto = $Atto[0]; $Oggi = albopc_oggi(); $NonPubblicato = ($Atto->DataInizio!="0000-00-00" And $Atto->DataInizio>$Oggi); $OltreOblio = ($Atto->DataOblio !="0000-00-00" And $Atto->DataOblio <=$Oggi); if ($NonPubblicato Or $OltreOblio) wp_die(esc_html__("Documento non disponibile","albo-pretorio-on-line"),"",array('response'=>404)); } $chunksize = 2*(1024*1024); $stat = stat($file_path); $etag = sprintf('%x-%x-%x', $stat['ino'], $stat['size'], $stat['mtime'] * 1000000); /* Il log va scritto PRIMA di inviare il file: dopo l'invio del corpo qualsiasi output aggiuntivo corromperebbe il download. */ if(is_numeric(sanitize_text_field(wp_unslash($_REQUEST['id'] ?? ''))) and isset($_REQUEST['idAtto']) and is_numeric(sanitize_text_field(wp_unslash($_REQUEST['idAtto'] ?? '')))) albopc_insert_log(6,5,(isset($_REQUEST['id'])?(int)$_REQUEST['id']:0),"Download",(isset($_REQUEST['idAtto'])?(int)$_REQUEST['idAtto']:0)); /* Scarta tutto l'output gia' prodotto da tema o altri plugin (righe vuote dopo il ?>, BOM, avvisi PHP): finirebbe in testa al file scaricato e, sommandosi al Content-Length dichiarato, lo troncherebbe in coda. */ while (ob_get_level() > 0) { @ob_end_clean(); } /* La compressione ricalcola la lunghezza del corpo e va disattivata. */ @ini_set('zlib.output_compression', 'Off'); // phpcs:ignore Squiz.PHP.DiscouragedFunctions.Discouraged, WordPress.PHP.NoSilencedErrors.Discouraged -- necessario per il download: la compressione zlib ricalcola il body e falserebbe Content-Length dello streaming file if (function_exists('apache_setenv')) @apache_setenv('no-gzip', '1'); nocache_headers(); header('Pragma: public'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Cache-Control: private', FALSE); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="'.basename($file_path).'"'); header('Content-Transfer-Encoding: binary'); header('Last-Modified: ' . gmdate('r', $stat['mtime'])); header('Etag: "' . $etag . '"'); header('Content-Length: '.$stat['size']); header('Accept-Ranges: bytes'); flush(); if ($stat['size'] < $chunksize) { // phpcs:disable WordPress.WP.AlternativeFunctions -- I/O su file di export/download nelle cartelle di lavoro in wp-content/uploads: streaming e download non gestibili da WP_Filesystem. readfile($file_path); } else { $handle = fopen($file_path, 'rb'); while (!feof($handle)) { echo fread($handle, $chunksize); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- streaming dei byte grezzi del file in download (Content-Type gia' impostato), non output HTML flush(); } fclose($handle); // phpcs:enable WordPress.WP.AlternativeFunctions } exit(); break; } } } function Albo_Admin_Enqueue_Scripts( $hook_suffix ) { if($hook_suffix=="widgets.php") return; /* Il blocco seguente stampa il nonce usato dalle chiamate AJAX del plugin. Va emesso solo per chi puo' effettivamente usarle: altrimenti qualunque utente registrato lo leggerebbe dal sorgente di una pagina come profile.php. */ if(!current_user_can('edit_posts') And !current_user_can('admin_albo') And !current_user_can('editore_atti_albo') And !current_user_can('gest_atti_albo')) return;?> Totale '.($Oggetto==5?"Visualizzazioni":"Download").' Allegati '.albopc_get_Stat_Num_log($IdAtto,$Oggetto).' '; foreach ($righe as $riga) { if(property_exists($riga,'TitoloAllegato')) $TitoloAllegato=$riga->TitoloAllegato; else $TitoloAllegato=""; if(property_exists($riga,'Allegato')) $Allegato=$riga->Allegato; else $Allegato=""; $HtmlTesto.= ''; } $HtmlTesto.= '
'.__('Data','albo-pretorio-on-line').' '.__('Nome Allegato','albo-pretorio-on-line').' '.__('File','albo-pretorio-on-line').' '.($Oggetto==5?__('N° Visualizzazioni','albo-pretorio-on-line'):__('N° Download','albo-pretorio-on-line')).'
'.albopc_VisualizzaData($riga->Data).' '.$TitoloAllegato.' '.$Allegato.' '.$riga->Accessi.'
'; return $HtmlTesto; } /*TINY MCE Quote Button*/ function add_albo_button() { if ( current_user_can('edit_posts') && current_user_can('edit_pages') ){ $RuoliPuls=get_option('opt_AP_RuoliPuls'); $RuoliPl=array(); if($RuoliPuls){ $RuoliPl=explode(",",$RuoliPuls); } $RuoliPulsG=get_option('opt_AP_RuoliPulsGruppi'); $RuoliPlG=array(); if($RuoliPulsG){ $RuoliPlG=explode(",",$RuoliPulsG); } $RuoliPulsVA=get_option('opt_AP_RuoliPulsVisualizzaAtto'); $RuoliPlVA=array(); if($RuoliPulsVA){ $RuoliPlVA=explode(",",$RuoliPulsVA); } $MieiRuoli=wp_get_current_user()->roles; $Vis=FALSE; foreach($MieiRuoli as $MioRuolo){ if(in_array($MioRuolo,$RuoliPl)){ $Vis=TRUE; break; } } if($Vis){ add_filter('mce_external_plugins',array('AlboPretorio', 'add_albo_plugin')); add_filter('mce_buttons', array('AlboPretorio','register_albo_button')); } $Vis=FALSE; foreach($MieiRuoli as $MioRuolo){ if(in_array($MioRuolo,$RuoliPlG)){ $Vis=TRUE; break; } } if($Vis){ add_filter('mce_external_plugins',array('AlboPretorio', 'add_albo_plugin_group')); add_filter('mce_buttons', array('AlboPretorio','register_albo_button_group')); } $Vis=FALSE; foreach($MieiRuoli as $MioRuolo){ if(in_array($MioRuolo,$RuoliPlVA)){ $Vis=TRUE; break; } } if($Vis){ add_filter('mce_external_plugins',array('AlboPretorio', 'add_albo_plugin_visatto')); add_filter('mce_buttons', array('AlboPretorio','register_albo_button_visatto')); } } } static function register_albo_button($buttons) { array_push($buttons, "separator", "albo"); return $buttons; } static function add_albo_plugin($plugin_array) { $plugin_array['albo'] =Albo_URL.'/js/ButtonEditor.js'; return $plugin_array; } static function register_albo_button_group($buttons) { array_push($buttons, "separator", "albo_gruppo_atti"); return $buttons; } static function add_albo_plugin_group($plugin_array) { $plugin_array['albo_gruppo_atti'] =Albo_URL.'/js/ButtonEditorGroup.js'; return $plugin_array; } static function register_albo_button_visatto($buttons) { array_push($buttons, "separator", "albo_visatto"); return $buttons; } static function add_albo_plugin_visatto($plugin_array) { $plugin_array['albo_visatto'] =Albo_URL.'/js/ButtonEditorVisAtto.js'; return $plugin_array; } function CreaLog($Tipo,$IdOggetto,$IdAtto){ // echo $Tipo." - ".$IdOggetto; $HtmlTesto=''; switch ($Tipo){ case 1: $righe=albopc_get_all_Oggetto_log($Tipo,$IdOggetto); break; case 3: $righe=albopc_get_all_Oggetto_log($Tipo,0,$IdOggetto); break; case 5: case 6: return $this->CreaStatistiche($IdOggetto,$Tipo); break; } if ($Tipo!=5 or $Tipo!=6){ $HtmlTesto.='
'; } $HtmlTesto.=' '; $Operazione=""; foreach ($righe as $riga) { switch ($riga->TipoOperazione){ case 1: $Operazione=__('Inserimento','albo-pretorio-on-line'); break; case 2: $Operazione=__('Modifica','albo-pretorio-on-line'); break; case 3: $Operazione=__('Cancellazione','albo-pretorio-on-line'); break; case 4: $Operazione=__('Approvazione','albo-pretorio-on-line'); break; } $HtmlTesto.= ''; } $HtmlTesto.= '
'.__('Data','albo-pretorio-on-line').' '.__('Operazione','albo-pretorio-on-line').' '.__('Informazioni','albo-pretorio-on-line').'
'.albopc_VisualizzaData($riga->Data)." ".albopc_VisualizzaOra($riga->Data).' '.$Operazione.' '.stripslashes(albopc_removeCaratteriSpeciali($riga->Operazione)).'
'; return $HtmlTesto; } function add_menu(){ add_menu_page('Panoramica', __('Albo OnLine','albo-pretorio-on-line'), 'gest_atti_albo', 'Albo_Pretorio',array( 'AlboPretorio','show_menu'),Albo_URL."img/logo.png"); $atti_page=add_submenu_page( 'Albo_Pretorio', 'Atti', __('Atti','albo-pretorio-on-line'), 'gest_atti_albo', 'atti', array( 'AlboPretorio','show_menu')); $categorie_page=add_submenu_page( 'Albo_Pretorio', 'Categorie', __('Categorie','albo-pretorio-on-line'), 'gest_atti_albo', 'categorie', array( 'AlboPretorio', 'show_menu')); $enti=add_submenu_page( 'Albo_Pretorio', 'Enti', __('Enti','albo-pretorio-on-line'), 'editore_atti_albo', 'enti', array('AlboPretorio', 'show_menu')); $uo_page=add_submenu_page( 'Albo_Pretorio', 'Unità Organizzative', __('Unità Organizzative','albo-pretorio-on-line'), 'editore_atti_albo', 'unitao', array( 'AlboPretorio','show_menu')); $responsabili_page=add_submenu_page( 'Albo_Pretorio', 'Soggetti', __('Soggetti','albo-pretorio-on-line'), 'editore_atti_albo', 'soggetti', array( 'AlboPretorio','show_menu')); $tipifiles=add_submenu_page( 'Albo_Pretorio', 'Tipi di files', __('Tipi di Files','albo-pretorio-on-line'), 'admin_albo', 'tipifiles', array( 'AlboPretorio','show_menu')); $tipifiles=add_submenu_page( 'Albo_Pretorio', 'Tabelle', __('Tabelle','albo-pretorio-on-line'), 'admin_albo', 'tabelle', array( 'AlboPretorio','show_menu')); $parametri_page=add_submenu_page( 'Albo_Pretorio', 'Generale', __('Parametri','albo-pretorio-on-line'), 'admin_albo', 'configAlboP', array( 'AlboPretorio','show_menu')); $permessi=add_submenu_page( 'Albo_Pretorio', 'Permessi', __('Permessi','albo-pretorio-on-line'), 'admin_albo', 'permessiAlboP', array('AlboPretorio', 'show_menu')); $utility=add_submenu_page( 'Albo_Pretorio', 'Utility', __('Utility','albo-pretorio-on-line'), 'admin_albo', 'utilityAlboP', array('AlboPretorio', 'show_menu')); add_action( 'admin_head-'. $atti_page, array( 'AlboPretorio','albopc_head' )); add_action( "load-$atti_page", array('AlboPretorio', 'screen_option')); } static function screen_option() { if(!isset($_GET['action'])){ $args=array('label' => __('Atti per pagina','albo-pretorio-on-line'), 'default' => 25, 'option' => 'atti_per_page'); add_screen_option( 'per_page', $args ); } } function atti_set_option($status, $option, $value) { if ( 'atti_per_page' == $option ) return $value; } static function show_menu() { global $albopc_AP_OnLine; switch (sanitize_text_field(wp_unslash($_REQUEST['page'] ?? ''))){ case "Albo_Pretorio" : $albopc_AP_OnLine->ShowBacheca(); break; case "configAlboP" : $albopc_AP_OnLine->AP_config(); break; case "categorie" : // interfaccia per la gestione delle categorie include_once ( dirname (__FILE__) . '/admin/categorie.php' ); break; case "soggetti" : // interfaccia per la gestione dei soggetti include_once ( dirname (__FILE__) . '/admin/soggetti.php' ); break; case "tipifiles" : // interfaccia per la gestione dei tipi di files include_once ( dirname (__FILE__) . '/admin/tipidifiles.php' ); break; case "tabelle" : // interfaccia per la gestione dei tipi di files include_once ( dirname (__FILE__) . '/admin/tabelle.php' ); break; case "enti" : // interfaccia per la gestione degli enti include_once ( dirname (__FILE__) . '/admin/enti.php' ); break; case "atti" : // interfaccia per la gestione degli atti include_once ( dirname (__FILE__) . '/admin/atti.php' ); break; case "allegati" : // interfaccia per la gestione degli allegati include_once ( dirname (__FILE__) . '/admin/allegati.php' ); break; case "permessiAlboP": // interfaccia per la gestione dei permessi include_once ( dirname (__FILE__) . '/admin/permessi.php' ); break; case "utilityAlboP": // interfaccia per la gestione dei permessi include_once ( dirname (__FILE__) . '/admin/utility.php' ); break; case "unitao": // interfaccia per la gestione dei permessi include_once ( dirname (__FILE__) . '/admin/unitaorganizzative.php' ); break; } } function init() { if (is_admin()) return; wp_enqueue_script('jquery'); } ################################################################################ // ADMIN HEADER ################################################################################ static function albopc_head() { /* global $wp_db_version, $wp_dlm_root; ?> */ if(sanitize_text_field(wp_unslash($_GET['page'] ?? '')) == 'atti' And (isset($_GET['stato_atti']) And sanitize_text_field(wp_unslash($_GET['stato_atti'] ?? '')) == 'Correnti') And current_user_can('editore_atti_albo')){ ?> get_queried_object(); if(is_object($postObj) And ((isset($postObj->post_type) And $postObj->post_type=="avcp") Or (isset($postObj->post_content) And strpos($postObj->post_content,"[Albo")!== FALSE))){ echo " "; if(get_option('blog_public')==1) echo " "; else echo " "; $OldInterfaccia=get_option('opt_AP_OldInterfaccia'); $UploadCSSNI=get_option('opt_AP_UpCSSNewInterface'); if($OldInterfaccia!="Si" AND $UploadCSSNI!="Si"){ ?> "; } } function load_dependencies() { // Load backend libraries if ( is_admin() ) { require_once (dirname (__FILE__) . '/admin/admin.php'); } } function VisualizzaAtti($Parametri){ $albopc_ret=""; $Parametri=shortcode_atts(array( 'stato' => '-2', 'cat' => 0, 'filtri' => 'si', 'minfiltri' =>'si', 'per_page' =>'10' ), $Parametri,"Albo"); $OldInterfaccia=get_option('opt_AP_OldInterfaccia'); $BootstrapItalia= get_option('opt_AP_BootstrapItalia'); if(is_file(get_stylesheet_directory()."/plugins/albo-pretorio-on-line/admin/frontend.php")){ require_once ( get_stylesheet_directory()."/plugins/albo-pretorio-on-line/admin/frontend.php"); }else{ if($OldInterfaccia=="Si"){ require_once ( dirname (__FILE__) . '/admin/frontend.php' ); }elseif($BootstrapItalia=="Si"){ require_once ( dirname (__FILE__) . '/admin/frontend_new2.php' ); }else{ require_once ( dirname (__FILE__) . '/admin/frontend_new.php' ); } } return $albopc_ret; } function VisualizzaGruppiAtti($Parametri){ if(get_option('opt_AP_AutoShortcode')) return; $albopc_ret=""; $Parametri=shortcode_atts(array( 'titolo' => __('Atti Albo on line di riferimento','albo-pretorio-on-line'), 'meta' => '', 'valore' => '', ), $Parametri,"AlboGruppiAtti"); $OldInterfaccia=get_option('opt_AP_OldInterfaccia'); $BootstrapItalia= get_option('opt_AP_BootstrapItalia'); if(is_file(get_stylesheet_directory()."/plugins/albo-pretorio-on-line/admin/gruppiatti.php")){ require_once ( get_stylesheet_directory()."/plugins/albo-pretorio-on-line/admin/gruppiatti.php"); }else{ if($OldInterfaccia=="Si"){ require_once ( dirname (__FILE__) . '/admin/gruppiatti.php' ); }elseif($BootstrapItalia=="Si"){ require_once ( dirname (__FILE__) . '/admin/gruppiatti_new2.php' ); }else{ require_once ( dirname (__FILE__) . '/admin/gruppiatti_new.php' ); } } return albopc_Lista_AttiGruppo($Parametri); } function albopc_VisualizzaAtto($Parametri){ $albopc_ret=""; $Parametri=shortcode_atts(array( 'titolo' => __('Atto Albo on line','albo-pretorio-on-line'), 'numero' => '', 'anno' => '', ), $Parametri,"AlboAtto"); $OldInterfaccia=get_option('opt_AP_OldInterfaccia'); $BootstrapItalia= get_option('opt_AP_BootstrapItalia'); if(is_file(get_stylesheet_directory()."/plugins/albo-pretorio-on-line/admin/visatto.php")){ require_once ( get_stylesheet_directory()."/plugins/albo-pretorio-on-line/admin/visatto.php"); }else{ if($OldInterfaccia=="Si"){ require_once ( dirname (__FILE__) . '/admin/visatto.php' ); }elseif($BootstrapItalia=="Si"){ require_once ( dirname (__FILE__) . '/admin/visatto_new2.php' ); }else{ require_once ( dirname (__FILE__) . '/admin/visatto_new.php' ); } } return albopc_Visualizza_Atto($Parametri); } function ShowBacheca(){ global $wpdb; // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped -- dashboard/bacheca admin: output = markup fisso + label i18n del plugin + output di helper che generano markup; i valori dinamici da DB/utente e i value degli input sono escapati inline (esc_attr/esc_html). if (isset($_REQUEST['action']) And sanitize_text_field(wp_unslash($_REQUEST['action'] ?? '')) == "setta-anno"){ update_option('opt_AP_AnnoProgressivo',gmdate("Y") ); update_option('opt_AP_NumeroProgressivo',1 ); $_SERVER['REQUEST_URI'] = remove_query_arg(array('action'), isset($_SERVER['REQUEST_URI']) ? sanitize_text_field(wp_unslash($_SERVER['REQUEST_URI'])) : ''); } $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; $n_allegati = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->table_name_Allegati;"); $n_categorie = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->table_name_Categorie;"); $n_atti_oblio = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->table_name_Atti Where DataOblio < now() And Numero>0;"); $oblio=TRUE; if(!is_file(AP_BASE_DIR.get_option('opt_AP_FolderUpload')."/.htaccess")) $oblio=FALSE; if(!is_file(AP_BASE_DIR.get_option('opt_AP_FolderUpload')."/index.php")) $oblio=FALSE; if(!is_file(APHomePath."/robots.txt")) $oblio=FALSE; $Cartella=str_replace("\\","/",AP_BASE_DIR.get_option('opt_AP_FolderUpload')); //$permessi=albopc_get_fileperm($Cartella); $permProp=albopc_get_fileperm_Gruppo($Cartella,"Proprietario"); $StatoCartella=""; if($permProp==7 Or $permProp==6 Or $permProp==3 Or $permProp==2) $StatoCartella=$Cartella."
"; $Cartella=AlboBCK; //$permessi=albopc_get_fileperm($Cartella); $permProp=albopc_get_fileperm_Gruppo($Cartella,"Proprietario"); if($permProp==7 Or $permProp==6 Or $permProp==3 Or $permProp==2) $StatoCartella=$Cartella."
"; $Cartella=AlboBCK.'/BackupDatiAlbo'; //$permessi=albopc_get_fileperm($Cartella); $permProp=albopc_get_fileperm_Gruppo($Cartella,"Proprietario"); if($permProp==7 Or $permProp==6 Or $permProp==3 Or $permProp==2) $StatoCartella=$Cartella."
"; $Cartella=AlboBCK.'/OblioDatiAlbo'; //$permessi=albopc_get_fileperm($Cartella); $permProp=albopc_get_fileperm_Gruppo($Cartella,"Proprietario"); if($permProp==7 Or $permProp==6 Or $permProp==3 Or $permProp==2) $StatoCartella=$Cartella."
"; echo '

'.__('Versione','albo-pretorio-on-line').' '.$this->version.'

'.__('Plugin sviluppato da','albo-pretorio-on-line').' Scimone Ignazio
'.__('Fork mantenuto da','albo-pretorio-on-line').' Considera · info@considera.it

'.__('Sommario','albo-pretorio-on-line').'
'.__('Oggetto','albo-pretorio-on-line').' '.__('N.','albo-pretorio-on-line').' '.__('In Attesa di Pubblicazione','albo-pretorio-on-line').' '.__('Attivi','albo-pretorio-on-line').' '.__('Scaduti','albo-pretorio-on-line').' '.__('Da eliminare','albo-pretorio-on-line').'
'.__('Atti','albo-pretorio-on-line').' '.$n_atti.' '.$n_atti_dapub.' '.$n_atti_attivi.' '.$n_atti_storico.' '.$n_atti_oblio.'
'.__('Categorie','albo-pretorio-on-line').' '.$n_categorie.'
'.__('Allegati','albo-pretorio-on-line').' '.$n_allegati.'

'.__('Cruscotto','albo-pretorio-on-line').'

'; if (class_exists('ZipArchive')){ echo''; }else{ echo''; } echo ''; if ($oblio And albopc_VerificaRobots() And albopc_VerificaOblio()){ echo''; }else{ echo ''; } echo' '; if(strlen($StatoCartella)>0){ echo''; }else{ echo ''; } echo '
'.__('Ambito','albo-pretorio-on-line').' '.__('Stato','albo-pretorio-on-line').' '.__('Note','albo-pretorio-on-line').' '.__('Azioni','albo-pretorio-on-line').'
'.__('Librerie','albo-pretorio-on-line').' '.__('Senza questa libreria non puoi eseguire i Backup','albo-pretorio-on-line').'
'.__("Diritto all'oblio",'albo-pretorio-on-line').' '.__('Rigenera files','albo-pretorio-on-line').'
'.__('Cartelle esistenza e permessi','albo-pretorio-on-line').' '.$StatoCartella.' '; echo (!$oblio?''.__('Rigenera files','albo-pretorio-on-line').'':''); echo '

'.__('per maggiori dettagli eseguire la verifica della procedura presente nel menu Utility','albo-pretorio-on-line').'

'; if (albopc_get_num_categorie()==0) { echo'

'.__('Non risultano categorie codificate, se vuoi posso impostare le categorie di default','albo-pretorio-on-line').'   '.__('Crea Categorie di Default','albo-pretorio-on-line').'

'; } if (albopc_num_responsabili()==0) { echo'

'.sprintf(/* translators: i segnaposto sono valori dinamici (date, numeri, etichette) inseriti a runtime */ __('Non risultano %1$sResponsabili%2$s codificati, devi crearne almeno uno prima di iniziare a codificare gli Atti','albo-pretorio-on-line'),"","").'   '.__('Crea Soggetti','albo-pretorio-on-line').'

'; } if (albopc_num_unitao()==0) { echo'

'. sprintf(/* translators: i segnaposto sono valori dinamici (date, numeri, etichette) inseriti a runtime */ __("Non risulta nessuna %1\$sUnità Organizzativa%2\$s codificata, devi crearne almeno una prima di iniziare a codificare gli Atti","albo-pretorio-on-line"),"","").'   '. __("Crea Unità Organizzativa","albo-pretorio-on-line").'

'; } if(get_option('opt_AP_AnnoProgressivo')!=gmdate("Y")){ echo '
'; } // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped } function AP_config(){ $stato=""; // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped -- pagina admin Parametri/configurazione: output = markup fisso + label i18n del plugin + output di helper (dropdown/select) che generano markup; i value degli input e i valori dinamici da opzioni/DB sono escapati inline (esc_attr/esc_html). if (isset($_REQUEST['action']) And sanitize_text_field(wp_unslash($_REQUEST['action'] ?? '')) == "setta-anno"){ update_option('opt_AP_AnnoProgressivo',gmdate("Y") ); update_option('opt_AP_NumeroProgressivo',1 ); $_SERVER['REQUEST_URI'] = remove_query_arg(array('action'), isset($_SERVER['REQUEST_URI']) ? sanitize_text_field(wp_unslash($_SERVER['REQUEST_URI'])) : ''); } if (isset($_GET['update'])) if(sanitize_text_field(wp_unslash($_GET['update'] ?? '')) == 'true') $stato="

Impostazioni salvate.

"; else $stato="

".__("ATTENZIONE. Rilevato potenziale pericolo di attacco informatico, l'operazione è stata annullata","albo-pretorio-on-line")."

"; $current_user = wp_get_current_user(); $ente = stripslashes(albopc_get_ente_me()); $entedefault = get_option('opt_AP_DefaultEnte'); $nprog = get_option('opt_AP_NumeroProgressivo'); $nanno = get_option('opt_AP_AnnoProgressivo'); $visente = get_option('opt_AP_VisualizzaEnte'); $livelloTitoloEnte = get_option('opt_AP_LivelloTitoloEnte'); $livelloTitoloPagina = get_option('opt_AP_LivelloTitoloPagina'); $livelloTitoloFiltri = get_option('opt_AP_LivelloTitoloFiltri'); $colAnnullati = get_option('opt_AP_ColoreAnnullati'); $colPari = get_option('opt_AP_ColorePari'); $colDispari = get_option('opt_AP_ColoreDispari'); $LogOperazioni = get_option('opt_AP_LogOp'); $PaginaAttiCor = get_option('opt_AP_PAttiCor'); $PaginaAttiSto = get_option('opt_AP_PAttiSto'); $PaginaAtto = get_option('opt_AP_PAtto'); //$TempoOblio=get_option('opt_AP_GiorniOblio'); $RuoliPuls = get_option('opt_AP_RuoliPuls'); $RuoliPulsG = get_option('opt_AP_RuoliPulsGruppi'); $RuoliPulsVA = get_option('opt_AP_RuoliPulsVisualizzaAtto'); $OldInterfaccia = get_option('opt_AP_OldInterfaccia'); $UploadCSSNI = get_option('opt_AP_UpCSSNewInterface'); $BootstrapItalia = get_option('opt_AP_BootstrapItalia'); $AutoShortcode = get_option('opt_AP_AutoShortcode'); $Testi = json_decode(get_option('opt_AP_Testi'),TRUE); $IconaDocumenti = get_option('opt_AP_IconaDocumenti'); $RestApi = get_option('opt_AP_RestApi'); $StatoAllegati = get_option('opt_AP_Allegati'); if($RestApi=="Si"){ $ChkRestApi=" checked='checked' "; }else{ $ChkRestApi=""; } $RestApiUrlEst = get_option('opt_AP_RestApi_UrlEst'); if(!is_array($Testi)){ $Testi=array("NoResp"=>"", "CertPub"=>__("Si attesta l'avvenuta pubblicazione del documento all'albo pretorio sopra indicato per il quale non sono pervenute osservazioni",'albo-pretorio-on-line')); } $RuoliPl=array(); if($RuoliPuls){ $RuoliPl=explode(",",$RuoliPuls); } $RuoliPlG=array(); if($RuoliPulsG){ $RuoliPlG=explode(",",$RuoliPulsG); } $RuoliPlVA=array(); if($RuoliPulsVA){ $RuoliPlVA=explode(",",$RuoliPulsVA); } $FEColsOption=get_option('opt_AP_ColonneFE',array( "Data"=>0, "Ente"=>0, "Riferimento"=>0, "Oggetto"=>0, "Validita"=>0, "Categoria"=>0, "Note"=>0, "DataOblio"=>0)); if(!is_array($FEColsOption)){ $FEColsOption=json_decode($FEColsOption,TRUE); } $DefaultSoggetti=get_option('opt_AP_DefaultSoggetti',array( "RP"=>0, "RB"=>0, "AM"=>0)); if(!is_array($DefaultSoggetti)){ $DefaultSoggetti=json_decode($DefaultSoggetti,TRUE); } $LOStatoN=" checked='checked' "; if($LogOperazioni=="Si"){ $LOStatoS=" checked='checked' "; $LOStatoN=""; } $LogAccessi=get_option('opt_AP_LogAc'); $LOAccessiS=""; $LOAccessiN=" checked='checked' "; if($LogAccessi=="Si"){ $LOAccessiS=" checked='checked' "; $LOAccessiN=""; } $LogAccessi=get_option('opt_AP_LogAc'); if ($visente=="Si") $ve_selezionato='checked="checked"'; else $ve_selezionato=''; if (!$nanno){ $nanno=gmdate("Y"); } $dirUpload = stripslashes(get_option('opt_AP_FolderUpload')); if($OldInterfaccia=="Si"){ $OldInterfacciaS=" checked='checked' "; }else{ $OldInterfacciaS=""; } if($UploadCSSNI=="Si"){ $UploadCSSNIS=" checked='checked' "; }else{ $UploadCSSNIS=""; } if($BootstrapItalia=="Si"){ $BootstrapItalia=" checked='checked' "; }else{ $BootstrapItalia=""; } if(get_option( 'permalink_structure' )==""){ $BaseUrlRestApi=esc_url( home_url( '/' ) )."?rest_route=/alboonline/v1/"; }else{ $BaseUrlRestApi=esc_url( home_url( '/' ) )."wp-json/alboonline/v1/"; } if (get_option( 'opt_AP_FolderUploadMeseAnno' )=="") { $dirUploadMA="Disattivata"; } else { $dirUploadMA="Attivata"; } echo '

'.__('Parametri','albo-pretorio-on-line').'

'.$stato.'
'.albopc_get_dropdown_enti('defEnte',__('Ente','albo-pretorio-on-line'),'postform','',$entedefault).'
'; if(albopc_get_all_atti(0,0,0,0,'',0,0,"",0,0,TRUE,FALSE)==0) echo ''; else echo $nprog; echo ' / '.$nanno.'
'.AP_BASE_DIR.get_option('opt_AP_FolderUpload').'
'.$dirUploadMA.'
'.__('Selezionare questa opzione per mantenere la visualizzazione classica del FrontEnd.
Se si deseleziona l\'opzione verrà visualizzato il FrontEnd con layout in linea con le linee guida di','albo-pretorio-on-line').' design.italia.it
'.__('Selezionare questa opzione nel caso in cui si utilizza un tema sviluppato partendo dal Design KIT di design.italia.it verranno caricati i CSS ed i JS del Kit','albo-pretorio-on-line').'
'.__('Selezionare questa opzione nel caso in cui si utilizza un tema sviluppato partendo da Bootstrap Italia','albo-pretorio-on-line').'

Colori

Colonne Tabella


'.__('Dimensione max 256x256','albo-pretorio-on-line').'
'.__('Si','albo-pretorio-on-line').'
'.__('No','albo-pretorio-on-line').'
'.__('Si','albo-pretorio-on-line').'
'.__('No','albo-pretorio-on-line').'
'; global $wp_roles; $roles = $wp_roles->get_names(); foreach($roles as $KR=>$Role){ echo "$Role
"; } // Below code will print the all list of roles. // print_r($roles); // print_r(wp_get_current_user()->roles); echo '
'; global $wp_roles; $roles = $wp_roles->get_names(); foreach($roles as $KR=>$Role){ echo "$Role
"; } // Below code will print the all list of roles. // print_r($roles); // print_r(wp_get_current_user()->roles); echo '
'; global $wp_roles; $roles = $wp_roles->get_names(); foreach($roles as $KR=>$Role){ echo "$Role
"; } // Below code will print the all list of roles. // print_r($roles); // print_r(wp_get_current_user()->roles); echo '
'. albopc_get_dropdown_responsabili("resp_giu_am","resp_giu_am","ElencoSoggetti","",(isset($DefaultSoggetti["AM"])?$DefaultSoggetti["AM"]:0),array("SC","DR")) .'
'. albopc_get_dropdown_responsabili("resp_giu_rp","resp_giu_rp","ElencoSoggetti","",(isset($DefaultSoggetti["RP"])?$DefaultSoggetti["RP"]:0),"RP") .'
'. albopc_get_dropdown_responsabili("resp_giu_rb","resp_giu_rb","ElencoSoggetti","",(isset($DefaultSoggetti["RB"])?$DefaultSoggetti["RB"]:0),"RB") .'
'.__("Selezionare questa opzione per abilitare le Rest Api per l'Albo",'albo-pretorio-on-line').'

'.__("Inserire l'Url del sito client che in cui viene interrogato l'Albo, per abilitare la visualizzazione degli allegati",'albo-pretorio-on-line').'
'.$BaseUrlRestApi.'categorie
'.$BaseUrlRestApi.'enti
'.$BaseUrlRestApi.'atto/'.__('Numero_atto/Anno_Atto oppure','albo-pretorio-on-line').'
'.$BaseUrlRestApi.'atto/ID_Atto
es. '.$BaseUrlRestApi.'atto/1/2018 '.__("verranno restituiti i dati dell'atto n. 1 del 2018",'albo-pretorio-on-line').'
     '.$BaseUrlRestApi.'atto/305 '.__("verranno restituiti i dati dell'atto con ",'albo-pretorio-on-line').'ID n° 305
'.$BaseUrlRestApi.'atti?'.__('parametro1=valore1&parametro2=valore2 ...','albo-pretorio-on-line').'
es. '.$BaseUrlRestApi.'atti?stato=1 '.__('verranno restituiti i dati di tutti gli atti correnti','albo-pretorio-on-line').'
'.__('Parametro','albo-pretorio-on-line').' '.__('Valore di Default','albo-pretorio-on-line').' '.__('Valori ammissibili','albo-pretorio-on-line').'
'.__('stato','albo-pretorio-on-line').' 1 '.__('Numero 1 (atti correnti) o 2 (atti storico)','albo-pretorio-on-line').'
per_page 10 -1 '.__('per tutti gli atti dello stato','albo-pretorio-on-line').'Numero atti per pagina > 0
page 1 '.__('Numero pagina','albo-pretorio-on-line').' > 0
categorie 0 '.__('(Nessun filtro sulle categorie)','albo-pretorio-on-line').' '.__('Elenco ID delle Categorie codificate separate da','albo-pretorio-on-line').' , es. 1,5,9
ente -1 '.__('ente principale','albo-pretorio-on-line').' '.__('Ente degli atti','albo-pretorio-on-line').'
numero 0 '.__('(Nessun filtro sul numero)','albo-pretorio-on-line').' '.__('Numero atto','albo-pretorio-on-line').'
anno 0 '.__("(Nessun filtro sull'anno)",'albo-pretorio-on-line').' '.__('Anno atto','albo-pretorio-on-line').'
oggetto \'\' '.__("(Nessun filtro sull'oggetto)",'albo-pretorio-on-line').' '.__('Oggetto atto','albo-pretorio-on-line').'
riferimento \'\' '.__('(Nessun filtro sul riferimento)','albo-pretorio-on-line').' '.__('Riferimento atti','albo-pretorio-on-line').'
dadata 0 '.__('(Nessun filtro sulla data di inizio)','albo-pretorio-on-line').' '.__('Data inizio intervallo di filtro in formato gg/mm/aaaa','albo-pretorio-on-line').'
adata 0 '.__('(Nessun filtro sulla data di fine)','albo-pretorio-on-line').' '.__('Data fine intervallo di filtro in formato gg/mm/aaaa','albo-pretorio-on-line').'

'.__('Impostazione dello stato dei link degli Allegati nel Back-End','albo-pretorio-on-line').'


'.__("Selezionare questa opzione se si vuole inserire nella visualizzazione dell'atto il link per la Visualizzazione ed il link di Scaricamento degli Allegati",'albo-pretorio-on-line').'

'.__("Selezionare questa opzione se si vuole inserire nella visualizzazione dell'atto SOLO il link per la Visualizzazione degli Allegati",'albo-pretorio-on-line').'

'.__("Selezionare questa opzione se si vuole inserire nella visualizzazione dell'atto SOLO il link per il Download degli Allegati",'albo-pretorio-on-line').'

'; if(get_option('opt_AP_AnnoProgressivo')!=gmdate("Y")){ echo '
'; } // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped } function define_tables() { global $wpdb,$table_prefix; // add database pointer $wpdb->table_name_Atti = $table_prefix . "albopretorio_atti"; $wpdb->table_name_Attimeta = $table_prefix . "albopretorio_attimeta"; $wpdb->table_name_Categorie = $table_prefix . "albopretorio_categorie"; $wpdb->table_name_Allegati = $table_prefix . "albopretorio_allegati"; $wpdb->table_name_Log=$table_prefix . "albopretorio_log"; $wpdb->table_name_RespProc=$table_prefix . "albopretorio_resprocedura"; $wpdb->table_name_Enti=$table_prefix . "albopretorio_enti"; $wpdb->table_name_UO=$table_prefix . "albopretorio_unitaorganizzative"; } function activate() { global $wpdb; if ( ! function_exists( 'get_plugins' ) ) require_once( ABSPATH . 'wp-admin/includes/plugin.php' ); /** * Impostazione Versione * */ $PData = get_plugin_data( __FILE__ ); $PVer = $PData['Version']; update_option('opt_AP_Versione', $PVer); delete_option( 'alboonline-notice-dismissed' ); /** * Impostazione Permessi Cartelle di servizio e files * */ $Dir=str_replace("\\","/",WP_CONTENT_DIR.'/AlboOnLine'); if(!is_dir($Dir)){ wp_mkdir_p($Dir); } $Dir=str_replace("\\","/",WP_CONTENT_DIR.'/AlboOnLine/BackupDatiAlbo'); if(!is_dir($Dir)){ wp_mkdir_p($Dir); } $Dir=str_replace("\\","/",WP_CONTENT_DIR.'/AlboOnLine/OblioDatiAlbo'); if(!is_dir($Dir)){ wp_mkdir_p($Dir); } /** * Impostazione Ruoli * */ $role = get_role( 'administrator' ); /* Aggiunta dei ruoli all'Amministratore */ if ( !empty( $role ) ) { $role->add_cap( 'admin_albo' ); $role->add_cap( 'editore_atti_albo' ); $role->add_cap( 'gest_atti_albo' ); } /* Creazione ruolo di Amministratore */ $result=add_role( 'amministratore_albo', 'Amministratore Albo', array( 'read' => true, 'admin_albo' => true, 'editore_atti_albo' => true, 'gest_atti_albo' => true)); if ( null === $result ) { $role = get_role( 'amministratore_albo' ); if ( !empty( $role ) ) { $role->add_cap( 'admin_albo' ); $role->add_cap( 'editore_atti_albo' ); $role->add_cap( 'gest_atti_albo' ); } } /* Creazione del ruolo di Editore */ $result=add_role( 'editore_albo', 'Editore Albo', array('read' => true, 'editore_atti_albo' => true, 'gest_atti_albo' => true)); if ( null === $result ) { $role = get_role( 'editore_albo' ); if ( !empty( $role ) ) { $role->add_cap( 'editore_atti_albo' ); $role->add_cap( 'gest_atti_albo' ); } } /* Creazione del ruolo di Redattore */ $result=add_role( 'gestore_albo', 'Redattore Albo', array('read' => true, 'gest_atti_albo' => true)); if ( null === $result ) { $role = get_role( 'gestore_albo' ); if ( !empty( $role ) ) { $role->add_cap( 'gest_atti_albo' ); } } /** * Creazione Opzioni * */ //Impostazione Opzioni Plugin if(get_option('opt_AP_DefaultSoggetti') == '' || !get_option('opt_AP_DefaultSoggetti')){ $DefaultSoggetti=array("RP"=>0,"RB"=>0,"AM"=>0); add_option('opt_AP_DefaultSoggetti',json_encode($opt_AP_DefaultSoggetti)); } if(get_option('opt_AP_ColonneFE') == '' || !get_option('opt_AP_ColonneFE')){ $FEColsOption=array("Ente"=>0,"Riferimento"=>0,"Oggetto"=>1, "Validita"=>1, "Categoria"=>1,"Note"=>0,"RespProc"=>0, "DataOblio"=>0); add_option('opt_AP_ColonneFE',json_encode($FEColsOption)); } if(get_option('opt_AP_Versione') == '' || !get_option('opt_AP_Versione')){ add_option('opt_AP_Versione', '0'); } if(get_option('opt_AP_RestApi') == '' || !get_option('opt_AP_RestApi')){ add_option('opt_AP_RestApi', 'No'); } if(!get_option('opt_AP_RestApi_UrlEst')){ add_option('opt_AP_RestApi_UrlEst', ''); } if (!get_option( 'opt_AP_FolderUploadMeseAnno' )) { add_option('opt_AP_FolderUploadMeseAnno', ''); } if (!get_option( 'opt_AP_Allegati' )) { add_option('opt_AP_Allegati', 'all'); } if(get_option('opt_AP_TipidiFiles') == '' || !get_option('opt_AP_TipidiFiles')){ $TipidiFiles=array(); $TipidiFiles["ndf"]= array("Descrizione"=>__('Tipo file non definito','albo-pretorio-on-line'),"Icona"=>Albo_URL."img/notipofile.png","Verifica"=>""); $TipidiFiles["pdf"]= array("Descrizione"=>__('File Pdf','albo-pretorio-on-line'),"Icona"=>Albo_URL."img/Pdf.png","Verifica"=>""); $TipidiFiles["p7m"]= array("Descrizione"=>__('File firmato digitalmente','albo-pretorio-on-line'),"Icona"=>Albo_URL."img/firmato.png","Verifica"=>htmlspecialchars("".__('Verifica firma con servizio fornito da Consiglio Nazionale del Notariato','albo-pretorio-on-line')."")); add_option('opt_AP_TipidiFiles', $TipidiFiles); } // Migrazione: riallinea le URL delle icone dei Tipi di Files alla cartella // corrente del plugin (utile se lo slug/cartella e' cambiato dopo un update). $TdF = get_option('opt_AP_TipidiFiles'); if (is_array($TdF)) { $TdF_mod = false; foreach ($TdF as $TdF_k => $TdF_v) { if (!empty($TdF_v['Icona'])) { $TdF_new = preg_replace('#^.*/plugins/[^/]+/#', Albo_URL, $TdF_v['Icona']); if ($TdF_new !== null && $TdF_new !== $TdF_v['Icona']) { $TdF[$TdF_k]['Icona'] = $TdF_new; $TdF_mod = true; } } } if ($TdF_mod) { update_option('opt_AP_TipidiFiles', $TdF); } } if(get_option('opt_AP_AnnoProgressivo') == '' || !get_option('opt_AP_AnnoProgressivo')){ add_option('opt_AP_AnnoProgressivo', ''.gmdate("Y").''); } if(get_option('opt_AP_NumeroProgressivo') == '' || !get_option('opt_AP_NumeroProgressivo')){ add_option('opt_AP_NumeroProgressivo', '1'); } if(get_option('opt_AP_FolderUpload') == '' || !get_option('opt_AP_FolderUpload') ){ if(!is_dir(AP_BASE_DIR.'AllegatiAttiAlboPretorio')){ wp_mkdir_p(AP_BASE_DIR.'AllegatiAttiAlboPretorio'); } add_option('opt_AP_FolderUpload', 'AllegatiAttiAlboPretorio'); }else{ if (get_option('opt_AP_FolderUpload')!='AllegatiAttiAlboPretorio') update_option('opt_AP_FolderUpload', 'AllegatiAttiAlboPretorio'); } albopc_NoIndexNoDirectLink(AP_BASE_DIR.'AllegatiAttiAlboPretorio'); if(get_option('opt_AP_VisualizzaEnte') == '' || !get_option('opt_AP_VisualizzaEnte')){ add_option('opt_AP_VisualizzaEnte', 'Si'); } if(get_option('opt_AP_LivelloTitoloEnte') == '' || !get_option('opt_AP_LivelloTitoloEnte')){ add_option('opt_AP_LivelloTitoloEnte', 'h2'); } if(get_option('opt_AP_LivelloTitoloPagina') == '' || !get_option('opt_AP_LivelloTitoloPagina')){ add_option('opt_AP_LivelloTitoloPagina', 'h3'); } if(get_option('opt_AP_LivelloTitoloFiltri') == '' || !get_option('opt_AP_LivelloTitoloFiltri')){ add_option('opt_AP_LivelloTitoloFiltri', 'h4'); } if(get_option('opt_AP_ColoreAnnullati') == '' || !get_option('opt_AP_ColoreAnnullati')){ add_option('opt_AP_ColoreAnnullati', '#FFCFBD'); } if(get_option('opt_AP_ColorePari') == '' || !get_option('opt_AP_ColorePari')){ add_option('opt_AP_ColorePari', '#ECECEC'); } if(get_option('opt_AP_ColoreDispari') == '' || !get_option('opt_AP_ColoreDispari')){ add_option('opt_AP_ColoreDispari', '#FFF'); } if(get_option('opt_AP_LogOp') == '' || !get_option('opt_AP_LogOp')){ add_option('opt_AP_LogOp', 'Si'); } if(get_option('opt_AP_LogAc') == '' || !get_option('opt_AP_LogAc')){ add_option('opt_AP_LogAc', 'Si'); } if(get_option('opt_AP_GiorniOblio') == '' || !get_option('opt_AP_GiorniOblio')){ add_option('opt_AP_GiorniOblio', '1825'); } if(get_option('opt_AP_PAttiCor') == '' || !get_option('opt_AP_PAttiCor')){ add_option('opt_AP_PAttiCor',1); } if(get_option('opt_AP_PAttiSto') == '' || !get_option('opt_AP_PAttiSto')){ add_option('opt_AP_PAttiSto',1); } if(get_option('opt_AP_PAtto') == '' || !get_option('opt_AP_PAtto')){ add_option('opt_AP_PAtto',1); } if(get_option('opt_AP_RuoliPuls') == '' || !get_option('opt_AP_RuoliPuls')){ add_option('opt_AP_RuoliPuls',"administrator,editor,author,amministratore_albo"); } if(get_option('opt_AP_RuoliPulsGruppi') == '' || !get_option('opt_AP_RuoliPulsGruppi')){ add_option('opt_AP_RuoliPulsGruppi',"administrator,editor,author,amministratore_albo"); } if(get_option('opt_AP_RuoliPulsVisualizzaAtto') == '' || !get_option('opt_AP_RuoliPulsVisualizzaAtto')){ add_option('opt_AP_RuoliPulsVisualizzaAtto',"administrator,editor,author,amministratore_albo"); } if(get_option('opt_AP_AutoShortcode') == '' || !get_option('opt_AP_AutoShortcode')){ add_option('opt_AP_AutoShortcode', '1'); } if(get_option('opt_AP_OldInterfaccia') == '' || !get_option('opt_AP_OldInterfaccia')){ add_option('opt_AP_OldInterfaccia', 'Si'); } if(get_option('opt_AP_UpCSSNewInterface') == '' || !get_option('opt_AP_UpCSSNewInterface')){ add_option('opt_AP_UpCSSNewInterface', 'Si'); } if(get_option('opt_AP_BootstrapItalia') == '' || !get_option('opt_AP_BootstrapItalia')){ add_option('opt_AP_BootstrapItalia', 'No'); } if(get_option('opt_AP_TabResp') == '' || !get_option('opt_AP_TabResp')){ $Default='[{"ID":"RP","Funzione":"Responsabile Procedimento","Display":"Si","StaCert":"No"},{"ID":"OP","Funzione":"Gestore procedura","Display":"Si","StaCert":"No"},{"ID":"SC","Funzione":"Segretario Comunale","Display":"No","StaCert":"No"},{"ID":"RB","Funzione":"Responsabile Pubblicazione","Display":"No","StaCert":"No"},{"ID":"DR","Funzione":"Direttore dei Servizi Generali e Ammistrativi","Display":"No","StaCert":"No"}]'; update_option('opt_AP_TabResp',$Default ); } /** * Eliminazione Opzioni * */ delete_option('opt_AP_EffettiTesto'); delete_option('opt_AP_EffettiCSS3'); delete_option( 'opt_AP_stileTableFE' ); albopc_CreaTabella($wpdb->table_name_Atti); albopc_CreaTabella($wpdb->table_name_Categorie); albopc_CreaTabella($wpdb->table_name_Allegati); albopc_CreaTabella($wpdb->table_name_Log); albopc_CreaTabella($wpdb->table_name_RespProc); albopc_CreaTabella($wpdb->table_name_Enti); albopc_CreaTabella($wpdb->table_name_Attimeta); albopc_CreaTabella($wpdb->table_name_UO); /************************************************************************************* ** Area riservata per l'aggiunta di nuovi campi in una delle tabelle dell' albo ****** *************************************************************************************/ if(albopc_get_ente_me() == '' || !albopc_get_ente(0)){ albopc_create_ente_me(); } if (!albopc_existFieldInTable($wpdb->table_name_RespProc, "Funzione")){ albopc_AggiungiCampoTabella($wpdb->table_name_RespProc, "Funzione", " CHAR(8) DEFAULT 'RP'"); } if (!albopc_existFieldInTable($wpdb->table_name_Allegati, "TipoFile")){ albopc_AggiungiCampoTabella($wpdb->table_name_Allegati, "TipoFile", " VARCHAR(6) DEFAULT ''"); } if (!albopc_existFieldInTable($wpdb->table_name_Atti, "Soggetti")){ albopc_AggiungiCampoTabella($wpdb->table_name_Atti, "Soggetti", " VARCHAR(100) NOT NULL"); } if (!albopc_existFieldInTable($wpdb->table_name_Atti, "RespProc")){ albopc_AggiungiCampoTabella($wpdb->table_name_Atti, "RespProc", " INT NOT NULL"); } if (!albopc_existFieldInTable($wpdb->table_name_Atti, "DataOblio")){ albopc_AggiungiCampoTabella($wpdb->table_name_Atti, "DataOblio", " date NOT NULL DEFAULT '0000-00-00'"); albopc_SetDefaultDataScadenza(); } if (!albopc_existFieldInTable($wpdb->table_name_Atti, "MotivoAnnullamento")){ albopc_AggiungiCampoTabella($wpdb->table_name_Atti, "MotivoAnnullamento", " varchar(100) default ''"); } if (!albopc_existFieldInTable($wpdb->table_name_Atti, "Ente")){ albopc_AggiungiCampoTabella($wpdb->table_name_Atti, "Ente", " INT NOT NULL default 0"); } if (!albopc_existFieldInTable($wpdb->table_name_Atti, "IdUnitaOrganizzativa")){ albopc_AggiungiCampoTabella($wpdb->table_name_Atti, "IdUnitaOrganizzativa", " INT NOT NULL default 0"); } if (!albopc_existFieldInTable($wpdb->table_name_Atti, "Richiedente")){ albopc_AggiungiCampoTabella($wpdb->table_name_Atti, "Richiedente", " varchar(100) NOT NULL default ''"); } if (!albopc_existFieldInTable($wpdb->table_name_Allegati, "DocIntegrale")){ albopc_AggiungiCampoTabella($wpdb->table_name_Allegati, "DocIntegrale", " tinyint(1) NOT NULL DEFAULT '1'"); } if (!albopc_existFieldInTable($wpdb->table_name_Allegati, "Impronta")){ albopc_AggiungiCampoTabella($wpdb->table_name_Allegati, "Impronta", " CHAR(64) NOT NULL"); } if (!albopc_existFieldInTable($wpdb->table_name_Allegati, "Natura")){ albopc_AggiungiCampoTabella($wpdb->table_name_Allegati, "Natura", " CHAR(1) NOT NULL default 'A'"); } if (!albopc_existFieldInTable($wpdb->table_name_Allegati, "Note")){ albopc_AggiungiCampoTabella($wpdb->table_name_Allegati, "Note", " varchar(255) default ''"); } if (strtolower(albopc_typeFieldInTable($wpdb->table_name_Atti,"Riferimento"))!="varchar(255)"){ albopc_ModificaTipoCampo($wpdb->table_name_Atti, "Riferimento", "varchar(255)"); } if (strtolower(albopc_typeFieldInTable($wpdb->table_name_Atti,"Oggetto"))!="text"){ albopc_ModificaTipoCampo($wpdb->table_name_Atti, "Oggetto", "TEXT"); } if (strtolower(albopc_typeFieldInTable($wpdb->table_name_Atti,"MotivoAnnullamento"))!="varchar(255)"){ albopc_ModificaTipoCampo($wpdb->table_name_Atti, "MotivoAnnullamento", "varchar(255)"); } if (strtolower(albopc_typeFieldInTable($wpdb->table_name_Atti,"Informazioni"))!="text"){ albopc_ModificaTipoCampo($wpdb->table_name_Atti, "Informazioni", "TEXT"); } if (strtolower(albopc_typeFieldInTable($wpdb->table_name_Atti,"Riferimento"))!="text"){ albopc_ModificaTipoCampo($wpdb->table_name_Atti, "Riferimento", "TEXT"); } if (strtolower(albopc_typeFieldInTable($wpdb->table_name_Atti,"MotivoAnnullamento"))!="text"){ albopc_ModificaTipoCampo($wpdb->table_name_Atti, "MotivoAnnullamento", "TEXT"); } // albopc_ModificaParametriCampo($Tabella, $Campo, $Tipo $Parametro) $par=albopc_EstraiParametriCampo($wpdb->table_name_Atti,"Riferimento"); if(strtolower($par["Null"])=="yes") albopc_ModificaParametriCampo($wpdb->table_name_Atti, "Riferimento",$par["Type"] ,"NOT NULL"); $par=albopc_EstraiParametriCampo($wpdb->table_name_Atti,"Oggetto"); if(strtolower($par["Null"])=="yes") albopc_ModificaParametriCampo($wpdb->table_name_Atti, "Oggetto",$par["Type"] ,"NOT NULL"); albopc_manutenzioneLogVisualizzazione(); } function deactivate() { if ( ! current_user_can( 'activate_plugins' ) ) return; $plugin = isset( $_REQUEST['plugin'] ) ? sanitize_text_field(wp_unslash($_REQUEST['plugin'] ?? '')) : ''; check_admin_referer( "deactivate-plugin_{$plugin}" ); flush_rewrite_rules(); remove_shortcode('Albo'); } function update_AlboPretorio_settings(){ if(isset($_POST['AlboPretorio_submit_button']) And sanitize_text_field(wp_unslash($_POST['AlboPretorio_submit_button'] ?? '')) == __('Salva Modifiche','albo-pretorio-on-line')){ if (!current_user_can('admin_albo')) { wp_die(esc_html__("Non hai i permessi per modificare la configurazione dell'Albo","albo-pretorio-on-line")); } if (!isset($_POST['confAP'])) { wp_die(esc_html__("ATTENZIONE. Rilevato potenziale pericolo di attacco informatico, l'operazione è stata annullata","albo-pretorio-on-line")); } if (!wp_verify_nonce(sanitize_text_field(wp_unslash($_POST['confAP'] ?? '')),'configurazionealbo')){ wp_die(esc_html__("ATTENZIONE. Rilevato potenziale pericolo di attacco informatico, l'operazione è stata annullata","albo-pretorio-on-line")); } albopc_set_ente_me(sanitize_text_field(wp_unslash($_POST['c_Ente'] ?? ''))); if (isset($_POST['c_VEnte']) And sanitize_text_field(wp_unslash($_POST['c_VEnte'] ?? '')) == 'Si') update_option('opt_AP_VisualizzaEnte','Si' ); else update_option('opt_AP_VisualizzaEnte','No' ); if (isset($_POST['defEnte'])) update_option('opt_AP_DefaultEnte',sanitize_text_field(wp_unslash($_POST['defEnte'] ?? '')) ); else update_option('opt_AP_DefaultEnte',0 ); if (isset($_POST['progressivo'])) update_option('opt_AP_NumeroProgressivo',(isset($_POST['progressivo'])?(int)$_POST['progressivo']:0) ); if(isset($_POST['RuoliPuls'])){ $StRuoli=implode(",",isset($_POST['RuoliPuls'])?array_map('sanitize_text_field',wp_unslash($_POST['RuoliPuls'])):array()); update_option('opt_AP_RuoliPuls',$StRuoli); } if(isset($_POST['RuoliPulsG'])){ $StRuoliG=implode(",",isset($_POST['RuoliPulsG'])?array_map('sanitize_text_field',wp_unslash($_POST['RuoliPulsG'])):array()); update_option('opt_AP_RuoliPulsGruppi',$StRuoliG); } if(isset($_POST['RuoliPulsVA'])){ $StRuoliVA=implode(",",isset($_POST['RuoliPulsVA'])?array_map('sanitize_text_field',wp_unslash($_POST['RuoliPulsVA'])):array()); update_option('opt_AP_RuoliPulsVisualizzaAtto',$StRuoliVA); } update_option('opt_AP_Ente',sanitize_text_field(wp_unslash($_POST['c_Ente'] ?? ''))); update_option('opt_AP_AnnoProgressivo',sanitize_text_field(wp_unslash($_POST['c_AnnoProgressivo'] ?? '')) ); update_option('opt_AP_LivelloTitoloPagina',sanitize_text_field(wp_unslash($_POST['c_LTP'] ?? '')) ); update_option('opt_AP_LivelloTitoloEnte',sanitize_text_field(wp_unslash($_POST['c_LTE'] ?? '')) ); update_option('opt_AP_LivelloTitoloFiltri',sanitize_text_field(wp_unslash($_POST['c_LTF'] ?? '')) ); update_option('opt_AP_ColoreAnnullati',sanitize_text_field(wp_unslash($_POST['color'] ?? '')) ); update_option('opt_AP_ColorePari',sanitize_text_field(wp_unslash($_POST['colorp'] ?? '')) ); update_option('opt_AP_ColoreDispari',sanitize_text_field(wp_unslash($_POST['colord'] ?? '')) ); update_option('opt_AP_LogOp', sanitize_text_field(wp_unslash($_POST['LogOperazioni'] ?? ''))); update_option('opt_AP_LogAc', sanitize_text_field(wp_unslash($_POST['LogAccessi'] ?? ''))); update_option('opt_AP_PAttiCor', sanitize_text_field(wp_unslash($_POST['P_AttiCor'] ?? ''))); update_option('opt_AP_PAttiSto', sanitize_text_field(wp_unslash($_POST['P_AttiSto'] ?? ''))); update_option('opt_AP_PAtto', sanitize_text_field(wp_unslash($_POST['P_Atto'] ?? ''))); update_option('opt_AP_Allegati', sanitize_text_field(wp_unslash($_POST['allegati'] ?? ''))); update_option('opt_AP_AutoShortcode',(isset($_POST['AutoShortCode'])?sanitize_text_field(wp_unslash($_POST['AutoShortCode'] ?? '')):0)); update_option('opt_AP_OldInterfaccia',(isset($_POST['visoldstyle'])?sanitize_text_field(wp_unslash($_POST['visoldstyle'] ?? '')):0)); update_option('opt_AP_UpCSSNewInterface',(isset($_POST['uploadCSSNI'])?sanitize_text_field(wp_unslash($_POST['uploadCSSNI'] ?? '')):0)); update_option('opt_AP_BootstrapItalia',(isset($_POST['BootstrapItalia'])?sanitize_text_field(wp_unslash($_POST['BootstrapItalia'] ?? '')):0)); $FEColsOption=array("Data"=>(isset($_POST['Data'])?1:0), "Ente"=>(isset($_POST['Ente'])?1:0), "Riferimento"=>(isset($_POST['Riferimento'])?1:0), "Oggetto"=>(isset($_POST['Oggetto'])?1:0), "Validita"=>(isset($_POST['Validita'])?1:0), "Categoria"=>(isset($_POST['Categoria'])?1:0), "Note"=>(isset($_POST['Note'])?1:0), "DataOblio"=>(isset($_POST['DataOblio'])?1:0) ); update_option('opt_AP_ColonneFE', json_encode($FEColsOption)); $Testi=array("NoResp"=> filter_input(INPUT_POST,"NoResp"), "CertPub"=>filter_input(INPUT_POST,"CertPub")); update_option('opt_AP_Testi', json_encode($Testi)); update_option('opt_AP_IconaDocumenti', filter_input(INPUT_POST,"imgDocumenti")); $DefaultSoggetti=array("AM"=>(isset($_POST['resp_giu_am'])?sanitize_text_field(wp_unslash($_POST['resp_giu_am'] ?? '')):0), "RP"=>(isset($_POST['resp_giu_rp'])?sanitize_text_field(wp_unslash($_POST['resp_giu_rp'] ?? '')):0), "RB"=>(isset($_POST['resp_giu_rb'])?sanitize_text_field(wp_unslash($_POST['resp_giu_rb'] ?? '')):0)); update_option('opt_AP_DefaultSoggetti', json_encode($DefaultSoggetti)); if(null !== get_option('opt_AP_RestApi')) $OldRestApi= get_option('opt_AP_RestApi'); else $OldRestApi=NULL; if(isset($_POST['rest_api'])){ update_option('opt_AP_RestApi', sanitize_text_field(wp_unslash($_POST['rest_api'] ?? ''))); if(null !== get_option('opt_AP_RestApi_UrlEst')) $OldUrlEstRestApi= get_option('opt_AP_RestApi_UrlEst'); else $OldUrlEstRestApi=""; update_option('opt_AP_RestApi_UrlEst', sanitize_text_field(wp_unslash($_POST['rest_api_urlest'] ?? ''))); if(sanitize_text_field(wp_unslash($_POST['rest_api_urlest'] ?? ''))!=$OldUrlEstRestApi || sanitize_text_field(wp_unslash($_POST['rest_api'] ?? ''))!=$OldRestApi){ albopc_NoIndexNoDirectLink(AP_BASE_DIR.'AllegatiAttiAlboPretorio'); } }else{ update_option('opt_AP_RestApi', ""); } header('Location: '.get_bloginfo('wpurl').'/wp-admin/admin.php?page=configAlboP&update=true'); exit; } } } global $albopc_AP_OnLine; $albopc_AP_OnLine = new AlboPretorio(); } ?>