#420: Réécriture préference

This commit is contained in:
Dany De Bontridder 2011-10-29 22:19:49 +00:00
parent d1b42f6e97
commit 279af13c83
4 changed files with 147 additions and 149 deletions

View file

@ -29,6 +29,7 @@ require_once ('class_dossier.php');
require_once('user_common.php');
require_once('ac_common.php');
require_once 'function_javascript.php';
if (isset ($_POST["style_user"])){$_SESSION['g_theme']=$_POST['style_user'];}
html_page_start();
global $g_user, $cn;

View file

@ -768,7 +768,7 @@ input[disabled], textarea[disabled], option[disabled], optgroup[disabled], selec
.button {
font-size:10;
color:black;
color:white;
text-decoration:none;
font-family: helvetica,arial,sans-serif;
background-color:#DFDFDF;

View file

@ -159,7 +159,7 @@ class User
}
$sql="insert into audit_connect (ac_user,ac_ip,ac_module,ac_url,ac_state) values ($1,$2,$3,$4,$5)";
if ( $res == 0 )
{
$cn->exec_sql($sql,array($_SESSION['g_user'],$_SERVER["REMOTE_ADDR"],$from,$_SERVER['REQUEST_URI'],'FAIL'));
@ -388,7 +388,7 @@ class User
$sql=sprintf("insert into user_local_pref (user_id,parameter_value,parameter_type)
values ('%s','%d','PERIODE')",
$this->id,$pid);
$this->login,$pid);
$Res=$this->db->exec_sql($sql);
}
@ -442,7 +442,26 @@ class User
}
function save_global_preference($key,$value)
{
$repo=new Database();
$count=$repo->get_value("select count(*)
from
user_global_pref
where
parameter_type=$1 and user_id=$2",
array($key,$this->login));
if ( $count == 1 )
{
$repo->exec_sql("update user_global_pref set parameter_value=$1
where parameter_type=$2 and user_id=$3",
array($value,$key,$this->login));
} elseif($count == 0)
{
$repo->exec_sql("insert into user_global_pref(user_id,parameter_type,parameter_value)
values($1,$2,$3)",array($this->login,$key,$value));
}
}
/*!
* \brief Get the default user's preferences
@ -450,8 +469,8 @@ class User
*/
function get_preference ()
{
$sql="select parameter_type,parameter_value from user_local_pref where user_id='".$this->id."'";
$Res=$this->db->exec_sql($sql);
$sql="select parameter_type,parameter_value from user_local_pref where user_id=$1";
$Res=$this->db->exec_sql($sql,array($this->id));
$l_array=array();
for ( $i =0;$i < Database::num_row($Res);$i++)
{

View file

@ -31,41 +31,66 @@ require_once('class_acc_report.php');
require_once('class_periode.php');
echo '<DIV class="content">';
//----------------------------------------------------------------------
// Change password
if ( isset ($_POST['val']))
//
global $g_user;
$inside_dossier = false;
if (isset($_REQUEST['gDossier']))
{
/*
* @todo save the preference
*/
var_dump($_POST);
$g_user->load_global_pref();
$msg = "";
$cn = new Database($_REQUEST['gDossier']);
$g_user->cn = $cn;
$inside_dossier = true;
$local_pref=$g_user->get_preference();
}
if (isset($_POST['pass_1'])
&& strlen(trim($_POST['pass_1'])) != 0)
//// Save value
if (isset($_POST['val']))
{
if ($_POST['pass_1'] != $_POST['pass_2'])
extract($_POST);
if (strlen(trim($pass_1)) != 0 && strlen(trim($pass_2)) != 0)
{
alert(_("Les mots de passe ne correspondent pas. Mot de passe inchangé"));
if ($pass_1 == $pass_2)
{
$repo = new Database();
$l_pass = md5($_POST['pass_1']);
$repo->exec_sql("update ac_users set use_pass=$1 where use_login=$2", array($l_pass, $_SESSION['g_user']));
$_SESSION['g_pass'] = $_POST['pass_1'];
echo "<i>" . _('Mot de passe est modifiée') . "</i>";
}
else
{
alert(_("Les mots de passe ne correspondent pas. Mot de passe inchangé"));
}
}
else
if ($inside_dossier)
{
$Rep = new Database();
$l_pass = md5($_POST['pass_1']);
$Res = $Rep->exec_sql("update ac_users set use_pass='$l_pass' where use_login='" . $_SESSION['g_user'] . "'");
$pass = $_POST['pass_1'];
$_SESSION['g_pass'] = $_POST['pass_1'];
$g_pass = $_POST['pass_1'];
echo "<i>" . _('Mot de passe est modifiée') . "</i>";
$g_user->set_periode($period);
$g_user->save_global_preference('THEME', $style_user);
$g_user->save_global_preference('LANG', $lang);
$g_user->save_global_preference('PAGESIZE', $p_size);
$g_user->set_mini_report($minirap);
$_SESSION['g_theme']=$style_user;
$_SESSION['g_pagesize']=$p_size;
$_SESSION['g_lang']=$lang;
}
}
if (!isset($_REQUEST['gDossier']))
{
echo HtmlInput::button_anchor(_('Retour'), 'user_login.php?');
}
else
{
//////////////////////////////////////////////////////////////////////////
// Theme
//////////////////////////////////////////////////////////////////////////
$repo = new Database();
// charge tous les styles
$res = $repo->exec_sql("select the_name from theme
order by the_name");
$style = new ISelect('style_user');
$style->value = $repo->make_array("select the_name,the_name
from theme
order by the_name");
$style->selected =$_SESSION['g_theme'];
echo '<h2 class="info2">' . _('Changez vos préférences') . '</h2>';
}
?>
<div class="content">
@ -80,67 +105,24 @@ else
<input type="password" value="" class="input_type" name="pass_2" nohistory>
</td>
</tr>
<?php
$Rep = new Database();
// charge tous les styles
$res = $Rep->exec_sql("select the_name from theme
order by the_name");
$astyle = array();
for ($i = 0; $i < Database::num_row($res); $i++)
{
$st = Database::fetch_array($res, $i);
$astyle[] = $st['the_name'];
}
// Formatte le display
$disp_style = "<SELECT NAME=\"style_user\" >";
foreach ($astyle as $st)
{
if ($st == $_SESSION['g_theme'])
{
$disp_style.='<OPTION VALUE="' . $st . '" SELECTED>' . $st;
}
else
{
$disp_style.='<OPTION VALUE="' . $st . '">' . $st;
}
}
$disp_style.="</SELECT>";
?>
<p>
<tr>
<td>
<?php echo _('Thème');
?>
<?php echo _('Thème');?>
</td>
<td>
<?php print $disp_style;
?>
<?php echo $style->input();?>
</td>
</tr>
<?php
global $g_user;
$inside_dossier = false;
// Si utilise un dossier alors propose de changer
// la periode par defaut
if (isset($_REQUEST['gDossier']))
if ($inside_dossier)
{
$inside_dossier = true;
$msg = "";
$cn = new Database($_REQUEST['gDossier']);
$g_user->cn = $cn;
if (isset($_POST['period']))
{
$periode = $_POST["period"];
$g_user->set_periode($periode);
}
$l_user_per = $g_user->get_periode();
if ($l_user_per == "")
$l_user_per = $cn->get_value("select min(p_id) from parm_periode where p_closed='f'");
// if periode is closed then warns the users
// if periode is closed then warns the users
$period = new Periode($cn, $l_user_per);
$period->p_id = $l_user_per;
@ -151,7 +133,6 @@ else
$msg = '<h2 class="notice">' . $msg . '</h2>';
}
$period = new IPeriod("period");
$period->user = $g_user;
$period->cn = $cn;
@ -160,88 +141,85 @@ else
$period->type = ALL;
$l_form_per = $period->input();
?>
<tr><td><?php echo _('Période');
?></td>
<tr><td><?php echo _('Période');?></td>
<td>
<?php printf(' %s ', $l_form_per);?>
<?php printf(' %s ', $l_form_per);?>
</td>
<td> <?php echo $msg;?></td>
<?php
}
?>
<tr>
<td><? echo _('Taille des pages');?></td>
<td>
<SELECT NAME="p_size">
<option value="15">15
<option value="25">25
<option value="50">50
<option value="100">100
<option value="150">150
<option value="200">200
<option value="-1"><?php echo _('Illimité');?>
<?php
$label = ($_SESSION['g_pagesize'] == -1) ? _('Illimité') : $_SESSION['g_pagesize'];
echo '<option value="' . $_SESSION['g_pagesize'] . '" selected>' . $label;
?>
</SELECT>
<tr>
<td><? echo _('Taille des pages');
?></td>
<td>
<SELECT NAME="p_size">
<option value="15">15
<option value="25">25
<option value="50">50
<option value="100">100
<option value="150">150
<option value="200">200
<option value="-1"><?php echo _('Illimité');?>
<?php
$label = ($_SESSION['g_pagesize'] == -1) ? _('Illimité') : $_SESSION['g_pagesize'];
echo '<option value="' . $_SESSION['g_pagesize'] . '" selected>' . $label;
?>
</SELECT>
</td>
</tr>
</td>
</tr>
<?
}
?>
</table>
</fieldset>
<?php
if ($inside_dossier)
{
/* Pref for welcome page */
echo '<fieldset>';
echo '<legend>' . _('Options pour la page d\'accueil') . '</legend>';
echo _('Mini-Rapport : ');
$rapport = new Acc_Report($cn);
$aRapport = $rapport->make_array();
$aRapport[] = array("value" => 0, "label" => _('Aucun mini rapport'));
$wRapport = new ISelect();
$wRapport->name = "minirap";
$wRapport->selected = $g_user->get_mini_report();
$wRapport->value = $aRapport;
echo $wRapport->input();
echo '<span class="notice">' . _('Le mini rapport est un rapport qui s\'affiche sur votre page d\'accueil') . '</span>';
echo '</fieldset>';
}
<?php
if ($inside_dossier)
{
/* Pref for welcome page */
echo '<fieldset>';
echo '<legend>' . _('Options pour la page d\'accueil') . '</legend>';
echo _('Mini-Rapport : ');
$rapport = new Acc_Report($cn);
$aRapport = $rapport->make_array();
$aRapport[] = array("value" => 0, "label" => _('Aucun mini rapport'));
$wRapport = new ISelect();
$wRapport->name = "minirap";
$wRapport->selected = $g_user->get_mini_report();
$wRapport->value = $aRapport;
echo $wRapport->input();
echo '<span class="notice">' . _('Le mini rapport est un rapport qui s\'affiche sur votre page d\'accueil') . '</span>';
echo '</fieldset>';
}
echo '<fieldset>';
echo '<legend>' . _('Langue') . '</legend>';
echo _('Selectionnez votre langue');
$aLang = array(array(_('Français'), 'fr_FR.utf8'),
array(_('Anglais'), 'en_US.utf8'),
array(_('Néerlandais'), 'nl_NL.utf8'),
);
echo '<select name="lang" id="l">';
for ($i = 0; $i < count($aLang); $i++)
{
$sel = "";
if ($aLang[$i][1] == $_SESSION['g_lang'])
$sel = " selected ";
printf('<option value="%s" %s>%s</option>', $aLang[$i][1], $sel, $aLang[$i][0]);
}
echo '</select>';
echo '</fieldset>';
echo '<fieldset>';
echo '<legend>' . _('Langue') . '</legend>';
echo _('Selectionnez votre langue');
$aLang = array(array(_('Français'), 'fr_FR.utf8'),
array(_('Anglais'), 'en_US.utf8'),
array(_('Néerlandais'), 'nl_NL.utf8'),
);
echo '<select name="lang" id="l">';
for ($i = 0; $i < count($aLang); $i++)
{
$sel = "";
if ($aLang[$i][1] == $_SESSION['g_lang'])
$sel = " selected ";
printf('<option value="%s" %s>%s</option>', $aLang[$i][1], $sel, $aLang[$i][0]);
}
echo '</select>';
echo '</fieldset>';
echo HtmlInput::submit("val", _("Valider"));
echo '</form>';
echo HtmlInput::submit("val", _("Valider"));
echo '</form>';
if (!$inside_dossier)
{
echo HtmlInput::button_anchor(_('Retour'), 'user_login.php?');
}
if (!$inside_dossier)
{
echo HtmlInput::button_anchor(_('Retour'), 'user_login.php?');
}
echo "</DIV>";
?>
echo "</DIV>";
?>