<?php include_once(__DIR__."/../../core.php"); function add_storico_impianti($idimpianto,$descrizione){ global $dbo; $dbo->query("INSERT INTO zz_log_installazioni( idimpianto, idutente,data_log,username,descrizione ) VALUES( \"".$idimpianto."\", \"".$_SESSION['idutente']."\",NOW(),\"".$_SESSION['username']."\",\"".$descrizione."\" )"); } /** * dir = cartella dove pescare i file .ini * id_list = componenti già applicati */ function get_componenti( $dir, $id_list='' ){ //lettura dei files della cartella dove risiede il file con lo script $file_trovati = array(); $componenti_trovati = array(); $cmp = array(); if ($id_list=='0' || $id_list==''){ $gia_installati = array(); }else{ $gia_installati = array(); $gia_installati = explode(',',$id_list); } if (is_dir($dir)) { if ($dh = opendir($dir)) { while( ($file = readdir($dh)) !== false ){ if( $file<>"." && $file<>".." ){ $ext = estensione_del_file($file); if ($ext == "ini") { // vengono accettati solo i files con estensione ini $file_trovati[] = $file; $ini_array = parse_ini_file( $dir.$file, true ); $componenti_trovati[] = $ini_array['Nome']['valore']; } } } closedir($dh); } } //Ordino alfabeticamente il <select> array_multisort( $componenti_trovati, $file_trovati ); //visualizzazione di quanto è stato letto if( is_array($file_trovati) && sizeof($file_trovati) > 0 ){ //controllo se ho già aggiunto tutti i componenti if( sizeof($file_trovati) > sizeof($gia_installati) ){ //per tutti i componenti di possibile installazione for( $i=0; $i<sizeof($file_trovati); $i++ ){ $found = false; // controllo che non siano già stati installati for( $j=0; $j<sizeof($gia_installati); $j++ ){ if( $file_trovati[$i] == $gia_installati[$j] ){ $found = true; $j = sizeof($gia_installati); } } if( !$found ) array_push( $cmp, array($file_trovati[$i], $componenti_trovati[$i]) ); } } } return $cmp; } /** * Legge il nome del componente del file .ini */ function get_nome_componente( $ini ){ global $docroot; $ini_array = parse_ini_file( $docroot."/files/my_impianti/".$ini, true ); return $ini_array['Nome']['valore']; } /** * */ function write_ini_file($assoc_arr, $path, $has_sections=FALSE) { $content = ""; if ($has_sections) { foreach ($assoc_arr as $key=>$elem) { $content .= "[".$key."]\n"; foreach ($elem as $key2=>$elem2) { if(is_array($elem2)){ for($i=0;$i<count($elem2);$i++){ //$content .= $key2."[] = \"".$elem2[$i]."\"\n"; $content .= $key2."[] = ".$elem2[$i]."\n"; } } else if($elem2=="") $content .= $key2." = \n"; else $content .= $key2." = "".$elem2.""\n"; } } } else { foreach ($assoc_arr as $key=>$elem) { if(is_array($elem)) { for($i=0;$i<count($elem);$i++) { $content .= $key2."[] = "".$elem[$i].""\n"; } } else if($elem=="") $content .= $key2." = \n"; else $content .= $key2." = "".$elem.""\n"; } } if (!$handle = fopen($path, 'w')) { return false; } if (!fwrite($handle, $content)) { return false; } fclose($handle); return true; } function genera_campo( $nome, $tipo, $valore, $opzioni ){ $opzione[] = array(); //rimuovo gli spazi vuoti prima o dopo la virgola di ciascuna opzione $opzione = array_map('trim', explode(',', $opzioni)); if ($tipo=='span'){ echo "<input type=\"hidden\" id=\"$nome\" name=\"$nome\" value=\"".$valore."\">\n"; } else if ($tipo=='input'){ echo "<input type=\"text\" id=\"$nome\" name=\"$nome\" value=\"".$valore."\" class=\"form-control\">\n"; } else if ($tipo=='date'){ echo "<input type=\"text\" id=\"$nome\" name=\"$nome\" class=\"form-control text-center datepicker\" data-inputmask=\"'alias': 'dd/mm/yyyy'\" value=\"".$valore."\">\n"; } else if ($tipo=='textarea'){ $valore = str_replace( "<br/>", "\n", $valore ); $valore = str_replace( "<br/>", "\n", $valore ); echo "<textarea id=\"$nome\" name=\"$nome\" class=\"form-control\">".$valore."</textarea>\n"; } else if ($tipo=='select'){ echo "<select id=\"".$nome."\" name=\"".$nome."\" class=\"form-control superselect\">\n"; echo " <option value=\"0\">".$opzione[0]."</option>"; for($i=1;$i<count($opzione);$i++) { if ($opzione[$i]==$valore){ $sel = "selected='selected'"; }else{ $sel = ''; } echo " <option $sel value=\"".$opzione[$i]."\">".$opzione[$i]."</option>"; } echo "</select>\n"; echo "<script>start_superselect();</script>"; } } function genera_form_componente( $componente_filename, $contenuto ){ //Caricamento campi dell'eventuale componente selezionato if( $componente_filename!="" ){ $contenuto = read($contenuto); $contenuto = str_replace( "`", "\"", $contenuto ); $ini_array = parse_ini_string( read($contenuto), true ); // ulteriore controllo if( is_array($ini_array) && $ini_array['Nome']['valore']!='' ){ echo " <div class='row'>\n"; echo " <div class='col-md-12'>\n"; echo " <h4>Attributi per ".$ini_array['Nome']['valore']."</h4>\n"; echo " <input type='hidden' name='Nome' value=\"".$ini_array['Nome']['valore']."\" />\n"; echo " </div>\n"; echo " </div>\n"; //per ogni sezione $i = 0; foreach ($ini_array as $sezione => $array_impostazioni){ if( $sezione!='Nome' ){ $i++; $nome = htmlentities($sezione, ENT_QUOTES, "UTF-8"); $tipo = $ini_array[$sezione]['tipo']; $valore = $ini_array[$sezione]['valore']; $opzioni = $ini_array[$sezione]['opzioni']; ( $tipo=='textarea' ) ? $valign="top" : $valign="middle"; echo " <div class='col-md-4'>\n"; echo " <div class='form-group'>\n"; echo " <label>".$nome.":</label>\n"; genera_campo( $nome, $tipo, $valore, $opzioni ); echo " </div>\n"; echo " </div>\n"; } } // end foreach } // ulteriore controllo } // end if( $componente_filename!="" ) } ?> <script> $('#datepicker').datepicker({ autoclose: true }); </script>