Darathor
Requêtes SQL :
Dans "includes/constants.php" :
Dans "include/function.php" :
Dans "includes/session.php" :
Dans "login.php" :
Dans "lang_main" :
Dans "admin/admin_board.php" :
Dans "subsilver/admin/board_config_body.tpl" :
Dans "lang_admin.php" :
Dans "index.php" :
Dans "subsilver/index_body.tpl" :
Code :
INSERT INTO `phpbb_config` ( `config_name` , `config_value` ) VALUES ('active_question_new_session', '1');
ALTER TABLE `phpbb_users` ADD `user_session_auto_reponse` TINYINT UNSIGNED DEFAULT '0' NOT NULL;
Dans "includes/constants.php" :
Code :
#
# Trouver
#
define('CRITICAL_ERROR', 204);
#
# Ajouter après
#
// DEBUT MOD Realy make new session ?
define('SESSION_QUESTION', 205);
// FIN MOD Realy make new session ?
Dans "include/function.php" :
Code :
#
# Trouver
#
// CRITICAL_ERROR : Used when config data cannot be obtained, eg
// no database connection. Should _not_ be used in 99.5% of cases
//
#
# Ajouter après
#
//// DEBUT MOD Realy make new session ?
// SESSION_QUESTION : Utilisé pour la question posée avant de valider
// une nouvelle session. Le comportement est identique à CRITICAL_MESSAGE
// mais ne teste pas si la fonction message_die est déjà appelée.
//// FIN MOD Realy make new session ?
//
#
# Trrouver
#
if(defined('HAS_DIED'))
#
# Remplacer par
#
// DEBUT MOD Realy make new session ?
// -- DEBUT Enlevé
// if(defined('HAS_DIED'))
// -- FIN Enlevé
if($msg_code == SESSION_QUESTION)
{
// Si l'on a déjà posé la quesiton, on sort de la fonciton pour éviter une éventuelle boucle.
if(defined('SESSION_QUESTION_ASKED')) { return; }
// Sinon, on mémorise le fait de l'avoir posée et on passe en mode CRITICAL_MESSAGE.
else
{
define('SESSION_QUESTION_ASKED', 1);
$msg_code = CRITICAL_MESSAGE;
}
}
elseif(defined('HAS_DIED'))
// FIN MOD Realy make new session ?
Dans "includes/session.php" :
Code :
#
# Trouver
#
$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time;
#
# Remplacer par
#
// DEBUT MOD Realy make new session ?
// -- DEBUT Enlevé
// $last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time;
// -- FIN Enlevé
$reponse_auto = 0;
if($board_config['active_question_new_session'])
{
if($userdata['user_session_time'] == 0) { $last_visit = $current_time; }
else
{
global $make_new_session;
switch($userdata['user_session_auto_reponse'])
{
case 1 : $make_new_session = 3; break;
case 2 : $make_new_session = 2; break;
default : $make_new_session = (isset($make_new_session)) ? $make_new_session : 0; break;
}
// Gestion de l'auto-réponse.
switch($make_new_session)
{
case 3 : $reponse_auto = 1; $make_new_session = 1; break;
case 2 : $reponse_auto = 2; $make_new_session = 0; break;
default : $reponse_auto = 0; break;
}
$sessiondata['user_session_auto_reponse'] = $reponse_auto;
$last_visit = ($make_new_session == 1) ? $userdata['user_session_time'] : $userdata['user_lastvisit'];
}
}
else { $last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; }
// FIN MOD Realy make new session ?
#
# Trouver
#
if (!$admin)
{
#
# Ajouter après
#
// COMMENTAIRE MOD Realy make new session ? : La requête qui suit a été modifiée.
#
# Trouver
#
SET user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit
#
# Dans la ligne, ajouter après
#
, user_session_auto_reponse = $reponse_auto
#
# Trouver
#
$user_id = ( isset($sessiondata['userid']) ) ? intval($sessiondata['userid']) : ANONYMOUS;
#
# Ajouter après
#
// DEBUT MOD Realy make new session ?
if($board_config['active_question_new_session'] && $user_id != ANONYMOUS && $sessiondata['autologinid'] != '')
{
global $make_new_session;
switch($sessiondata['user_session_auto_reponse'])
{
case 1 : $make_new_session = 1; break;
case 2 : $make_new_session = 0; break;
default : $make_new_session = -1; break;
}
if($make_new_session == -1)
{
if(!isset($HTTP_GET_VARS['make_new_session']) && !isset($HTTP_POST_VARS['make_new_session']))
{
global $_SERVER, $phpEx;
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx);
$message_url = $_SERVER["REQUEST_URI"] . ((substr($_SERVER["REQUEST_URI"], strlen($_SERVER["REQUEST_URI"])-1) == '/') ? "index.php" : "");
$message_url .= (strstr($message_url, "?") == false) ? "?make_new_session=" : "&make_new_session=";
$message = $lang['RMNS_question_new_session'] . '<br /><br /><strong><a href="' . $message_url . '1">' . $lang['Yes'] .'</a></strong> <a href="' . $message_url . '0">' . $lang['No'] .'</a>';
$message .= '<br /><br /><a href="' . $message_url . '3">' . $lang['RMNS_auto_oui'] . '</a>* <a href="' . $message_url . '2">' . $lang['RMNS_auto_non'] . '</a>**';
$message .= '<br /><br />* ' . $lang['RMNS_auto_oui_explain'] . '<br />** ' . $lang['RMNS_auto_non_explain'];
message_die(SESSION_QUESTION, $message, $lang['RMNS_question_new_session_titre']);
}
else
{
$make_new_session = (!empty($HTTP_POST_VARS['make_new_session'])) ? intval($HTTP_POST_VARS['make_new_session']) : intval($HTTP_GET_VARS['make_new_session']);
}
}
}
// FIN MOD Realy make new session ?
Dans "login.php" :
Code :
#
# Trouver
#
$sql = "SELECT user_id, username, user_password, user_active, user_level
#
# Remplacer par
#
// COMMENTAIRE MOD Realy make new session ? : La requête qui suit a été modifiée.
$sql = "SELECT user_id, username, user_password, user_active, user_level, user_session_auto_reponse
#
# Trouver
#
$autologin = ( isset($HTTP_POST_VARS['autologin']) ) ? TRUE : 0;
#
# Ajouter avant
#
// DEBUT MOD Realy make new session ?
if($board_config['active_question_new_session'] && !isset($HTTP_POST_VARS['admin']))
{
switch($row['user_session_auto_reponse'])
{
case 1 : $make_new_session = 1; break;
case 2 : $make_new_session = 0; break;
default : $make_new_session = -1; break;
}
if($make_new_session == -1)
{
if(!empty($HTTP_GET_VARS['make_new_session']) || !empty($HTTP_POST_VARS['make_new_session']))
{
$make_new_session = (!empty($HTTP_POST_VARS['make_new_session'])) ? $HTTP_POST_VARS['make_new_session'] : $HTTP_GET_VARS['make_new_session'];
if($make_new_session == $lang['RMNS_auto_oui']) { $make_new_session = 3; }
if($make_new_session == $lang['RMNS_auto_non']) { $make_new_session = 2; }
elseif($make_new_session == $lang['Yes']) { $make_new_session = 1; }
elseif($make_new_session == $lang['No']) { $make_new_session = 0; }
else { $make_new_session = -1; }
}
else
{
if (!empty($HTTP_POST_VARS['redirect']) || !empty($HTTP_GET_VARS['redirect']))
{
$message_redirect = (!empty($HTTP_POST_VARS['redirect'])) ? $HTTP_POST_VARS['redirect'] : $HTTP_GET_VARS['redirect'];
}
else { $message_redirect = ''; }
$message_hidden = ($message_redirect != '') ? ('<input type="hidden" name="redirect" value="' . $message_redirect . '" />') : '';
$message_hidden .= (isset($HTTP_POST_VARS['autologin'])) ? ('<input type="hidden" name="autologin" value="' . $HTTP_POST_VARS['autologin'] . '" />') : '';
$message_hidden .= '<input type="hidden" name="login" value="true" /><input type="hidden" name="username" value="' . stripslashes($HTTP_POST_VARS['username']) . '" /><input type="hidden" name="password" value="' . $password . '" />';
$message = '<form action="login.php" method="post">' . $lang['RMNS_question_new_session'] . '<br /><br />' . $message_hidden . '<input type="submit" name="make_new_session" value="' . $lang['Yes'] . '" class="mainoption" /> <input type="submit" name="make_new_session" value="' . $lang['No'] . '" class="liteoption" />';
$message .= '<br /><br /><input type="submit" name="make_new_session" value="' . $lang['RMNS_auto_oui'] . '" class="liteoption" />* <input type="submit" name="make_new_session" value="' . $lang['RMNS_auto_non'] . '" class="liteoption" />**</form>';
$message .= '<br /><br />* ' . $lang['RMNS_auto_oui_explain'] . '<br />** ' . $lang['RMNS_auto_non_explain'];
message_die(SESSION_QUESTION, $message, $lang['RMNS_question_new_session_titre']);
}
}
}
// FIN MOD Realy make new session ?
Dans "lang_main" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Realy make new session ?
$lang['RMNS_question_new_session_titre'] = 'Voulez-vous démarrer une nouvelle session ?';
$lang['RMNS_question_new_session'] = 'En cliquant sur <strong>oui</strong>, vous commencerez une nouvelle session. C\'est ce qui se passe par défaut sur les forums en général. Les messages antérieurs à la dernière visite sont alors marqués comme lus.<br /><br />En cliquant sur <strong>non</strong>, tout se passera comme si votre précédente connexion n\'avait pas eu lieu et les messages postés entre vos deux précédentes connexions ne seront pas marqués comme lus.';
$lang['RMNS_auto_oui'] = 'Toujours oui';
$lang['RMNS_auto_non'] = 'Toujours non';
$lang['RMNS_auto_pas'] = 'poser la question';
$lang['RMNS_auto_oui_explain'] = 'Répondre automatiquement <strong>oui</strong> lors des prochaines connexions (le comportement sera alors le même que sur un forum phpBB classique).';
$lang['RMNS_auto_non_explain'] = 'Répondre automatiquement <strong>non</strong> lors des prochaines connexions.';
$lang['RMNS_mode'] = 'Démarrer une nouvelle session lors d\'une connexion : ';
$lang['RMNS_reinitialiser'] = ' (%sreposer la question%s)';
$lang['RMNS_reinitialiser_secces'] = 'La question de savoir si vous voulez créer une nouvelle session vous sera reposée lors de vos prochaines connexions.';
// FIN MOD Realy make new session ?
Dans "admin/admin_board.php" :
Code :
#
# Trouver
#
$smtp_no = ( !$new['smtp_delivery'] ) ? "checked=\"checked\"" : "";
#
# Ajouter après
#
// DEBUT MOD Realy make new session ?
$question_new_session_yes = ( $new['active_question_new_session'] ) ? "checked=\"checked\"" : "";
$question_new_session_no = ( !$new['active_question_new_session'] ) ? "checked=\"checked\"" : "";
// FIN MOD Realy make new session ?
#
# Trouver
#
"L_RESET" => $lang['Reset'],
#
# Ajouter après
#
// FIN MOD Realy make new session ?
"L_ACTIVE_QUESTION_NEW_SESSION" => $lang['RMNS_question'],
// FIN MOD Realy make new session ?
#
# Trouver
#
"COPPA_MAIL" => $new['coppa_mail'],
#
# Ajouter après
#
// DEBUT MOD Realy make new session ?
"ACTIVE_QUESTION_NEW_SESSION_YES" => $question_new_session_yes,
"ACTIVE_QUESTION_NEW_SESSION_NO" => $question_new_session_no,
// FIN MOD Realy make new session ?
Dans "subsilver/admin/board_config_body.tpl" :
Code :
#
# Trouver
#
<tr>
<td class="row1">{L_COOKIE_SECURE}<br /><span class="gensmall">{L_COOKIE_SECURE_EXPLAIN}</span></td>
<td class="row2"><input type="radio" name="cookie_secure" value="0" {S_COOKIE_SECURE_DISABLED} />{L_DISABLED} <input type="radio" name="cookie_secure" value="1" {S_COOKIE_SECURE_ENABLED} />{L_ENABLED}</td>
</tr>
#
# Ajouter après
#
<!-- DEBUT MOD Realy make new session ? -->
<tr>
<td class="row1">{L_ACTIVE_QUESTION_NEW_SESSION}<br /></td>
<td class="row2"><input type="radio" name="active_question_new_session" value="1" {ACTIVE_QUESTION_NEW_SESSION_YES} />{L_YES} <input type="radio" name="active_question_new_session" value="0" {ACTIVE_QUESTION_NEW_SESSION_NO} />{L_NO}</td>
</tr>
<!-- FIN MOD Realy make new session ? -->
Dans "lang_admin.php" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Realy make new session ?
$lang['RMNS_question'] = 'Activer l\'option permettant de poursuivre la précédente session lors d\'une nouvelle connexion ?';
// FIN MOD Realy make new session ?
Dans "index.php" :
Code :
#
# Trouver
#
//
// End session management
//
#
# Ajouter après
#
// DEBUT MOD Realy make new session ?
if(intval($HTTP_GET_VARS['session_question']) == 1 || intval($HTTP_POST_VARS['session_question']) == 1)
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_session_auto_reponse = 0
WHERE user_id = " . $userdata['user_id'];
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating user data', '', __LINE__, __FILE__, $sql);
}
// Mise à jour du cookie si autologin.
$sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
if($sessiondata['autologinid'] != '')
{
$sessiondata['user_session_auto_reponse'] = 0;
setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000, $cookiepath, $cookiedomain, $cookiesecure);
}
$message = $lang['RMNS_reinitialiser_secces'] . '<br /><br />' . sprintf($lang['Click_return_index'], '<a href="' . append_sid("index.$phpEx") . '">', '</a>');
message_die(GENERAL_MESSAGE, $message);
}
// FIN MOD Realy make new session ?
#
# Trouver
#
setcookie($board_config['cookie_name'] . '_f_all', time(), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
#
# Remplacer par
#
// DEBUT MOD Realy make new session ?
// -- DEBUT Enlevé
// setcookie($board_config['cookie_name'] . '_f_all', time(), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
// -- FIN Enlevé
$time_now = time();
$user_id = $userdata['user_id'];
$sql = "UPDATE " . USERS_TABLE . "
SET user_lastvisit = $time_now
WHERE user_id = $user_id";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could update user_lastvisit', '', __LINE__, __FILE__, $sql);
}
// FIN MOD Realy make new session ?
#
# Trouver
#
$template->set_filenames(array(
'body' => 'index_body.tpl')
);
#
# Ajouter après
#
// DEBUT MOD Realy make new session ?
if($board_config['active_question_new_session'] && $userdata['user_id'] != -1)
{
$mode_new_session = $lang['RMNS_mode'];
switch($userdata['user_session_auto_reponse'])
{
// Auto oui.
case 1 :
$mode_new_session .= $lang['RMNS_auto_oui'] . sprintf($lang['RMNS_reinitialiser'], "<a href=\"index.$phpEx?session_question=1\">", "</a>") . ".";
break;
// Auto non.
case 2 :
$mode_new_session .= $lang['RMNS_auto_non'] . sprintf($lang['RMNS_reinitialiser'], "<a href=\"index.$phpEx?session_question=1\">", "</a>") . ".";
break;
default :
$mode_new_session .= $lang['RMNS_auto_pas'] . ".";
break;
}
}
else { $mode_new_session = ' '; }
// DEBUT MOD Realy make new session ?
#
# Trouver
#
'U_MARK_READ' => append_sid("index.$phpEx?mark=forums"))
#
# Ajouter avant
#
// DEBUT MOD Realy make new session ?
'MODE_NEW_SESSION' => $mode_new_session,
// FIN MOD Realy make new session ?
Dans "subsilver/index_body.tpl" :
Code :
#
# Trouver
#
<!-- BEGIN switch_user_logged_out -->
#
# Ajouter avant
#
<!-- DEBUT MOD Realy make new session ? -->
<table width="100%" cellpadding="1" cellspacing="1" border="0">
<tr>
<td align="left" valign="top"><span class="gensmall">{MODE_NEW_SESSION}</span></td>
</tr>
</table>
<!-- FIN MOD Realy make new session ? -->