FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Vous n'êtes pas identifié(e).

#1 23-04-2012 12:12:04

a-snowboard
Membre
Inscription : 20-06-2011
Messages : 440
Site Web

[Résolu] Affichage membre en ligne aujourd"hui

J'ai remarqué un petit bug d'affichage que je traine depuis un bon petit moment :
Ce bug ne s'affiche que quand il n'y a aucun membre de connecté.
Quand personne n'est connecté le En ligne aujourd’hui s'affiche dans la ligné du dernier utilisateur inscrit.

huie.png

J'ai refait les manip d’installation du mod. Aucun changement. sad

Avez-vous une idée ?

Voici la partie de l'index concerné :

if ($pun_config['o_users_online'] == '1')
{
	// Fetch users online info and generate strings for output
	$num_guests = 0;
	$users = array();
	$result = $db->query('SELECT user_id, ident FROM '.$db->prefix.'online WHERE idle=0 ORDER BY ident', true) or error('Unable to fetch online list', __FILE__, __LINE__, $db->error());

	while ($pun_user_online = $db->fetch_assoc($result))
	{
		if ($pun_user_online['user_id'] > 1)
		{
			if ($pun_user['g_view_users'] == '1')
				$users[] = "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online['user_id'].'">'.pun_htmlspecialchars($pun_user_online['ident']).'</a>';
			else
				$users[] = "\n\t\t\t\t".'<dd>'.pun_htmlspecialchars($pun_user_online['ident']);
		}
		else
			++$num_guests;
	}

	$num_users = count($users);
	
    // utilisateurs en ligne aujourd'hui
    $todaystamp = strtotime(date('Y-m-d'));

    $result = $db->query('SELECT username, id, last_visit from '.$db->prefix.'users WHERE last_visit >= \''.$todaystamp.'\' ORDER by last_visit DESC') or error('Impossible de retrouver la liste des utilisateurs en ligne aujourd\'hui', __FILE__, __LINE__, $db->error());

    $users_today = array();
    while ($pun_user_online_today = $db->fetch_assoc($result))
        $users_today[] .=  "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online_today['id'].'" title="Dernière visite de '.pun_htmlspecialchars($pun_user_online_today['username']).' : '.format_time($pun_user_online_today['last_visit']).'">'.pun_htmlspecialchars($pun_user_online_today['username']).'</a>';
        
    $num_users_today = count($users_today);
	
	echo "\t\t\t\t".'<dd><span>'.sprintf($lang_index['Users online'], '<strong>'.forum_number_format($num_users).'</strong>').'</span></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Users today'].': <strong>'.$num_users_today.'</strong></dd>'."\n\t\t\t\t".'<dd><span>'.sprintf($lang_index['Guests online'], '<strong>'.forum_number_format($num_guests).'</strong>').'</span></dd>'."\n\t\t\t".'</dl>'."\n".'';


	if ($num_users > 0)
		echo "\t\t\t".'<dl id="onlinelist" class="clearb">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online'].' </strong></dt>'."\t\t\t\t".implode(',</dd> ', $users).'</dd>'."\n\t\t\t".'</dl>'."\n";
	else
		echo "\t\t\t".'<div class="clearer"></div>'."\n";
		
    // liste utilisateurs en ligne aujourd'hui
    echo "\t\t\t".'<dl id="onlinetodaylist">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online today'].': </strong></dt>';
                
    if ($num_users_today > 0) 
        echo implode(',</dd> ', $users_today).'</dd>'."\n\t\t\t".'</dl>'."\n";
    else
        echo '<dd><em>'.$lang_index['None'].'</em></dd>'."\n\t\t\t".'</dl>'."\n";

}
else

echo "\t\t\t".'</dl>'."\n\t\t\t".'<div class="clearer"></div>'."\n";


?>
		</div>
	</div>
</div>
<?php

$footer_style = 'index';
require PUN_ROOT.'footer.php';

Je pense qu'il faut que je fasse un truc avec le else tout en bas mais malgré mes tentative rien ne bouge. sad

Dernière modification par a-snowboard (03-05-2012 13:36:01)


Le roi du snowboard ! Sans prétention hein ? mdr

Fluxbb 1.4.7, Forum Photo Paris

Hors ligne

#2 23-04-2012 14:51:15

a-snowboard
Membre
Inscription : 20-06-2011
Messages : 440
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

Bon finalement j'ai réussi à résoudre mon souci :
Dans index.php
Chercher :

echo "\t\t\t\t".'<dd><span>'.sprintf($lang_index['Users online'], '<strong>'.forum_number_format($num_users).'</strong>').'</span></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Users today'].': <strong>'.$num_users_today.'</strong></dd>'."\n\t\t\t\t".'<dd><span>'.sprintf($lang_index['Guests online'], '<strong>'.forum_number_format($num_guests).'</strong>').'</span></dd>'."\n\t\t\t".'</dl>'."\n".'';

Ajouter après

?>
		</div>
	</div>
</div>
<?php
?>
<div id="brdstats" class="block">
	<h2><span><?php echo $lang_index['Board info'] ?></span></h2>
<?php

Tout en bas chercher

?>
		</div>
	</div>
</div>
<?php

remplacer par :

?>
</div>
<?php

Ensuite allez sur air.css (ou autre thème par défaut)

ligne 343, chercher :

#brdstats #onlinelist {
	border-top-style: dotted;
	border-top-width: 1px;
	clear: both;
}

remplacer par :

/*
#brdstats #onlinelist {
	border-top-style: dotted;
	border-top-width: 1px;
	clear: both;
}
*/

Et affaire réglé en ce qui me concerne ! smile


Le roi du snowboard ! Sans prétention hein ? mdr

Fluxbb 1.4.7, Forum Photo Paris

Hors ligne

#3 23-04-2012 16:58:28

Wan
Membre
Inscription : 12-02-2010
Messages : 555
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

Autre solution qui évite de toucher à la feuille de style (ce qui peut engendrer d'éventuelles erreurs d'affichage sur d'autres pages) :

if ($pun_config['o_users_online'] == '1')
{
	// Fetch users online info and generate strings for output
	$num_guests = 0;
	$users = array();
	$result = $db->query('SELECT user_id, ident FROM '.$db->prefix.'online WHERE idle=0 ORDER BY ident', true) or error('Unable to fetch online list', __FILE__, __LINE__, $db->error());

	while ($pun_user_online = $db->fetch_assoc($result))
	{
		if ($pun_user_online['user_id'] > 1)
		{
			if ($pun_user['g_view_users'] == '1')
				$users[] = "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online['user_id'].'">'.pun_htmlspecialchars($pun_user_online['ident']).'</a>';
			else
				$users[] = "\n\t\t\t\t".'<dd>'.pun_htmlspecialchars($pun_user_online['ident']);
		}
		else
			++$num_guests;
	}

	$num_users = count($users);
	
	// utilisateurs en ligne aujourd'hui
    $todaystamp = strtotime(date('Y-m-d'));

    $result = $db->query('SELECT username, id, last_visit from '.$db->prefix.'users WHERE last_visit >= \''.$todaystamp.'\' ORDER by last_visit DESC') or error('Impossible de retrouver la liste des utilisateurs en ligne aujourd\'hui', __FILE__, __LINE__, $db->error());

    $users_today = array();
    while ($pun_user_online_today = $db->fetch_assoc($result))
        $users_today[] .=  "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online_today['id'].'" title="Dernière visite de '.pun_htmlspecialchars($pun_user_online_today['username']).' : '.format_time($pun_user_online_today['last_visit']).'">'.pun_htmlspecialchars($pun_user_online_today['username']).'</a>';
        
    $num_users_today = count($users_today);
	
	echo "\t\t\t\t".'<dd><span>'.sprintf($lang_index['Users online'], '<strong>'.forum_number_format($num_users).'</strong>').'</span></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Users today'].': <strong>'.$num_users_today.'</strong></dd>'."\n\t\t\t\t".'<dd><span>'.sprintf($lang_index['Guests online'], '<strong>'.forum_number_format($num_guests).'</strong>').'</span></dd>'."\n\t\t\t".'</dl>'."\n".'';

	if ($num_users > 0)
	{ 
		echo "\t\t\t".'<dl id="onlinelist" class="clearb">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online'].' </strong></dt>'."\t\t\t\t".implode(',</dd> ', $users).'</dd>';
		if ($num_users_today > 0)
		    echo '<br />'."\t\t\t\t".'<dt><strong>'.$lang_index['Online today'].': </strong></dt>'."\t\t\t\t".implode(',</dd> ', $users_today).'</dd>';
		echo "\n\t\t\t".'</dl>'."\n";
	}
	else
	{
		if ($num_users_today > 0)
			echo "\t\t\t".'<dl id="onlinelist" class="clearb">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Online today'].': </strong></dt>'."\t\t\t\t".implode(',</dd> ', $users_today).'</dd>'."\n\t\t\t".'</dl>'."\n";
		else
			echo "\t\t\t".'<div class="clearer"></div>'."\n";
	}
}

Dernière modification par Wan (28-04-2012 11:28:09)

Hors ligne

#4 23-04-2012 17:15:59

a-snowboard
Membre
Inscription : 20-06-2011
Messages : 440
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

Merci wan.

En plis ça fait exactement ce que je souhaitais ! Et c'est plus propre ! smile

Pour le CSS c'est le risque que j'ai pris. Et pourtant j'ai cherché avant d'aller trifouiller le CSS ! sad

Problème réglé, je met le 1er post à jour.


Le roi du snowboard ! Sans prétention hein ? mdr

Fluxbb 1.4.7, Forum Photo Paris

Hors ligne

#5 23-04-2012 20:41:35

Wan
Membre
Inscription : 12-02-2010
Messages : 555
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

a-snowboard a écrit :

Merci wan.

You're welcome ! smile
Du coup je vais signaler ça sur le topic de cette mod, ou en tout cas sur son adaptation pour les versions 1.4.x. wink

Hors ligne

#6 23-04-2012 21:42:28

a-snowboard
Membre
Inscription : 20-06-2011
Messages : 440
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

Je t'en prie ! smile


Le roi du snowboard ! Sans prétention hein ? mdr

Fluxbb 1.4.7, Forum Photo Paris

Hors ligne

#7 27-04-2012 13:31:14

a-snowboard
Membre
Inscription : 20-06-2011
Messages : 440
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

Au fait Wan,  le nombre d'utilisateur en ligne aujourd'hui n'apparais plus.

Je n'en parle que maintenant car ce n’était pas ma priorité.

Est-ce que ça peut être lié a une table manquante ? Car sur mon forum de test il apparait
. hmm

Il doit y avoir un truc manquant dans le code tu tu as proposé.

En effet sur mon forum de test, sur la page index.php avec le nouveau code la ligne n'apparait pas.
Tandis que sur forum.php avec l'ancienne version du code, la ligne apparait (mais avec le problème cité en tout début de topic)

Dernière modification par a-snowboard (27-04-2012 13:52:23)


Le roi du snowboard ! Sans prétention hein ? mdr

Fluxbb 1.4.7, Forum Photo Paris

Hors ligne

#8 27-04-2012 13:44:09

Wan
Membre
Inscription : 12-02-2010
Messages : 555
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

a-snowboard a écrit :

Au fait Wan,  le nombre d'utilisateur en ligne aujourd'hui n'apparais plus.

Je n'en parle que maintenant car ce n’était pas ma priorité.

Est-ce que ça peut être lié a une table manquante ? Car sur mon forum de test il apparait. hmm

Je suis perdu. sad

Moi je le vois apparaître en tant qu'invité...

Hors ligne

#9 27-04-2012 13:56:04

a-snowboard
Membre
Inscription : 20-06-2011
Messages : 440
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

a bon ?

on parle bien de : Membres aujourd'hui : 17 (exemple de fluxbb)

ligne qui récapitule le nombre de membre connecté aujourd'hui.

Je ne le vois pas. sad
Pourtant je te crois, pour ça il n'y a pas de souci. smile


Le roi du snowboard ! Sans prétention hein ? mdr

Fluxbb 1.4.7, Forum Photo Paris

Hors ligne

#10 27-04-2012 14:20:44

Wan
Membre
Inscription : 12-02-2010
Messages : 555
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

Voilà ce que je vois en tant qu'invité :
120427023146172514.jpg

Hors ligne

#11 27-04-2012 14:25:43

a-snowboard
Membre
Inscription : 20-06-2011
Messages : 440
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

Pareil pour moi

Mais il manque la ligne : Membres aujourd'hui : 17

On peut la voir sur fluxbb ici : http://fluxbb.fr/forums/index.php


Le roi du snowboard ! Sans prétention hein ? mdr

Fluxbb 1.4.7, Forum Photo Paris

Hors ligne

#12 27-04-2012 16:04:51

Wan
Membre
Inscription : 12-02-2010
Messages : 555
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

O.k., j'avais mal compris : ce n'est pas la liste qui n'apparaît pas, mais le nombre d'utilisateurs du jour.
Trouve :

	echo "\t\t\t\t".'<dd><span>'.sprintf($lang_index['Users online'], '<strong>'.forum_number_format($num_users).'</strong>').'</span></dd>'."\n\t\t\t\t".'<dd><span>'.sprintf($lang_index['Guests online'], '<strong>'.forum_number_format($num_guests).'</strong>').'</span></dd>'."\n\t\t\t".'</dl>'."\n";

et remplace par :

	echo "\t\t\t\t".'<dd><span>'.sprintf($lang_index['Users online'], '<strong>'.forum_number_format($num_users).'</strong>').'</span></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Users today'].': <strong>'.$num_users_today.'</strong></dd>'."\n\t\t\t\t".'<dd><span>'.sprintf($lang_index['Guests online'], '<strong>'.forum_number_format($num_guests).'</strong>').'</span></dd>'."\n\t\t\t".'</dl>'."\n".'';

(je vais corriger dans le message ad-hoc de la mod).

Hors ligne

#13 27-04-2012 17:38:07

a-snowboard
Membre
Inscription : 20-06-2011
Messages : 440
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

Parfait,

tu devrais peut être éditer la solution que tu m'avais proposé plus haut ?

Merci Wan ! smile


Le roi du snowboard ! Sans prétention hein ? mdr

Fluxbb 1.4.7, Forum Photo Paris

Hors ligne

#14 28-04-2012 11:29:00

Wan
Membre
Inscription : 12-02-2010
Messages : 555
Site Web

Re : [Résolu] Affichage membre en ligne aujourd"hui

a-snowboard a écrit :

tu devrais peut être éditer la solution que tu m'avais proposé plus haut ?

C'est fait ! wink

Hors ligne

Pied de page des forums