gest366/settings.php

200 lines
6.6 KiB
PHP

<?php
include("core.php");
include($docroot."/config.inc.php");
include($docroot."/lib/user_check.php");
$module_name = "Impostazioni";
include($docroot."/lib/permissions_check.php");
$modulo_custom=get_var("Cartella Custom");
$op = $html->form('op');
$idutente = $_SESSION['idutente'];
switch( $op ){
case "updatesettings":
foreach( $_POST as $name => $value ){
$nome = str_replace( "_", " ", $name );
$nome = str_replace( "`", "'", $nome );
$valore = save($value);
//controllo del formato
$q = "SELECT * FROM zz_impostazioni WHERE nome=\"".$nome."\" AND editable=1";
$rs = $dbo->fetchArray( $q );
$sezione = $_POST['sezione'];
//integer
if( $rs[0]['tipo'] == 'integer' ){
if( preg_match( '/^\d*$/', $valore ) )
$dbo->query( "UPDATE zz_impostazioni SET valore=\"$valore\" WHERE nome=\"$nome\" and sezione=\"$sezione\" " );
else
array_push( $_SESSION['errors'], "Il valore inserito del parametro &quot;".$nome."&quot; deve essere un numero intero!" );
}
//list
//verifico che il valore scelto sia nella lista enumerata nel db
else if( preg_match( "/list\[(.+?)\]/", $rs[0]['tipo'], $m ) ){
$m = explode( ",", $m[1] );
for( $i=0; $i<sizeof($m); $i++ )
if( $m[$i] == $valore )
$dbo->query( "UPDATE zz_impostazioni SET valore=\"$valore\" WHERE nome=\"$nome\" and sezione=\"$sezione\" " );
}
//Boolean (checkbox)
else if( $rs[0]['tipo']=='boolean' ){
$dbo->query( "UPDATE zz_impostazioni SET valore=\"$valore\" WHERE nome=\"$nome\" and sezione=\"$sezione\" " );
}
//string
else{
$dbo->query( "UPDATE zz_impostazioni SET valore=\"$valore\" WHERE nome=\"$nome\" and sezione=\"$sezione\" " );
}
if( ( sizeof($_SESSION['errors'])<=0 ) AND (sizeof($_SESSION['infos'])<=0) ){
array_push( $_SESSION['infos'], "Impostazioni ".$sezione." aggiornate correttamente!" );
}
}
break;
}
if( file_exists($docroot."/include/".$modulo_custom."/top.php") ){
include($docroot."/include/".$modulo_custom."/top.php");
}
else{
include($docroot."/include/top.php");
}
echo "<h3><i class=\"fa fa-cog\"></i> Impostazioni</h3><hr>\n";
/*
ALTRI PARAMETRI
*/
$q = "SELECT * FROM zz_impostazioni WHERE editable=1 ORDER BY sezione ASC, nome ASC";
$rs = $dbo->fetchArray( $q );
$n = sizeof($rs);
if( $n>0 ){
$prev_sezione = "";
echo "<div class='box'>\n";
echo " <div class='box-group' id='accordion'>\n";
for( $i=0; $i<$n; $i++ ){
//Titolo sezione quando cambia
if( $prev_sezione != $rs[$i]['sezione'] ){
if( $i != 0 ){
echo " <br><br>";
echo " <button type=\"submit\" class=\"btn btn-app btn-success\"><i class=\"fa fa-check\"></i> Salva</button>\n";
echo " </form>\n";
echo " </div>\n";
echo " </div>\n";
echo " </div>\n";
}
$prev_i = $i;
echo " <div class=\"panel box box-primary\">\n";
echo " <div class=\"box-header\">\n";
echo " <h4 class=\"box-title\"><a class=\"collapsed\" href=\"#collapse".$i."\" data-parent=\"#accordion\" data-toggle=\"collapse\">".$rs[$i]['sezione']."</a></h4>\n";
echo " </div>\n";
( $i == $html->form('section') && $html->form('section')!='' ) ? $class="in": $class="";
echo " <div id=\"collapse".$i."\" class=\"panel-collapse collapse ".$class."\">\n";
echo " <div class=\"box-body\">\n";
echo " <form id=\"save_form_settings_$i\" action=\"settings.php?op=updatesettings&amp;section=".$i."\" method=\"post\" class=\"col-md-6\" style=\"float:none;\">\n";
echo " <input type=\"hidden\" name=\"sezione\" value=".$rs[$i]['sezione'].">\n";
}
?>
<label><? echo $rs[$i]['nome'] ?>:</label>
<?php
//Scelta fra più valori
if( preg_match("/list\[(.+?)\]/", $rs[$i]['tipo'], $m) ){
echo " <select class=\"form-control chosen\" name=\"".$rs[$i]['nome']."\">\n";
$m = explode( ",", $m[1] );
for( $j=0; $j<sizeof($m); $j++ ){
( $m[$j] == $rs[$i]['valore'] ) ? $checked='selected="selected"' : $checked='';
echo " <option value=\"".$m[$j]."\" $checked>".$m[$j]."</option>\n";
}
echo " </select>\n";
}
//query
else if( preg_match("/^query=(.+?)$/", $rs[$i]['tipo'], $m) ){
$query = $m[1];
$rsq = $dbo->fetchRows($query);
echo " <select name=\"".$rs[$i]['nome']."\" class='form-control chosen'>\n";
echo " <option value=''>- Seleziona un valore -</option>\n";
for( $r=0; $r<sizeof($rsq); $r++ ){
( $rs[$i]['valore']==$rsq[$r][0] ) ? $sel=' selected="selected"' : $sel='';
echo " <option value='".$rsq[$r][0]."' $sel>".$rsq[$r][1]."</option>\n";
}
echo " </select>\n";
}
//Boolean (checkbox)
else if( $rs[$i]['tipo']=='boolean' ){
if( $rs[$i]['valore']==1 ){
$attr1 = ' checked="checked"';
$attr2 = '';
}
else{
$attr1 = '';
$attr2 = ' checked="checked"';
}
echo " <label for='".$rs[$i]['idimpostazione']."_1'>s&igrave; <input id='".$rs[$i]['idimpostazione']."_1' type=\"radio\" name=\"".$rs[$i]['nome']."\" value=\"1\" $attr1 /></label>&nbsp;&nbsp;&nbsp;";
echo " <label for='".$rs[$i]['idimpostazione']."_2'>no <input id='".$rs[$i]['idimpostazione']."_2' type=\"radio\" name=\"".$rs[$i]['nome']."\" value=\"0\" $attr2 /></label>\n";
}
else if( $rs[$i]['tipo']=='textarea' ){
echo "<textarea class='autogrow form-control' name=\"".$rs[$i]['nome']."\" >".$rs[$i]['valore']."</textarea>\n";
}
//Campo di testo normale
else{
( preg_match("/password/i", $rs[$i]['nome'], $m) ) ? $tipo="password" : $tipo="text";
echo " <input type=\"".$tipo."\" name=\"".$rs[$i]['nome']."\" class=\"form-control\" value=\"".$rs[$i]['valore']."\" />\n";
}
//ULTIMO PULSANTE SALVA, CHIUDO IL FORM E CHIUDO IL DIV
if ($i==($n-1)){
echo " <br><br>\n";
echo " <button type=\"submit\" class=\"btn btn-app\"><i class=\"fa fa-check\"></i> Salva</button>\n";
echo " </form>\n";
echo " </div>\n";
echo " </div>\n";
echo " </div>\n";
}
echo " <div class='clearfix'></div><br>\n";
$prev_sezione = $rs[$i]['sezione'];
}
echo " </div>\n";
echo "</div>\n";
}
if( file_exists($docroot."/include/".$modulo_custom."/bottom.php") ){
include($docroot."/include/".$modulo_custom."/bottom.php");
}
else{
include($docroot."/include/bottom.php");
}
?>