gest366/modules/my_impianti/modutil.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." = &quot;".$elem2."&quot;\n";
}
}
}
else {
foreach ($assoc_arr as $key=>$elem) {
if(is_array($elem))
{
for($i=0;$i<count($elem);$i++)
{
$content .= $key2."[] = &quot;".$elem[$i]."&quot;\n";
}
}
else if($elem=="")
$content .= $key2." = \n";
else
$content .= $key2." = &quot;".$elem."&quot;\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( "&lt;br/&gt;", "\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>