koss
08 Juin 2006, 20:58
08 Juin 2006, 20:58
Index du forum
» Rechercher


) , nous souhaitons qu'il soit compatible pour FSB.
Sans elle, ce mod, tel qu'il est, n'aurait pas vu le jour.




/******************************************************************************* * MOD Chat :: version 1.0.0 * * ---------- Auteur -------------------------------------------------------- * Auteur :: Edouard * Email :: edouard.jaouen@free.fr * Site Web :: http://www.web-coding.com * * ---------- Mod ----------------------------------------------------------- * Nom :: MOD Chat * Version :: 1.0.0 * Compatible :: FSB 1.0.4 * * Description :: Ce MOD permet d'avoir un chat sur son forum. Le chat s'ouvre dans une fenêtre pop-up. * Dans le qui est en ligne, est inscrit le nombre de personne chattant. Des messages d'information * apparaissent lors de la connexion ou déconnexion d'un membre sur le chat. Possibilité de régler depuis * le panneau d'administration, le temps de connexion sur le chat, et depuis le profil de chaque membre, * le nombre de minutes avant rafrichissement de la page. * * Temps d'installation :: 15 minutes * Requete :: Oui * Cache :: Oui * Fichiers joins :: 0 * Fichiers à modifier :: 11 * * ---------- Note ---------------------------------------------------------- * Aucune * * ---------- Historique ---------------------------------------------------- * Commencé :: Le 04 / 11 / 2005 * Dernière modification :: Le 04 / 11 / 2005 ** *******************************************************************************/






