Darathor
Citation :
But : Ajoute à chaque message un bouton permettant de l'ajouter (ou le retirer s'il a déjà été ajouté) à une liste de message à citer. Au moment de répondre au topic (par le bouton "répondre" ou "citer"), si des messages ont été placés dans la liste, ils seront tous cités (de la même manière qu'avec le bouton "citer").
Prérequis :
- [Sous-MOD] Définitions CSS complémentaires (1.0) (ce MOD n'est pas absolument necessaire, il ne fait qu'améliorer quelque détails d'affichage)
Remarques :
- côté utilisateur, ce MOD necessite l'activation des javascripts et l'acceptation des cookies.
- sur Internet Explorer, le bouton d'ajout ne semble pas se remplacer par le bouton de retrait lorsque l'on clique dessus. Cependant il ne s'agit que d'un problème d'affichage, les messages étant tout de même correctement selectionnés et cités.
Auteur : Darathor (darathor@free.fr)
Version : TEST - A (01/12/2005)
Compatibilité phpBB : 2.0.18
Dans "viewtopic.php" :
Code :
#
# Trouver
#
$quote = '<a href="' . $temp_url . '">' . $lang['Reply_with_quote'] . '</a>';
#
# Ajouter après
#
// DEBUT MOD Multiquote
$post_list_in_cookie = $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_multiquote_' . $topic_id];
if(($post_list_in_cookie != '') && (strstr($post_list_in_cookie, '|' . $postrow[$i]['post_id'] . '|') != FALSE))
{
$quote_add_display = 'none';
$quote_remove_display = 'inline';
}
else
{
$quote_add_display = 'inline';
$quote_remove_display = 'none';
}
$quote_add_img = '<img id="quote_add_' . $postrow[$i]['post_id'] . '" src="' . $images['MuQu_icon_quote_add'] . '" alt="' . $lang['MuQu_Add_to_quote_list'] . '" title="' . $lang['MuQu_Add_to_quote_list'] . '" onclick="cookiePostAdd(' . $topic_id . ', ' . $postrow[$i]['post_id'] . ', \'' . $board_config['cookie_name'] . '\');" style="cursor: pointer; display: ' . $quote_add_display . ';" />';
$quote_remove_img = '<img id="quote_remove_' . $postrow[$i]['post_id'] . '" src="' . $images['MuQu_icon_quote_remove'] . '" alt="' . $lang['MuQu_Remove_from_quote_list'] . '" title="' . $lang['MuQu_Remove_from_quote_list'] . '" onclick="cookiePostRemove(' . $topic_id . ', ' . $postrow[$i]['post_id'] . ', \'' . $board_config['cookie_name'] . '\');" style="cursor: pointer; display: ' . $quote_remove_display . ';" />';
// FIN MOD Multiquote
#
# Trouver
#
'QUOTE_IMG' => $quote_img,
#
# Ajouter après
#
// DEBUT MOD Multiquote
'QUOTE_ADD_IMG' => $quote_add_img,
'QUOTE_REMOVE_IMG' => $quote_remove_img,
// FIN MOD Multiquote
Dans "language/lang_french/lang_main.php" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Multiquote
$lang['MuQu_Add_to_quote_list'] = 'Ajouter à liste des messages à citer';
$lang['MuQu_Remove_from_quote_list'] = 'Retirer de la liste des messages à citer';
// FIN MOD Multiquote
Dans "templates/subSilver/subSilver.cfg" :
Code :
#
# Trouver
#
?>
#
# Ajouter avant
#
// DEBUT MOD Multiquote
$images['MuQu_icon_quote_add'] = "$current_template_images/{LANG}/icon_quote_add.gif";
$images['MuQu_icon_quote_remove'] = "$current_template_images/{LANG}/icon_quote_remove.gif";
// FIN MOD Multiquote
Dans "templates/subSilver/viewtopic_body.tpl" :
Code :
#
# Trouver
#
<table width="100%" cellspacing="2" cellpadding="2" border="0">
#
# Ajouter au dessus
#
<script language="Javascript" type="text/javascript" src="templates/multiquote.js"></script>
#
# Dans une ligne, trouver
#
{postrow.QUOTE_IMG}
#
# Dans la ligne, ajouter après
#
{postrow.QUOTE_ADD_IMG} {postrow.QUOTE_REMOVE_IMG}
Dans "posting.php" :
Code :
#
# Trouver
#
//
// Signature toggle selection
//
#
# Ajouter avant
#
// DEBUT MOD Multiquote
if($mode == 'reply')
{
// Récupération du cookie.
$post_list_in_cookie = $HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_multiquote_' . $topic_id];
if($post_list_in_cookie != '')
{
// Génération de la liste des id.
$post_list_in_cookie = str_replace('||', '|', $post_list_in_cookie);
$posts_to_quote = explode ('|', $post_list_in_cookie);
$sql_posts_list = '';
foreach($posts_to_quote as $post_to_quote)
{
// Si on est en mode "quote", on a déjà cité le message courrant, on ne l'inèsre donc pas dans la liste.
if($post_to_quote != '' && ($post_to_quote != $post_id))
{
$sql_posts_list .= ($sql_posts_list == '') ? $post_to_quote : ', ' . $post_to_quote;
}
}
// Si l'on a des posts à citer, on les ajoute en tête de message.
if($sql_posts_list != '')
{
$sql_quote = "SELECT p.post_id, p.poster_id, u.username AS post_username, t.post_text, t.bbcode_uid
FROM " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " t, " . USERS_TABLE . " u
WHERE p.post_id = t.post_id
AND p.poster_id = u.user_id
AND p.post_id IN ($sql_posts_list)
ORDER BY p.post_id DESC";
if (!($result_quote = $db->sql_query($sql_quote)))
{
message_die(GENERAL_ERROR, 'Could not obtain quotes', '', __LINE__, __FILE__, $sql_quote);
}
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replace_word);
// Ajout des posts cités un à un.
while($row_quote = $db->sql_fetchrow($result_quote))
{
// Nettoyage du nom d'utilisateur.
$quote_username = trim($row_quote['post_username']);
$message_quote = $row_quote['post_text'];
// Nettoyage des bbcode uid.
if($row_quote['bbcode_uid'] != '')
{
$message_quote = preg_replace('/\:(([a-z0-9]:)?)' . $row_quote['bbcode_uid'] . '/s', '', $message_quote);
}
// Conversions...
$message_quote = str_replace('<', '<', $message_quote);
$message_quote = str_replace('>', '>', $message_quote);
$message_quote = str_replace('<br />', "\n", $message_quote);
$message_quote = '[quote="' . $quote_username . '"]' . $message_quote . "[/quote]\n\n";
// Gestion de la censure.
if (!empty($orig_word))
{
$message_quote = (!empty($message_quote)) ? preg_replace($orig_word, $replace_word, $message_quote) : '';
}
// Ajout en tête de message.
$message = $message_quote . $message;
}
}
}
}
// FIN MOD Multiquote
Dans "includes/functions_post.php" :
Code :
#
# Trouver
#
include($phpbb_root_path . 'includes/functions_search.'.$phpEx);
$current_time = time();
#
# Ajouter après
#
// DEBUT MOD Multiquote
$cookiename = $board_config['cookie_name'];
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
setcookie($cookiename . '_multiquote_' . $topic_id, '', FALSE);
// FIN MOD Multiquote
Uploader les fichiers de ce zip aux emplacement suivants :
- templates/multiquote.js
- templates/subSilver/images/lang_french/icon_quote_add.gif
- templates/subSilver/images/lang_french/icon_quote_remove.gif