248 lines
6.8 KiB
PHP
248 lines
6.8 KiB
PHP
|
<?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>
|