Dans chat.php, remplace tes
- Code: Tout sélectionner
if($user->data['user_id'] == ANONYMOUS)
par
- Code: Tout sélectionner
if(!$user->data['is_registered'])
Tu utilises plusieurs fois la superglobale $_POST, pourquoi ne pas utiliser request_var()?
- Code: Tout sélectionner
if($message_post_text == '')
à remplacer par
- Code: Tout sélectionner
if(empty($message_post_text))
même chose pour
if($user_chat == '')Ton switch ne sert à rien, pour deux raisons: $mode ne peut valoir que 'action' et c'est le seul cas de figure que tu traites.
Pour ce passage:
- Code: Tout sélectionner
if($user->data['user_id'] == ANONYMOUS)
{
$template->assign_vars(array(
'MESSAGE' => $message,
'U_ACTION' => "{$phpbb_root_path}index.$phpEx?mode=action"
));
}
else
{
$template->assign_vars(array(
'MESSAGE' => $message,
'U_ACTION' => append_sid("{$phpbb_root_path}index.$phpEx", 'mode=action')
));
}
perso, anonyme ou pas, j'utiliserais toujours le même code, le 2em, par convention.
Pour $user_chat, tu lui assignes des valeurs différentes en fonction que l'user soit logué ou pas, de cette façon:
- Code: Tout sélectionner
if($user->data['user_id'] != ANONYMOUS)
{
$user_chat = $user->data['username'];
}
......
if($user->data['user_id'] == ANONYMOUS)
{
$user_chat = $_POST['user'];
}
C'est crade et pas optimisé; la façon propre étant:
- Code: Tout sélectionner
$user_chat = request_var('user', $user->data['username']);
Ainsi, le champ n'étant visible que pour les invités, ta variable prendra soit le contenu du champ, soit l'username du membre (puisque le champ n'aura pas été envoyé par le formulaire, c'est la valeur par défaut qui sera utilisé, à savoir l'username).
du coup, cette condition
- Code: Tout sélectionner
if($user_chat == '')
{
if($user->data['user_id'] == ANONYMOUS)
{
$template->assign_vars(array(
'S_NO_USER_POST' => true,
'NO_USER' => $user->lang['NO_USER']
));
}
}
est à revoir, puisque $user_chat ne sera jamais vide (il faut donc faire une comparaison avec l'username du membre anonyme, si true, alors c'est que l'invité n'a spécifié aucun username t c'est vu attribuer celui de l'utilisateur anonyme).
Ce bout de code:
- Code: Tout sélectionner
if($user->data['user_id'] == ANONYMOUS)
{
$template->assign_vars(array(
'USER_INVIT' => $_SESSION['user']
));
}
else
{
$template->assign_vars(array(
'USER_INVIT' => $user->data['username']
));
}
C'est pas bon, le champ user étant invisible pour les membres connecté, quel intérêt de lui envoyer une valeur par défaut dans ce cas? Ceci est mieux:
- Code: Tout sélectionner
$template->assign_vars(array(
'USER_INVIT' => (!$user->data['is_registered']) ? $_SESSION['user'] : '',
));
Ce ne sont là que les erreurs de codage grossières visibles sans vraiment chercher la petite bête, après, sur la méthodologie, il y aurait à dire aussi pour optimiser ton code