define('FORUM', TRUE);
$racine = './';
include($racine . 'demarrage.php');
$membre = recuperer_session();
$mode = ( isset($HTTP_GET_VARS['mode']) ) ? htmlSpecialChars($HTTP_GET_VARS['mode']) : htmlSpecialChars($HTTP_POST_VARS['mode']);
$code = ( isset($HTTP_GET_VARS['code']) ) ? htmlSpecialChars($HTTP_GET_VARS['code']) : '';
$to = ( isset($HTTP_GET_VARS['to']) ) ? intval($HTTP_GET_VARS['to']) : intval($HTTP_POST_VARS['to']);
//
// On regarde les paamètres de l'URL, si un ne corespond pas on redirige vers l'index
//
$param = array('activation', 'nouveau', 'edite', 'mail');
if ( ! in_array($mode, $param) )
{
redir('index.php');
}
//
// Est on en mode d'envoie de mail?
//
if ( $mode == 'mail' && $config['mail_par_forum'] )
{
if ( $membre['membre_id'] == INVITE )
{
redir('connexion.php?redirection=./profil.php$mode=mail*to=' . $to);
}
else if ( $membre['membre_id'] == $to )
{
info($langue['info_titre'], $langue['er_mail_soimeme']);
}
//
// On récupère le destinataire
//
$sql = 'SELECT ' . ( isset($HTTP_POST_VARS['soumettre_mail']) ? 'membre_email, membre_login' : 'membre_login' ) . ' FROM ' . MEMBRES_TABLE . '
WHERE membre_id = \'' . $to . '\'
AND membre_id <> \'' . INVITE . '\'';
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'membres'), __LINE__, __FILE__, $sql);
}
$t = $bdd->tableau($result);
if ( $t['membre_login'] == '' )
{
info($langue['info_titre'], $langue['membre_non_existant']);
}
if ( isset($HTTP_POST_VARS['soumettre_mail']) )
{
$titre = stripslashes(trim($HTTP_POST_VARS['sujet_mail']));
$message = stripslashes(trim(htmlSpecialChars($HTTP_POST_VARS['texte_mail'])));
if ( ! empty($titre) && ! empty($message) )
{
include($racine . 'includes/class/class_mail.php');
$mail = new Mail($langue['charset']);
$mail->set_langue($membre['membre_langue']);
$mail->set_mail('mail_prive.html');
$mail->sujet($titre);
$mail->signature('');
$mail->message(array(
'MEMBRE' => $t['membre_login'],
'FROM' => $membre['membre_login'],
'MESSAGE' =>$message
));
$mail->expediteur($membre['membre_email'], $membre['membre_login']);
$mail->destinataire($t['membre_email'], $t['membre_login']);
if ($mail->envoie())
{
info($langue['info_titre'], $langue['mail_bien_envoye'] . '<br /><br />' . sprintf($langue['retour_index'], ajout_sid('index.php')));
}
else
{
info($langue['info_titre'], $langue['er_envoie_mail']);
}
}
}
$hidden = '<input type="hidden" name="to" value="' . $to . '" />';
$page_titre = strip_tags(sprintf($langue['envoyer_mail_a'], $t['membre_login']));
$liens_header = ' -> ' . sprintf($langue['envoyer_mail_a'], $t['membre_login']);
include( $racine . 'includes/header_forum.php' );
$tpl->set_filenames(array('mail' => 'formulaire_mail.tpl'));
$tpl->assign_vars( array(
'L_DESTINATAIRE' => sprintf($langue['envoyer_mail_a'], $t['membre_login']),
'L_SUJET' => $langue['sujet'],
'L_ENVOYER' => $langue['soumettre'],
'U_ACTION' => ajout_sid('profil.php?mode=mail&to=' . $to),
'HIDDEN' => $hidden
));
$tpl->pparse('mail');
include( $racine . 'includes/footer_forum.php' );
exit;
}
else if ( $mode == 'mail' && ! $config['mail_par_forum'] )
{
redir('index.php');
}
//
// Si le membre n'est pas connecté on le redirige vers la boite de connexion
//
if ( $membre['membre_id'] == INVITE && $mode == 'edite' )
{
redir('connexion.php?redirection=profil.php$mode=edite');
}
else if ( $membre['membre_id'] != INVITE && ( $mode == 'nouveau' || $mode == 'activation' ) )
{
redir('index.php');
}
//
// S'il s'agit d'un lien d'activation on active le membre avec le code entré par l'url.
//
if ( $mode == 'activation' )
{
$sql = 'UPDATE ' . MEMBRES_TABLE . '
SET membre_actif = \'1\'
WHERE code_activation = \'' . $code . '\'
AND code_activation <> \'aucun\'';
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_update'], 'membres'), __LINE__, __FILE__, $sql);
}
info($langue['info_titre'], $langue['compte_actif'] . '<br /><br />' . sprintf($langue['retour_index'], ajout_sid('index.php')));
}
if( isset($HTTP_POST_VARS['soumettre']) )
{
//
// on vérifie les différents champs du profile
//
$parametre = array('login', 'mdp', 'mdp_confirm', 'mdp_nouveau', 'email', 'signature', 'langue_forum', 'theme_forum', 'lier_avatar', 'vision_mail', 'supprimer_avatar', 'bloc_note', 'date_format', 'notification_mp);
for ( $i = 0; $i < count($parametre); $i++ )
{
$$parametre[$i] = htmlSpecialChars(trim($HTTP_POST_VARS[$parametre[$i]]));
}
// En mode 'nouveau' le règlement a t'il été accepté?
if ( $mode == 'nouveau' && ! isset($HTTP_POST_VARS['accepter']) )
{
$erreur .= $langue['er_accepter_reglement'] . '<br />';
}
// On vérifie si les champs obligatoires sont remplis. Une fois enregistré on est plus obligé de remplir le mot de passe.
if ( ( empty($login) && ( $mode == 'nouveau' || $config['editer_login'] ) ) || empty($email) || ( ( empty($mdp) || empty($mdp_confirm) ) && $mode == 'nouveau' ) )
{
$erreur .= $langue['er_champs_vides'] . '<br />';
}
// En mode 'nouveau' on vérifie si les deux mots de passe sont égaux, de même si on édite le mdp
if ( ( $mdp != $mdp_confirm && $mode == 'nouveau' ) || ( $mdp_nouveau != $mdp_confirm && ! empty($mdp) && $mode == 'edite' ) )
{
$erreur .= $langue['er_mdp_diff'] . '<br />';
}
// En mode 'edite', si un nouveau mot de passe est entré on vérifie que le mot de passe d'origine soit valide
if ( ! empty($mdp) && md5($mdp) != $membre['membre_mdp'] && $mode == 'edite' )
{
$erreur .= $langue['er_mdp_origine'] . '<br />';
}
// En mode 'edite', il faut entrer son ancien mot de passe un un mot de passe de confirmation
if ( ( ( ! empty($mdp) && empty($mdp_nouveau) ) || ( empty($mdp) && ! empty($mdp_nouveau) ) ) && $mode == 'edite' )
{
$erreur .= $langue['er_nouveau_mdp'] . '<br />';
}
// On vérifie le format de l'adresse email
if ( ! @ preg_match('/^.*?@.*?\..{1,4}$/is', $email) )
{
$erreur .= $langue['er_email_faux'] . '<br />';
$erreur_mail = TRUE;
}
// Le pseudo entré existe t'il déjà?
if ( $mode == 'nouveau' || ( $mode == 'edite' && $login != $membre['membre_login'] && $config['editer_login'] ) )
{
$sql = 'SELECT membre_login from ' . MEMBRES_TABLE . '
WHERE membre_login = \'' . $login . '\'';
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'membres'), __LINE__, __FILE__, $sql);
}
$check_login = $bdd->tableau($result);
if ($check_login['membre_login'] != '')
{
$erreur .= $langue['er_login_pris'] . '<br />';
}
}
// l'adresse email entrée existe t'elle déjà?
if ( $mode == 'nouveau' || ( $mode == 'edite' && $email != $membre['membre_email'] ) )
{
$sql = 'SELECT membre_email from ' . MEMBRES_TABLE . '
WHERE membre_email = \'' . $email . '\'';
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'membres'), __LINE__, __FILE__, $sql);
}
$stat = $bdd->tableau($result);
if ( $stat['membre_email'] != '' && ! $erreur_mail )
{
$erreur .= $langue['er_email_faux'] . '<br />';
}
}
if ($MOD['bloc_note'])
{
$nombre_ligne = count(explode("\n", $bloc_note)) > (strlen($bloc_note) / 50) ? count(explode("\n", $bloc_note)) : strlen($bloc_note) / 50;
$nombre_caractere = strlen($bloc_note) - (($nombre_ligne - 1) * 2); // il compte les "\n" donc 2 caracteres en moins a chaque saut de ligne
// erreur trop de caractere et de ligne
if (($config['bloc_note_nb_lignes'] != '0' && ($nombre_ligne > $config['bloc_note_nb_lignes'])) && ($config['bloc_note_nb_carac'] != '0' && ($nombre_caractere > $config['bloc_note_nb_carac'])))
{
$erreur .= sprintf($langue['er_taille_bloc_note_ligne_carac'],$config['bloc_note_nb_carac'] != 0 ? $config['bloc_note_nb_carac'] : 'illimitÈ',$config['bloc_note_nb_lignes'] != 0 ? $config['bloc_note_nb_lignes'] : 'illimitÈ',($nombre_caractere-$config['bloc_note_nb_carac']),($nombre_ligne-$config['bloc_note_nb_lignes'])) . '<br />';
}
else {
//erreur trop de ligne
if ($config['bloc_note_nb_lignes'] != '0' && $nombre_ligne > $config['bloc_note_nb_lignes'])
{
$erreur .= sprintf($langue['er_taille_bloc_note_ligne'],($config['bloc_note_nb_carac'] != 0) ? $config['bloc_note_nb_carac'] : 'illimitÈ',($config['bloc_note_nb_lignes'] != 0) ? $config['bloc_note_nb_lignes'] : 'illimitÈ',round($nombre_ligne-$config['bloc_note_nb_lignes'])) . '<br />';
}
//erreur trop de caractere
if ($config['bloc_note_nb_carac'] != '0' && $nombre_caractere > $config['bloc_note_nb_carac'])
{
$erreur .= sprintf($langue['er_taille_bloc_note_carac'],$config['bloc_note_nb_carac'] != 0 ? $config['bloc_note_nb_carac'] : 'illimitÈ',$config['bloc_note_nb_lignes'] != 0 ? $config['bloc_note_nb_lignes'] : 'illimitÈ',round($nombre_caractere-$config['bloc_note_nb_carac'])) . '<br />';
}
}
}
//
// on regarde si le mail ou le pseudo ou l'IP a été banni
//
if ( empty($erreur) )
{
$sql = 'SELECT * FROM ' . BANNIS_TABLE;
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'bannis'), __LINE__, __FILE__, $sql);
}
$tmp_ip = long2ip($membre['membre_ip']);
$tmp_login = strtolower($login);
$tmp_email = strtolower($email);
while ($bannis = $bdd->tableau($result))
{
if ($bannis['bannis_type'] == BANNIR_IP && is_matching($bannis['bannis_objet'], $tmp_ip))
{
$erreur .= $langue['ip_est_bannie'] . '<br />';
break;
}
else if ($bannis['bannis_type'] == BANNIR_MEMBRE && is_matching(strtolower($bannis['bannis_objet']), $tmp_login))
{
$erreur .= $langue['membre_est_banni'] . '<br />';
break;
}
else if ($bannis['bannis_type'] == BANNIR_MAIL && is_matching(strtolower($bannis['bannis_objet']), $tmp_email))
{
$erreur .= $langue['mail_est_banni'] . '<br />';
break;
}
}
}
//
// Si le formulaire de liage ou d'upload de l'avatar est rempli ou vérifie l'extension de l'avatar
// et on lie/upload. Si les deux champs sont remplis le liage est prioritaire sur l'upload pour des
// de place :)
// - Dark_Genova -
//
include( $racine . 'includes/class/class_upload.php' );
$upload = new upload($racine . 'images/');
$can_use_avatar = ($mode != 'nouveau' && $config['aut_avatar'] && $membre['aut_avatar']) ? TRUE : FALSE;
if ($supprimer_avatar && $can_use_avatar)
{
//
// Si on supprime l'avatar et que celui ci n'est pas lié à distance...
//
if (!empty($membre['membre_avatar']))
{
$membre['membre_avatar'] = '';
$lier_avatar = '';
if (!preg_match('/^(http|https):\/\//si', $membre['membre_avatar']))
{
$upload->delete_matches_files($racine . 'images/avatars/', md5($membre['membre_id']));
}
}
}
else if ($lier_avatar != '' && $mode == 'edite' && $can_use_avatar)
{
$upload->delete_matches_files($racine . 'images/avatars/', md5($membre['membre_id']));
if (!preg_match('/(http|https):\/\/.*?\.(gif|jpg|jpeg|png)/si', $lier_avatar))
{
$erreur .= $langue['mauvais_avatar_lier'] . '<br />';
}
if ( ! $upload->check_size($lier_avatar, $config['width_avatar'], $config['height_avatar']) )
{
$erreur .= sprintf($langue['er_taille_avatar'], $config['taille_avatar'], $config['width_avatar'], $config['height_avatar']) . '<br />';
}
}
else if ($HTTP_POST_FILES['upload_avatar']['name'] != '' && $mode == 'edite' && $can_use_avatar && $config['upload_avatar'])
{
$upload->assign_extensions(array('jpg', 'jpeg', 'gif', 'png'));
$upload->assign_file_to_upload($HTTP_POST_FILES['upload_avatar']['name'], $HTTP_POST_FILES['upload_avatar']['tmp_name']);
$lier_avatar = $upload->upload_file();
//
// On copie l'avatar dans le répertoire image. On le renomme puis on vérifie sa taille et son poid.
// Si ton corespond on le bouge vers images/avatars/ et on le supprime, autrement on le supprime
// tout court :p
//
$nouveau_nom = md5($membre['membre_id']);
$lier_avatar = $racine . 'images/' . $lier_avatar;
$lier_avatar_bis = $racine . 'images/' . $nouveau_nom . '.' . $upload->extension;
$taille = @filesize($lier_avatar);
if ($upload->check_size($lier_avatar, $config['width_avatar'], $config['height_avatar']) && $taille <= $config['taille_avatar'])
{
$upload->delete_matches_files($racine . 'images/avatars/', md5($membre['membre_id']));
@rename($lier_avatar, $lier_avatar_bis);
@copy($lier_avatar_bis, $racine . 'images/avatars/' . $nouveau_nom . '.' . $upload->extension);
$lier_avatar = $racine . 'images/avatars/' . $nouveau_nom . '.' . $upload->extension;
}
else
{
@unlink($lier_avatar);
$erreur .= sprintf($langue['er_taille_avatar'], $config['taille_avatar'], $config['width_avatar'], $config['height_avatar']) . '<br />';
}
if (!empty($erreur))
{
$lier_avatar = '';
}
if (file_exists($lier_avatar_bis))
{
@unlink($lier_avatar_bis);
}
}
//
// Si on est en mode 'nouveau' on insert une nouvelle entrée dans la table 'membres'
// Si on est en mode 'edite' ou 'admin' ou effectue un update (en mode admin on vérifie d'autres paramètres
// tel que la suppression du membre.
//
if ( empty($erreur) )
{
switch ( $mode )
{
case "nouveau":
//
// L'ID des membres n'étant pas auto incrémentée, on récupère la plus grande ID existante
// et on l'incrémente de 1 pour créer l'ID du nouvel inscrit.
// - Dark_Genova -
//
$sql = 'SELECT MAX(membre_id) AS derniere_id FROM ' . MEMBRES_TABLE . '
LIMIT 1';
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'membres'), __LINE__, __FILE__, $sql);
}
$dernier = $bdd->tableau($result);
//
// On regarde le type d'enregistrement du membre, s'il peut s'inscrire directement on lui met directement un compte actif,
// s'il doit confirmer son compte via mail on lui envoie un mail contenant son code d'activation.
//
if ($config['membre_activation'] == 'auto')
{
$code_activation = 'aucun';
$actif = 1;
$info_texte = $langue['inscription_auto'];
$fichier_mail = 'mail_enregistrement_auto.html';
}
else if ($config['membre_activation'] == 'mail')
{
// envoie de mail avec le code d'activation
$code_activation = md5(uniqid(time()));
$actif = 0;
$info_texte = $langue['inscription_mail'];
$fichier_mail = 'mail_enregistrement_confirm.html';
}
//
// On insert le nouveau membre dans la base de donnée
//
$nouv_membre_id = $dernier['derniere_id'] + 1;
$sql = 'INSERT INTO ' . MEMBRES_TABLE . '
(membre_id, membre_login, membre_mdp, membre_aut, membre_email, date_enregistrement, membre_date_format, membre_langue, membre_theme, membre_actif, code_activation, membre_voir_mail, notification_mp)
VALUES (\'' . $nouv_membre_id . '\', \'' . $login . '\', \'' . md5($mdp) . '\', \'' . MEMBRE . '\', \'' . $email . '\', \'' . time() . '\', \'' . $config['date_format'] . '\', \'' . $config['langue_defaut'] . '\', \'' . $config['theme_defaut'] . '\', \'' . $actif . '\', \'' . $code_activation . '\', \'0\', \'1\');';
if ( ! $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_insert'], 'membres'), __LINE__, __FILE__, $sql);
}
//
// on insert egalement l'id du nouveau membre, dans la table membres_bloc_note pour son bloc note
// pourkoi ne pas l'avoir mis dans la table membre? surcharge inutile, merci grummfy :D
//
if ($MOD['bloc_note'])
{
$sql_bloc_note = 'INSERT INTO ' . MEMBRES_BLOC_NOTE_TABLE . '
(membre_id, membre_bloc_note)
VALUES (\'' . $nouv_membre_id . '\',\'' . $langue['bonjour_bloc_note'] . '\');';
if ( ! $bdd->requete($sql_bloc_note))
{
info($langue['er_titre'], sprintf($langue['er_insert'], 'membre_bloc_note'), __LINE__, __FILE__, $sql);
}
}
$sujets = recuperer_nouveaux_messages($nouv_membre_id, time(), '', '');
marquer_tout_lu($sujets, $nouv_membre_id);
include($racine . 'includes/class/class_mail.php');
$mail = new Mail($langue['charset']);
$mail->set_langue($membre['membre_langue']);
$mail->set_mail($fichier_mail);
$mail->sujet(sprintf($langue['mail_bienvenue'], $config['nom_site']));
$mail->signature($langue['mail_signature']);
$mail->message(array(
'NOM_SITE' => $config['nom_site'],
'ACTIVE_LIEN' => ((!preg_match('#^http://#', $config['dommaine_site'])) ? 'http://' : '') . $config['dommaine_site'] . '/profil.php?mode=activation&code=' . $code_activation,
'MAIL_LOGIN' => stripslashes($login),
'MAIL_MDP' => $mdp
));
$mail->expediteur($config['forum_mail'], '');
$mail->destinataire($email, $login);
if (!$mail->envoie())
{
$info_texte = $langue['aucun_mail_enregistrement'];
}
info($langue['info_titre'], $info_texte . '<br /><br />' . sprintf($langue['retour_index'], ajout_sid('index.php')));
break;
case "edite":
//
// Si le membre a édité son pseudo on modifie au niveau des messages le pseudo
// du posteur ainsi qu'au niveau du dernier posteur sur les forums dans le cache.
//
if ( ! empty($login) && $login != addslashes($membre['membre_login']) )
{
$sql = 'UPDATE ' . MESSAGES_TABLE . '
SET pseudo_posteur = \'' . $login . '\'
WHERE membre_id = \'' . $membre['membre_id'] . '\'';
if ( ! $bdd->requete($sql) )
{
info($langue['info_titre'], sprintf($langue['er_update'], 'messages'), __FILE__, __LINE__, $sql);
}
$cache->load_table('forum', CACHE_SQL);
for ( $f = 0; $f < $compte_forum; $f++ )
{
if ( $forum[$f]['dernier_posteur_id'] == $membre['membre_id'] )
{
$forum[$f]['dernier_posteur_login'] = $login;
}
}
$cache->write_in_cache($forum, 'forum', $compte_forum);
}
//
// On met à jour le profil du membre en fonction des choix qu'il a fait.
//
$login_tmp = ( ! empty($login) ) ? $login : addslashes($membre['membre_login']);
$mdp_tmp = ( ! empty($mdp) && ! empty($mdp_confirm) && ! empty($mdp_nouveau) ) ? md5($mdp_nouveau) : $membre['membre_mdp'];
$lier_avatar = ( $lier_avatar == '' ) ? $membre['membre_avatar'] : $lier_avatar;
$sql = "UPDATE " . MEMBRES_TABLE . "
SET membre_login = '$login_tmp', membre_mdp = '$mdp_tmp', membre_email = '$email', membre_signature = '$signature', " . ( ! $config['annuler_langue'] ? "membre_langue = '$langue_forum', " : "" ) . ( ! $config['annuler_theme'] ? "membre_theme = '$theme_forum', " : "" ) . "membre_avatar = '$lier_avatar', membre_voir_mail = '$vision_mail', membre_date_format = '$date_format', notification_mp = '$notification_mp'
WHERE membre_id = '" . $membre['membre_id'] . "'";
if ( ! $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_update'], 'membres'), __LINE__, __FILE__, $sql);
}
if ($MOD['bloc_note'])
{
$sql_bloc_note = "UPDATE " . MEMBRES_BLOC_NOTE_TABLE . "
SET membre_bloc_note = '$bloc_note'
WHERE membre_id = '" . $membre['membre_id'] . "';";
if ( ! ($bdd->requete($sql_bloc_note)) )
{
info($langue['er_titre'], sprintf($langue['er_update'], 'membres_bloc_note'), __LINE__, __FILE__, $sql_bloc_note);
}
}
info($langue['info_titre'], $langue['profil_update'] . '<br /><br />' . sprintf($langue['retour_index'], ajout_sid('index.php')));
break;
default:
info($langue['er_titre'], $langue['mauvais_parametre'], __LINE__, __FILE__);
break;
}
}
else
{
for ( $i = 0; $i < count($parametre); $i++ )
{
$$parametre[$i] = stripslashes($HTTP_POST_VARS[$parametre[$i]]);
}
}
}
if ($MOD['bloc_note'])
{
$sql = 'SELECT membre_bloc_note AS bloc_note' .'
FROM ' . MEMBRES_BLOC_NOTE_TABLE . '
WHERE membre_id = ' . $membre['membre_id'];
if ( ! $result = $bdd->requete($sql) )
{
info($langue['er_titre'], sprintf($langue['er_select'], 'membre_bloc_note'), __LINE__, __FILE__, $sql);
}
$tmp = $bdd->Tableau($result);
$profil['bloc_note'] = $tmp['bloc_note'];
}
//
// On récupère les données du profil (soit en cas d'édition, soit en cas d'erreur)
//
if ( $mode == 'edite' && empty($erreur) )
{
$v_login = $membre['membre_login'];
$v_email = $membre['membre_email'];
$v_signature = $membre['membre_signature'];
$v_bloc_note = $profil['bloc_note'];
$v_langue = $membre['membre_langue'];
$v_theme = $membre['membre_theme'];
$v_mail_oui = ( $membre['membre_voir_mail'] ) ? 'checked="checked"' : '';
$v_mail_non = ( ! $membre['membre_voir_mail'] ) ? 'checked="checked"' : '';
$v_not_mp_oui = ( $membre['notification_mp'] ) ? 'checked="checked"' : '';
$v_not_mp_non = ( ! $membre['notification_mp'] ) ? 'checked="checked"' : '';
$v_avatar = $membre['membre_avatar'];
$v_date_format = $membre['membre_date_format'];
}
else if ( ! empty($erreur) )
{
$v_login = ( ( $config['editer_login'] && $mode == 'editer' ) || $mode == 'nouveau' ) ? stripslashes($login) : $membre['membre_login'];
$v_email = $email;
$v_signature = $signature;
$v_bloc_note = $bloc_note;
$v_langue = $langue;
$v_theme = $theme_forum;
$v_mail_oui = ( $vision_mail ) ? 'checked="checked"' : '';
$v_mail_non = ( ! $vision_mail ) ? 'checked="checked"' : '';
$v_not_mp_oui = ( $notification_mp ) ? 'checked="checked"' : '';
$v_not_mp_non = ( ! $notification_mp ) ? 'checked="checked"' : '';
$v_avatar = $lier_avatar;
$v_date_format = $date_format;
}
else
{
$v_langue = $config['langue_defaut'];
$v_theme = $config['theme_defaut'];
$v_mail_oui = '';
$v_mail_non = 'checked="checked"';
$v_not_mp_oui = '';
$v_not_mp_non = 'checked="checked"';
$v_avatar = '';
$v_date_format = $config['date_format'];
}
if ( ! empty($erreur) )
{
info($langue['info_titre'], $erreur, '', '', '', FALSE);
}
if( $mode == 'nouveau' )
{
$page_titre = $langue['senregistrer'];
$liens_header = ' -> ' . $langue['senregistrer'];
}
elseif( $mode == 'edite' )
{
$page_titre = $langue['profil'];
$liens_header = ' -> ' . $langue['profil'];
}
// Affichera les liens dans le footer
define( 'LIENS_FOOTER', TRUE );
if ( ! defined('HEADER') )
{
include( $racine . 'includes/header_forum.php' );
}
$tpl->set_filenames(array('corps' => 'profil_corps.tpl'));
$tpl->assign_vars( array(
'L_INSCRIPTION' => $langue['nouv_inscription'],
'L_REGLEMENT' => $langue['reglement'],
'L_ACCEPTER' => $langue['accepter'],
'L_DONNEES' => $langue['profil_donnees'],
'L_LOGIN' => $langue['login'],
'L_MDP' => $langue['mdp'],
'L_MDP_CONFIRM' => $langue['mdp_confirm'],
'L_ANCIEN_MDP' => $langue['ancien_mdp'],
'L_NOUVEAU_MDP' => $langue['nouveau_mdp'],
'L_MDP_EXPLICATION' => $langue['change_mdp_explication'],
'L_EMAIL' => $langue['email'],
'L_PREFERENCE' => $langue['preference'],
'L_SIGNATURE' => $langue['signature'],
'L_LANGUE' => $langue['profil_langue'],
'L_THEME' => $langue['profil_theme'],
'L_VISION_MAIL' => $langue['profil_vision_mail'],
'L_SOUMETTRE' => $langue['soumettre'],
'L_DIMENSION_AVATAR' => sprintf($langue['dimension_avatar'], $config['taille_avatar'], $config['width_avatar'], $config['height_avatar']),
'L_SUPPRIMER_AVATAR' => $langue['supprimer_avatar'],
'L_CHAMPS_OBLIG' => $langue['champs_oblig'],
'L_UP_AVATAR' => $langue['uploader_avatar'],
'L_LIER_AVATAR' => $langue['lier_avatar'],
'L_GESTION_AVATAR' => $langue['gestion_avatar'],
'L_BLOC_NOTE' => $langue['bloc_note'],
'L_TITRE_BLOC_NOTE' => $langue['titre_bloc_note'],
'L_BLOC_NOTE_LIMITE' => ($config['bloc_note_nb_lignes'] == '0' && $config['bloc_note_nb_carac'] == '0' ) ? '' : $langue['bloc_note_limites'],
'L_BLOC_NOTE_NB_LIGNES' => $config['bloc_note_nb_lignes'] != '0' ? '<li>' . sprintf($langue['bloc_note_nb_lignes_profil'], $config['bloc_note_nb_lignes']) . '</li>' : '',
'L_BLOC_NOTE_NB_CARAC' => $config['bloc_note_nb_carac'] != '0' ? '<li>' . sprintf($langue['bloc_note_nb_carac_profil'], $config['bloc_note_nb_carac']) . '</li>' : '',
'L_DATE_FORMAT' => $langue['profil_date_format'],
'L_OUI' => $langue['oui'],
'L_NON' => $langue['non'],
'L_NOT_MP' => $langue['profil_not_mp'],
'LANGUE' => liste_fichier('./langues/', 'langue_forum', $v_langue),
'THEME' => liste_fichier('./themes/', 'theme_forum', $v_theme),
'V_LOGIN' => $v_login,
'V_EMAIL' => $v_email,
'V_SIGNATURE' => $v_signature,
'V_BLOC_NOTE'=> $v_bloc_note,
'V_MAIL_OUI' => $v_mail_oui,
'V_MAIL_NON' => $v_mail_non,
'V_DATE_FORMAT' => $v_date_format,
'V_NOT_MP_OUI' => $v_not_mp_oui,
'V_NOT_MP_NON' => $v_not_mp_non,
'IMG_AVATAR' => sprintf($theme['img'], $membre['membre_avatar'], '', ''),
'U_ACTION' => ajout_sid('profil.php?mode=' . $mode)
));
//
// Si le membre tente de s'inscrire on affiche le réglement en haut de la page
//
if ($mode == 'nouveau')
{
$tpl->create_block('nouveau');
}
//
// On affiche le login dans un formaulaire si on est en mode 'nouveau' ou 'admin'. En mode 'edite' tout dépend de la configuration du forum
//
if ($mode == 'nouveau' || ( $mode == 'edite' && $config['editer_login'] ))
{
$tpl->create_block('login_variable');
}
else
{
$tpl->create_block('login_fixe');
}
//
// Peut on changer la langue ou le theme?
//
if (!$config['annuler_langue'] && $mode == 'edite')
{
$tpl->create_block('choix_langue');
}
if (!$config['annuler_theme'] && $mode == 'edite')
{
$tpl->create_block('choix_theme');
}
//
// le bloc note est'il autorise ?
//
if ($MOD['bloc_note'] && $mode != 'nouveau')
{
$tpl->create_block('bloc_note');
}
// Signature autorisée pour le membre ?
if ($membre['aut_signature'])
{
$tpl->create_block('choix_signature');
}
//
// les avatars sont ils autorisés?
//
if ($mode != 'nouveau' && $config['aut_avatar'] && $membre['aut_avatar'])
{
$tpl->create_block('aut_avatar');
if ($membre['membre_avatar'] != '')
{
$tpl->create_block('montrer_avatar');
}
if ($config['upload_avatar'])
{
$tpl->create_block('upload_avatar');
}
}
$tpl->pparse('corps');
include( $racine . 'includes/footer_forum.php');
?>

