Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[MOD] Multiquote (1.0)

Poster un nouveau sujet Répondre au sujet

Rechercher dans ce sujet :
Messages
Darathor Sexe : Masculin
Site Admin
Membre

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 19 Mai 2006 23:18
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
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.1) (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.

Auteur : Darathor (darathor@free.fr)
Version : 1.0 (20/05/2005)
Compatibilité phpBB : 2.0.19


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_class = 'display_none';
      $quote_remove_class = 'display_inline';
   }
   else
   {
      $quote_add_class = 'display_inline';
      $quote_remove_class = '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;" class="' . $quote_add_class . '" />';
   $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;" class="' . $quote_remove_class . '" />';
   // 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 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' && !$preview)
{
   // 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)
               AND p.topic_id = $topic_id
            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('<', '&lt;', $message_quote);
            $message_quote = str_replace('>', '&gt;', $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 (en ce qui concerne les deux images, vous avez le choix entre 3 versions) :
- templates/multiquote.js
- templates/subSilver/images/lang_french/icon_quote_add.gif
- templates/subSilver/images/lang_french/icon_quote_remove.gif
Revenir en haut Aller en bas
Hors ligne | Profil | MP | E-mail | Site web
  Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum