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 !
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
Peut-être un solution à tester !
Ici : http://custom.simplemachines.org/mods/index.php?mod=2698 - Compatible 2.0 (Peut-être installation en émulation ?)
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 (http://custom.simplemachines.org/mods/index.php?mod=2146), 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...
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
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 ! ;)
Bonjour,
Il faut expérimenter le code qui se trouve ici : http://www.simplemachines.org/community/index.php?topic=465097.msg3248028#msg3248028 (http://www.simplemachines.org/community/index.php?topic=465097.msg3248028#msg3248028)
Là j'ai pas testé donc à suivre.
:)
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
Bonjour,
Dis nous ce qu'il en est car j'ai très peu de temps libre pour le moment :)
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 ;)
Bonjour,
Donc sujet à suivre ... :)
Effectivement à suivre ... ;)
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é :)
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 ?
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.
:)
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 ;) )
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 :)
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
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 :)
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 ;)
Bonsoir,
Oui je sais qu'il y a encore à faire ce n'est qu'une piste de programmation pour celui qui veut s'y mettre. Moi pour le moment j'ai pas beaucoup de temps à y consacrer comme je l'ai indiqué ci-dessus car il y a pas mal de code y attenant suivant toutes les solutions existantes. Mais bon je n'oublie pas de voir celà quand j'ai un peu de temps disponible :)
Rome ne c'est pas construit en 1 jour ;D ;D ;D ;D
merci ;)
Bonsoir
pour info j'ai du déinstaller les modifs pour causes d'erreurs...
donc à suivre .... ;)
Bonjour,
Quand j'aurai du temps je rassemblerai les infos qui circulent pour faire ce genre de chose :)
c'est sur le BoardIndex.template.php que cela pose une erreur..
merci à bientôt ;D
Desoler de remonter ce sujet mes j'ai le même problème avec les Messages non lus..
Bonjour,
Sujet traité ici au final : http://www.simplemachines.org/community/index.php?topic=508952.msg3616713#msg3616713
:)