Sujets non lus et bouton off

Started by Estelnaur, October 12, 2012, 07:50:31 AM

Previous topic - Next topic

Estelnaur

Bonjour à tous !

Adepte des forums SMF, je suis désespérément à la recherche d'une option particulière, existante sur d'autres forums mais que je n'arrive pas à retrouver ici...

Par défaut lorsqu'on lit le sujet le plus récent d'une section, le bouton passe en mode off, même si d'autres sujets n'ont pas été lus.

Est-il possible de maintenir le bouton "on" actif lorsqu'un ou plusieurs sujets n'ont pas été lus dans la section ?

Merci d'avance !

Zuki.

Bonjour,

A ma connaissance il n'y a pas moyen de maintenir le "on".

Mais il y a d'autres solutions pour voir ses messages non lus. Exemple sur l'accueil : "Messages non lus depuis votre dernière visite." - L'image "Nouveau" reste en place dans la  section sur les sujets non lus.


Sujet déjà traité ici : http://www.simplemachines.org/community/index.php?topic=481164.msg3368522#msg3368522


Zuki.

Peut-être un solution à tester !

Ici : http://custom.simplemachines.org/mods/index.php?mod=2698  - Compatible 2.0 (Peut-être installation en émulation ?)


Estelnaur

Bonjour, et merci de prendre le temps de me répondre !

Au niveau des mods j'avais déjà pas mal regardé sans rien trouver de probant, j'ai tenté Highlight Unread Topics, sans succès... Je ne crois pas que celui que tu me proposes réponde davantage à ce que je recherche, on dirait plutôt qu'il permet de créer de nouveaux sujets depuis la page principale...

A mon avis on doit pouvoir régler ça directement dans le code, mais je ne sais pas trop où chercher, ni quoi modifier...

Web68

Bonjour,
j'étais aussi intéressé mais cela n'existe malheureusement pas ici.

Maximus23 m'avais déjà répondu mais je reste ouvert à toutes solutions.

Bonne journée
LIBERTE EGALITE FRATERNITE

Zuki.

Bonjour,

Je viens de lire dans la section "Support" le même genre de demande : http://www.simplemachines.org/community/index.php?topic=487742.msg3416444#msg3416444

En gros, l'explication est simple (enfin il me semble) ; l'icône nous concernant est on.png (Nouveaux messages) son job c'est de nous informer qu'il y a "du nouveau" dans la "Section" !  (On n'est d'accord !)

On va dans la "Section", mais on ne regarde pas tous les sujets ; quand on revient dans l'accueil le "on.png" est passé à "off.png".
C'est logique ! Il n'y a plus de "neuf" dans la Section puisque nous y sommes aller !!!

Le "ON" signale une nouveautés dans la "Section", pas qu'il y a des sujets non lus. Pour cela il faudrait que le "NEW.gif" soit intégré au même endroit que le "ON", dans la "Section".

J'espère avoir été clair !  ;)


maximus23

Bonjour,

Il faut expérimenter le code qui se trouve ici : http://www.simplemachines.org/community/index.php?topic=465097.msg3248028#msg3248028

Là j'ai pas testé donc à suivre.

:)

Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Web68

#7
Cela semble fonctionner merci  ;)
J'ai parlé trop vite, il semble qu'il ne revient pas sur "message lu" tout seul
je vais encore faire des tests
je comprends pas tout en anglais
merci quand même pour l'info
LIBERTE EGALITE FRATERNITE

maximus23

Bonjour,

Dis nous ce qu'il en est car j'ai très peu de temps libre pour le moment :)

Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Web68

Je confirme chez moi obligation de passer par les "messages non lu depuis..." pour faire passer en of sur la page d'accueil
et sous Firefox

bon c'est un début intéressant

bonne journée  ;)
LIBERTE EGALITE FRATERNITE

maximus23

Bonjour,

Donc sujet à suivre ... :)

Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Web68

LIBERTE EGALITE FRATERNITE

maximus23

#12
Bonjour,

Voici un test à faire sur un forum de tests.

Celà permet de laisser marquées les sections qui contiennent des messages non lus.

Fichier Index.template.php
Rechercher :

  // Is the forum in maintenance mode?
  if ($context['in_maintenance'] && $context['user']['is_admin'])
   echo '
     <li class="notice">', $txt['maintain_mode_on'], '</li>';

Mettre Avant :

getUnreadedNumber () ;


===============================================================

Fichier BoartdIndex.template :
Rechercher :


echo '
<div id="boardindex_table">
  <table class="table_list">';


Ajouter Après :

$i = 0; 

Rechercher :


if ($board['new'] || $board['children_new'])


Remplacer par :


$nummer_unread = $context['unreadtread'] [$i++] ['unreadtopic'] ;
if (($nummer_unread <> 0) && ($board['new'] || $board['children_new']))


==================================================

Fichier Sources/MessageIndex.php
Rechercher :


  $smcFunc['db_insert']('replace',
   '{db_prefix}log_boards',
   array('id_msg' => 'int', 'id_member' => 'int', 'id_board' => 'int'),
   array($modSettings['maxMsgID'], $user_info['id'], $board),
   array('id_member', 'id_board')
  );
  if (!empty($board_info['parent_boards']))
  {
   $smcFunc['db_query']('', '
    UPDATE {db_prefix}log_boards
    SET id_msg = {int:id_msg}
    WHERE id_member = {int:current_member}
     AND id_board IN ({array_int:board_list})',
    array(
     'current_member' => $user_info['id'],
     'board_list' => array_keys($board_info['parent_boards']),
     'id_msg' => $modSettings['maxMsgID'],
    )
   );
   // We've seen all these boards now!
   foreach ($board_info['parent_boards'] as $k => $dummy)
    if (isset($_SESSION['topicseen_cache'][$k]))
     unset($_SESSION['topicseen_cache'][$k]);
  }


Supprimer ce code.

==============================================================

Fichier Sources/Load.php
Rechercher la fin de fichier :


?>


Mettre Avant :


function getUnreadedNumber () {
global $smcFunc, $scripturl, $user_info, $modSettings, $txt;
global $settings, $context;
$result_boards = $smcFunc['db_query']('', '
   SELECT
   b.id_board,
   IFNULL(num_topics - COUNT(t.id_topic > lt.id_topic),0) AS unreadtopic
   FROM {db_prefix}boards AS b
   LEFT JOIN {db_prefix}topics AS t ON (b.id_board = t.id_board)   
   LEFT JOIN {db_prefix}log_topics AS lt ON (lt.id_member = {int:current_member} AND lt.id_topic = t.id_topic)
   LEFT JOIN {db_prefix}log_mark_read AS lmr ON (lmr.id_board = b.id_board AND lmr.id_member = {int:current_member})
   GROUP BY b.id_board     
  ',
  array(
   'current_member' => $user_info['id'] 
  )
);
$context['unreadtread'] = array();

while ($row_board = $smcFunc['db_fetch_assoc']($result_boards))
{
  $context['unreadtread'][] = $row_board;
}


}


Pour que tout fonctionne correctement repartir à zéro sur la table

log_boards log mark_read log_topics pour celà simplement les VIDER.

Voilà bon tests j'espère que j'ai rien oublié :)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Web68

moi j'ai dans messageindex
Quote$smcFunc['db_insert']('replace',
         '{db_prefix}log_topics',
         array('id_msg' => 'int', 'id_member' => 'int', 'id_topic' => 'int'),
         $markArray,
         array('id_member', 'id_topic')
      );
   }

   foreach ($moveCache as $topic)
   {
      // Didn't actually move anything!
      if (!isset($topic[0]))
         break;

      logAction('move', array('topic' => $topic[0], 'board_from' => $topic[1], 'board_to' => $topic[2]));
      sendNotifications($topic[0], 'move');
   }
   foreach ($lockCache as $topic)
   {
      logAction($lockStatus[$topic] ? 'lock' : 'unlock', array('topic' => $topic, 'board' => $lockCacheBoards[$topic]));
      sendNotifications($topic, $lockStatus[$topic] ? 'lock' : 'unlock');
   }
   foreach ($stickyCache as $topic)
   {
      logAction($stickyCacheStatus[$topic] ? 'unsticky' : 'sticky', array('topic' => $topic, 'board' => $stickyCacheBoards[$topic]));
      sendNotifications($topic, 'sticky');
   }

   updateStats('topic');
   updateStats('message');
   updateSettings(array(
      'calendar_updated' => time(),
   ));

   if (!empty($affectedBoards))
      updateLastMessages(array_keys($affectedBoards));

   redirectexit($redirect_url);
}

?>

donc je supprime quoi ?
LIBERTE EGALITE FRATERNITE

maximus23

Bonjour,

Quand tu as fais tes tests décris plus haut tu as remis le code par après ? car tu ne saurais pas l'effacer deux fois :)

Celà se situe ici :


  // We can't know they read it if we allow prefetches.



:)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Web68

ok j'annule mes précédentes modifs et je recommence sur le fichier d'origine
Merci

Je vous dirais dès que possible si cela fonctionne (mais je n'ai pas trop de doute  ;) )
LIBERTE EGALITE FRATERNITE

maximus23

Bonjour,

Moi j'ai fait le code en local en vitesse donc il est loin d'être optimal mais ici en local pas de soucis. Donc on verra les bugs à corriger le cas échéant :)
Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Web68

Hip Hip Hip hourra pour Maximus23 !!!  ;D ;D ;D
Cela fonctionne
Merci à toi

cela serait il pas un mod intéressant ???

bonne journée  :D
LIBERTE EGALITE FRATERNITE

maximus23

Bonjour,

Si d'autres veulent tester bienvenue au club :)

Sinon c'est toujours le manque de temps qui restreint les tests et essais de développement car celà doit tout au moins être testé un minimum et corrigé selon les cas :)

Pas de support par PM ou Courrier...Veuillez utiliser le forum pour vous avoir une réponse rapide à votre demande d'aide. Merci.
Amitiés et à Bientôt...
No support by PM or Mail...You will get better and faster responses in the support forums. Thank you.
Have a nice day...

Web68

Bonsoir,
Je crois qu'il y a encore des petits réglages à faire

- Si on lit le message sans rentrer dans la section, mais en allant au plus court (ce que font la majorité des gens) c'est à dire en cliquant à droite,  l'icône de la page d'accueil repasse à messages lus, même s'il y a d'autres messages non lus dans la section.
- Si on rentre dans la section et qu'on lit chaque message non lu (ceux qui ont le petit carré 'nouveau') et qu'on revient sur la page d'accueil, là l'icône reste 'messages non lus' alors que tous sont lus!!

Pas facile l'explication mais il y a tellement de solutions...
merci  ;)
LIBERTE EGALITE FRATERNITE

Advertisement: