Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Merci beaucoup, tes trop fort fanf 
Dernière modification par shane (01-05-2010 03:17:30)
Hors ligne
J'ai (et je en suis pas le seul
) rencontré un problème concernant l'ajout de couleur dans "actuellement en ligne", voici une modif à faire pour les personnes ayant le même problème que moi 
1 : Trouvé (ligne 182)
$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)
$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
++$num_guests;
2 : Remplacer par :
$result = $db->query('SELECT username, id, group_id, g_color FROM '.$db->prefix.'users AS u, '.$db->prefix.'groups AS g WHERE last_visit >= \''.$todaystamp.'\' and u.group_id = g.g_id ORDER by last_visit DESC') or error('Impossible de retrouver la liste des utilisateurs en ligne aujourd\'hui', __FILE__, __LINE__, $db->error());
while ($pun_user_online = $db->fetch_assoc($result))
{
$colorspan = (!empty($pun_user_online['g_color'])) ? '<span style="color:'.$pun_user_online['g_color'].'; font-weight:bold">' : '';
$colorspan2 = (!empty($pun_user_online['g_color'])) ? '</span>' : '';
if ($pun_user_online['id'] > 1)
$users[] = "\n\t\t\t\t".'<b><a href="profile.php?id='. $pun_user_online['id']. '">'.pun_htmlspecialchars($pun_user_online['ident']).$colorspan.$pun_user_online['username'].$colorspan2.'</a></b>';J'essaye en ce moment d'ajouter de la couleur dans l'index et le viewforum , c'est à dire ou se trouve le dernier post (par section et par topic), changer la couleur de l'auteur, mais je n'y arrive pas.
Vouala mon petit bout de code (trop simpliste) pour l'instant :
1 : Chercher (ligne 109):
// If there is a last_post/last_poster.
if ($cur_forum['last_post'] != '')
$last_post = '<a href="viewtopic.php?pid='.$cur_forum['last_post_id'].'#p'.$cur_forum['last_post_id'].'">'.format_time($cur_forum['last_post']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_forum['last_poster']).'</span>';
2 : Remplacer par :
// If there is a last_post/last_poster.
$db->query("SELECT g.g_color FROM ".$db->prefix.'groups');
$colorspan = (!empty($cur_post['g_color'])) ? '<span style="color:'.$cur_post['g_color'].'; font-weight:bold">' : '';
$colorspan2 = (!empty($cur_post['g_color'])) ? '</span>' : '';
if ($cur_forum['last_post'] != '')
$last_post = '<a href="viewtopic.php?pid='.$cur_forum['last_post_id'].'#p'.$cur_forum['last_post_id'].'">'.format_time($cur_forum['last_post']).'</a> <span class="byuser">'.$lang_common['by'].' '.$colorspan.pun_htmlspecialchars($cur_forum['last_poster']).$colorspan2.'</span>';Mais ma requête sql semble icomplete vu que rien ne se passe 
Quelqu'un aurait une idée?
La perfection s'écrit avec un grand "S" ....
Hors ligne
Petit up x)
La perfection s'écrit avec un grand "S" ....
Hors ligne
Elle est plus qu'incomplète, tu récupères toutes les couleurs qui existent sans spécifier l'utilisateur.
Le problème dans le cas présent est que seul le pseudo du dernier posteur est enregistrer dans la table, il faut donc faire deux jointure :
- une pour récupérer le numéro du groupe dans la table users grâce au champ "username"
- une pour récupérer la couleur du groupe dans la table group
En utilisant des jointures externes pour les cas où il n'y a pas encore de messages dans un forum.
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Merci fanf73, j'ai suivi ton conseil, j'me suis même approfondi sur les cours MySQL, et vouala ce que j'ai pour l'instant pour la requete :
$db->query("SELECT users.group_id, groups.g_color FROM".$db->prefix.'users LEFT JOIN'.$db->prefix.'groups ON users.groups_id=groups.g_id');Cependant, rien ne s'affiche, et je ne vois pas ou est le problème, je continue quand même de chercher 
La perfection s'écrit avec un grand "S" ....
Hors ligne
Pour récupérer les bonnes couleurs tu dois modifier la requête des sélection de topics / forums, afin que la couleur soit l'une des variables retournée en même temps que le nom, l'id, ...
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
J'ai (apres de longue recherche un peu partout) ceci :
$db->query("SELECT last_poster,group_id, g_color FROM". $db->prefix.'forums LEFT JOIN'. $db->prefix.'users ON last_poster=username LEFT JOIN'. $db->prefix.'groups ON group_id=g_id');Je m'approche du but, cependant, la je ne vois pas ce qu'il manque 
La perfection s'écrit avec un grand "S" ....
Hors ligne
Il manque que tu ne dois pas écrire une nouvelle requête, mais modifier celle qui existe déjà.
Tu as bien avancé donc je vais te donner la solution pour le fichier "index.php". A l'origine la requête de sélection des forums est ainsi
$result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY c.disp_position, c.id, f.disp_position', true) or error('Unable to fetch category/forum list', __FILE__, __LINE__, $db->error());Il faut la remplacer par
$result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster, g_color FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') LEFT JOIN '.$db->prefix.'users As u ON f.last_poster = u.username LEFT JOIN '.$db->prefix.'group AS g ON group_id = g_id WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY c.disp_position, c.id, f.disp_position', true) or error('Unable to fetch category/forum list', __FILE__, __LINE__, $db->error());et tu récupère la valeur de la couleur pour chaque forum dans la variable $cur_forum['g_color']
P.S. : je n'ai pas pu tester alors n'hésite pas s'il y a une erreur 
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Merci beaucoup pour tout 
Je viens de tester, et j'ai une erreur suite a ce code :
Error: Unable to fetch category/forum list.
Dernière modification par StevensHacker (31-05-2010 20:51:22)
La perfection s'écrit avec un grand "S" ....
Hors ligne
J'ai oublié un "s" au nom de la table, ainsi que l'alias de la table plus loin :
$result = $db->query('SELECT c.id AS cid, c.cat_name, f.id AS fid, f.forum_name, f.forum_desc, f.redirect_url, f.moderators, f.num_topics, f.num_posts, f.last_post, f.last_post_id, f.last_poster,, g_color FROM '.$db->prefix.'categories AS c INNER JOIN '.$db->prefix.'forums AS f ON c.id=f.cat_id LEFT JOIN '.$db->prefix.'forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id='.$pun_user['g_id'].') LEFT JOIN '.$db->prefix.'users As u ON f.last_poster = u.username LEFT JOIN '.$db->prefix.'groups AS g ON u.group_id = g_id WHERE fp.read_forum IS NULL OR fp.read_forum=1 ORDER BY c.disp_position, c.id, f.disp_position', true) or error('Unable to fetch category/forum list', __FILE__, __LINE__, $db->error());Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
J'avais corrigé (j'ai oublié de precisé
).
Mais j'ai pas vu pour l'alias 
Merci énormément, ca marche niquel, je vais l'adapter à mon viewforum et mon showrecent 
EDIT : J'ai enfin reussi
, pour le viewforum, le mod showrecent, et adapté au mod sous forum x)
voici un résumé des differentes etape pour les interessé
(je rappelle que ces modifications ont pour but d'ajouter la couleur du membre en fonction de son groupe, et que la mod colorgroup est obligatoire
)
Code trop long supprimé
Vouala pour ceux qui voudrait mettre de la couleur sans avoir installé le mod sousforum
Maintenant voici l'adaptation sur le mod showrecent
Code trop long supprimé
Maintenant voici l'adaptation sur le mod sous forum
Code trop long supprimé
Tout marche parfaitement sur mon forum 
Dernière modification par StevensHacker (01-06-2010 19:42:20)
La perfection s'écrit avec un grand "S" ....
Hors ligne
Je viens de tout réinstaller mon forum, ce mod bug encore.
Quand je l'ai installé il fonctionnait bien, après j'ai fais quelques modifications comme afficher les groupes, en ligne aujourd'hui, anniversaire en index, avec toujours les couleurs pour chaque groupe pour chaque mod.
Voila que ça déconne, si je me connecte en tant qu'admin, tous les membres sont en rouges (couleur que j'ai configuré), si je me connecté en tant que membre, je vois tout en noir (couleur que j'ai configuré), mais l'admin devrait rester rouge et pourtant il s'affiche noir ... pareil sur viewtopic, les couleurs des pseudos ne s'affiche plus, il n'y a que dans la liste des membres que ça fonctionne correctement.
Voici les images pour mieux comprendre:


Si quelqu'un peut m'aider c'est avec plaisir 
Hors ligne
Le plus simple serait de nous donner les lignes de code correspondant à cette partie pour que l'on puisse voir ce qui ne va pas.
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Il suffit de relire les pages précédentes de ce topic pour s'apercevoir que ce bug existe depuis le début et n'a pas été corrigé...
Cela est (a priori) lié à la gestion de la table online et du "temps mort en ligne".
Ce n'est pas un bug bloquant (il suffit de se déconnecter-reconnecter pour la partie "en ligne aujourd'hui"), et certaines fois, ça marche aussi pour la partie "en ligne".. 
Hors ligne
- Pour répondre à Mpok, je sais que ce bug existe déjà mais c'est assez ennuyant ... j'ai essayé de restaurer ma base de donnée, puis de réinstaller le mod et c'est toujours pareil !
Si je me connecte en tant qu'admin tout est rouge, en tant que membre tout est noir, il n'y a plus la distinction.
- Pour répondre à fanf73, maintenant viewtopic les couleurs marche mais pas dans l'index sauf pour le mod anniversaire les couleurs sont respectées, voici un bout de ma page index, incluant le mod anniversaire avec les couleurs, la légende des groupes:
$result = $db->query('SELECT user_id, ident, color 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)
{
$colorspan = (!empty($pun_user_online['color'])) ? '<span style="color:'.$pun_user_online['color'].'; font-weight:bold">' : '';
$colorspan2 = (!empty($pun_user_online['color'])) ? '</span>' : '';
$users[] = "\n\t\t\t\t".'<dd><a href="profile.php?id='.$pun_user_online['user_id'].'">'.$colorspan.pun_htmlspecialchars($pun_user_online['ident']).$colorspan2.'</a>';
}
else
++$num_guests;
}
$num_users = count($users);
// utilisateurs en ligne aujourd'hui
$todaystamp = strtotime(date('Y-m-d'));
$result = $db->query('SELECT username, id, group_id, last_visit, g_color FROM '.$db->prefix.'users AS u, '.$db->prefix.'groups AS g WHERE last_visit >= \''.$todaystamp.'\' and u.group_id = g.g_id 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']).'">'.$colorspan.$pun_user_online_today['username'].$colorspan2.'</a>';
$num_users_today = count($users_today);
echo "\t\t\t\t".'<dd>'.$lang_index['Users online'].': <strong>'.$num_users.'</strong></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Users today'].': <strong>'.$num_users_today.'</strong></dd>'."\n\t\t\t\t".'<dd>'.$lang_index['Guests online'].': <strong>'.$num_guests.'</strong></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".'</dl>'."\n\t\t\t".'<div class="clearer"></div>'."\n";
// Anniversaire
if ($pun_config['o_users_birthdate'] == '1')
{
// Fetch users online info and generate strings for output
$users = array();
$date = date('n/j/', time());
$result = $db->query('SELECT u.id,username,birthdate,g_color FROM '.$db->prefix.'users AS u LEFT JOIN '.$db->prefix.'groups AS g ON u.group_id = g.g_id WHERE birthdate LIKE \''.$date.'%\'') or error('Impossible de retrouver la liste anniversaire', __FILE__, __LINE__, $db->error());
while ($pun_user_birthdate = $db->fetch_assoc($result))
{
if($pun_user_birthdate['g_color'] != NULL)
$users[] = '<a href="profile.php?id='.$pun_user_birthdate['id'].'"><span style="color: '.$pun_user_birthdate['g_color'].'"><strong>'.pun_htmlspecialchars($pun_user_birthdate['username']).'</strong></span></a> ('.calculAge($pun_user_birthdate['birthdate']).')';
else
$users[] = '<a href="profile.php?id='.$pun_user_birthdate['id'].'">'.pun_htmlspecialchars($pun_user_birthdate['username']).'</a> ('.calculAge($pun_user_birthdate['birthdate']).')';
}
$num_users = count($users);
if ($num_users > 0)
echo "\t\t\t".'<dl id="birthdatelist" class= "clearb">'."\n\t\t\t\t".'<dt><strong>'.$lang_index['Birthdate'].': </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";
}
else
echo "\t\t".'</dl>'."\n\t\t\t".'<div class="clearer"></div>'."\n";
// Légende pour les pseudos
$result = $db->query('SELECT g_id, g_title,g_color FROM '.$db->prefix.'groups WHERE g_color LIKE "#%"', true) or error('Impossible de retrouver la liste des groupes', __FILE__, __LINE__, $db->error());
echo "\t\t\t".'<dl id="onlinelist" class= "clearb">'."\n\t\t\t\t".'<dt><strong>Légende :</dt>';
while ($pun_groups = $db->fetch_assoc($result))
{
echo " [<a href='userlist.php?show_group=".$pun_groups['g_id']."'><span style='color: ".$pun_groups['g_color']."'>".$pun_groups['g_title']."</span></a>] ";
}
echo '</dd>'."\n\t\t\t".'</dl>'."\n";
echo "\t\t\t".'<div class="clearer"></strong></div>'."\n";
?></div></div></div>Dernière modification par cavalier19 (13-06-2010 11:42:54)
Hors ligne
Ton code m'a l'air correct, je ne vois pas du tout où il pourrait y avoir une erreur
. Ça vient peut-être comme l'a dit Mpok de la gestion de la table online 
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Je dois effacer manuellement la table online dans ma base de données puis réinstaller le mod ?
Je vois dans cette table: user_id, color, ident, logged et idle.
Dernière modification par cavalier19 (13-06-2010 23:39:08)
Hors ligne
Je ne pense pas que ça solutionne ton problème, et je ne connais malheureusement pas de solution qui pourrait le résoudre.
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Ok merci c'est bien triste.
Je ne vais quand même pas tout recommencer mon forum à zéro juste pour un mod...
Est ce que si je l'install avec la nouvelle version ça peut changer les choses ?
Merci de ton aide en tout cas c'est bien gentil d'avoir regarder.
Dernière modification par cavalier19 (13-06-2010 23:43:53)
Hors ligne
Merci tout d'abord j'ai installé cette mod mais pas la couleur sur actuellement en ligne. Comment faire svp?
Hors ligne
Salut,
cavalier19, refaire un forum tout neuf n'est pas plus mal quand c'est ton premier
et puis ça te prendrais au max une journée,en le faisant bien tranquillement ...
Merci tout d'abord j'ai installé cette mod mais pas la couleur sur actuellement en ligne. Comment faire svp?
Si mes souvenirs sont bon,lire toutes les pages du topics
mais rien que dans la première page,un peu plus bas,tu as de quoi faire,après faut navigué sur toute la discutions.
Hors ligne
@Otacon : si ton forum est "tout neuf" (et même s'il ne l'est pas d'ailleurs, mais avec peu de mods installées), je te conseille fortement de passer en version 1.4. Il y a déjà une adaptation 1.4 de cette mod.
Hors ligne
Ok Mpok
et j'ai résolu au passage le souci.
Pour ceux qui ont le problème que j'avais c'était au niveau de functions 
Hors ligne
Salut les fluxnautes
Je viens d'installer cette mod
Lorsque je veux enregistrer une couleur en admin, groupe, réglages du groupe, je reçois la réponse suivante :
An error was encountered
Error: Unable to update group.
De quelle erreur peut-il s'agir pour que le système soit incapable de mettre à jour le groupe??? (j'ai fait des essais sur plusieurs groupes et j'ai tjrs la même réponse)
Merci
Yumat
Hors ligne
je viens de me rendre compte que dans la table groups, le champ g_color n'a pas été rajouté. En revanche, un champ color a été créé dans la table online.
Où est-ce que je me plante???
Merci
Yumat
Erreur, le champ g_color a bien été créé!!! Mais la question demeure, je ne peux donner ni des couleurs ni un titre aux groupes.
Il semblerait que ce pb ne soit pas lié aux couleurs! Il devait déjà exister avant mais cela ne m'arrange pas
J'annaule cette demande pour poser la question sur l'entraide
Avec toutes mes excuses
Dernière modification par yumat (26-07-2010 20:45:42)
Hors ligne