Affichage :
Le laboratoire de Darathor Index du Forum

Le laboratoire de Darathor

Ressources diverses, principalement sur les fourms phpBB
[ADD-ON] Mark sub-forums (TEST - A)

Ce forum est verrouillé, vous ne pouvez pas poster, ni répondre, ni éditer les sujets. Ce sujet est verrouillé, vous ne pouvez pas éditer les messages ou faire de réponses.

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

Inscrit le : 02 Nov 2003
Messages : 1101
Localisation : Strasbourg
MessagePosté le : 15 Aoû 2005 14:22
Masquer ce messageAfficher ce message
Répondre en citantAjouter à liste des messages à citerRetirer de la liste des messages à citer
Citation :
But : Ajoute dans les forums contenant des sous-forums d'un lien permettant de marquer comme lus les topics des sous-forums en plus des topics du forum lui-même. Corrige également une erreur de traduction (mot manquant) dans le message apparaissant après le marquage d'un forum.

Prérequis :
- Pseudo sub-forums.

Auteur : Darathor (darathor@free.fr)
Version : 1.0 (15/08/2005)
Compatibilité phpBB : 2.0.17


Dans "viewtopic.php" :
Code :
#
# Trouver
#
//
// End handle marking posts
//

#
# Ajouter avant
#
// DEBUT MOD Mark sub-forums
elseif($mark_read == 'topics_sub')
{
   if($userdata['session_logged_in'])
   {
      $sql = "SELECT MAX(post_time) AS last_post, f.forum_id AS forum_id
         FROM " . POSTS_TABLE . " AS p, " . FORUMS_TABLE . " AS f 
         WHERE f.forum_id = p.forum_id
            AND (p.forum_id = $forum_id OR attached_forum_id = $forum_id)
         GROUP BY forum_id";
      if(!($result = $db->sql_query($sql)))
      {
         message_die(GENERAL_ERROR, 'Could not obtain forums information', '', __LINE__, __FILE__, $sql);
      }

      if($rows = $db->sql_fetchrowset($result))
      {
         $tracking_forums = (isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f'])) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_f']) : array();
         $tracking_topics = (isset($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t'])) ? unserialize($HTTP_COOKIE_VARS[$board_config['cookie_name'] . '_t']) : array();
         
         $maj = FALSE;
         for($i=0; $i<count($rows); $i++)
         {
            $forum_id = $rows[$i]['forum_id'];
            if((count($tracking_forums) + count($tracking_topics)) >= 150 && empty($tracking_forums[$forum_id]))
            {
               asort($tracking_forums);
               unset($tracking_forums[key($tracking_forums)]);
            }

            if($rows[$i]['last_post'] > $userdata['user_lastvisit'])
            {
               $tracking_forums[$forum_id] = time();
               $maj = TRUE;
            }
         }
         
         if($maj)
         {
            setcookie($board_config['cookie_name'] . '_f', serialize($tracking_forums), 0, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);
         }
      }

      $template->assign_vars(array(
         'META' => '<meta http-equiv="refresh" content="3;url=' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">')
      );
   }

   $message = $lang['MaSF_Topics_marked_read_sub'] . '<br /><br />' . sprintf($lang['Click_return_forum'], '<a href="' . append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id") . '">', '</a> ');
   message_die(GENERAL_MESSAGE, $message);
}
// FIN MOD Mark sub-forums

#
# Trouver
#
   'L_MARK_TOPICS_READ' => $lang['Mark_all_topics'],

#
# Ajouter après
#
   // DEBUT MOD Mark sub-forums
   'L_MARK_TOPICS_READ_SUB' => $lang['MaSF_Mark_all_topics_sub'],
   // FIN MOD Mark sub-forums

#
# Trouver
#
   'U_MARK_READ' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;mark=topics"))

#
# Ajouter avant
#
   // DEBUT MOD Mark sub-forums
   'U_MARK_READ_SUB' => append_sid("viewforum.$phpEx?" . POST_FORUM_URL . "=$forum_id&amp;mark=topics_sub"),
   // FUN MOD Mark sub-forums


Dans "language/lang_french/lang_main.php" :
Code :
#
# Trouver
#
$lang['Topics_marked_read'] = 'Les sujets de forum sont à présent marqués comme lus.';

#
# Remplacer par
#
// DEBUT MOD Mark sub-forums
// -- DEBUT Enlevé
// $lang['Topics_marked_read'] = 'Les sujets de forum sont à présent marqués comme lus.';
// -- FIN Enlevé
$lang['Topics_marked_read'] = 'Les sujets de ce forum sont à présent marqués comme lus.';
// FIN MOD Mark sub-forums

#
# Trouver
#
?>

#
# Ajouter avant
#
// DEBUT MOD Mark sub-forums
$lang['MaSF_Mark_all_topics_sub'] = 'Marquez tous les sujets comme lus (<strong>sous-forums compris</strong>)';
$lang['MaSF_Topics_marked_read_sub'] = 'Les sujets de ce forum et de ses sous-forums sont à présent marqués comme lus.';
// FIN MOD Mark sub-forums


Dans "templates/subsilver/viewforum_body.tpl" :
Code :
#
# Dans une ligne, trouver
#
 <td align="right" valign="bottom" class="nav" nowrap="nowrap"><span class="gensmall"><a href="{U_MARK_READ}">{L_MARK_TOPICS_READ}</a></span></td>

#
# Dans la ligne, ajouter après
#
     <td align="right" valign="bottom" class="nav" nowrap="nowrap"><span class="gensmall"><a href="{U_MARK_READ}">{L_MARK_TOPICS_READ}</a>
          <!-- BEGIN switch_attached_list -->
        <br /><a href="{U_MARK_READ_SUB}">{L_MARK_TOPICS_READ_SUB}</a>
        <!-- END switch_attached_list -->
        </span></td>

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