200 lines
6.6 KiB
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 "".$nome."" 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&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ì <input id='".$rs[$i]['idimpostazione']."_1' type=\"radio\" name=\"".$rs[$i]['nome']."\" value=\"1\" $attr1 /></label> ";
|
||
|
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");
|
||
|
}
|
||
|
?>
|
||
|
|