Bonjour,
J'ai créé des groupes sur mon forum myBB avec des couleurs qui s'affiche correctement au pied de page.
Mon problème est que lorsque qu'un membre créé un post, la couleur de son groupe ne répète pas dans le post.
Seriez-vous où je pourrais faire la modification afin que chaque membre garde la couleur de son groupe lorsqu'il post ?
Merci d'avance pour votre aide.
Franck
Bonjour,
Absolument personne serait m'aider ?
Toujours dans l'attente d'une âme charitable
Bonjour,
Merci pour votre réponse.
J'ai cherché dans tous les post et toutes les discussions inclus dans votre message, seulement je ne trouve pas la solution a mon problème.
Ci-joint une image de souci rencontré :
Ce que je souhaiterais, c'est que la couleur de l'utilisateur du groupe soit réutilisée dans la colonne du post " dernier message" ( dans ce cas, la couleur devrait être verte )
Merci d'avance pour votre retour
Franck
Je n'ai strictement rien compris ...
(15-12-2011, 16:20)Ch00s3r a écrit : [ -> ]Je n'ai strictement rien compris ...
- Dans mon exemple, le groupe "Membre Privilégié FFKR" est en vert = OK
- Le membre "test1" est en vert = OK
- A l’intérieur du post créé par le membre, son pseudo est ecrit en vert = OK
- Sur mon image ci-dessus, dans l'index du forum, la colonne "dernier message" ( a droite ), le membre n'a pas sa couleur verte = Non OK
Comment puis-je rappeler la couleur du posteur à cette endroit là ?
En espérant avoir été plus clair.
PS : J'ajoute l'image de ce que j'ai sur mon ancien forum ( forumactif ) et que je souhaiterais avoir sur mon forum actuel ( MyBB )
Les deux pseudos encadré sont tout deux en vert :s
Ah non je retire ce que j'ai dit (tu avais dit si-dessus) Je ne sais pas comment réparé sa , moi je n'ai pas se problème :s
Cette fonctionnalité d'afficher le nom formaté de l'utilisateur dans la liste des forums tel que vu dans l'ancien forum n'est pas intégrée dans MyBB, j'imagine qu'elle fût obtenue à l'aide d'un plugin ou d'une modification du fichier source "functions_forumlist.php"...
Merci messieurs, même si mon souci ne peut être soldé.
A moins que vous sachiez dans le fichier source "functions_forumlist.php" quoi modifier ?...
Il faudrait remplacer la ligne :
Code PHP :
$lastpost_profilelink = build_profile_link($lastpost_data['lastposter'], $lastpost_data['lastposteruid']);
Par quelque chose comme ceci :
Code PHP :
global $db;
$query = $db->query("
SELECT u.*
FROM ".TABLE_PREFIX."users u
LEFT JOIN ".TABLE_PREFIX."usergroups g ON (g.gid=u.usergroup)
WHERE u.uid = $lastpost_data['lastposteruid']
LIMIT 1
");
if ($lastposter_info = $db->fetch_array($query)){
$lastpost_username_formatted = format_name($lastpost_data['lastposter'], $lastposter_info['usergroup'], $lastposter_info['displaygroup']);
}else{
$lastpost_username_formatted = $lastpost_data['lastposter'];
}
$lastpost_profilelink = build_profile_link($lastpost_username_formatted, $lastpost_data['lastposteruid']);
Je n'ai pas vérifier le code, mais cela devrait fonctionner du premier coup!
P.S. Il faut considérer que ces modifications seront supprimées à la prochaine mise-à-jour du fichier.
Il y a une erreur dans ton code :
Voilà le corrigé
Code PHP :
global $db;
$query = $db->query("
SELECT u.*
FROM ".TABLE_PREFIX."users u
LEFT JOIN ".TABLE_PREFIX."usergroups g ON (g.gid=u.usergroup)
WHERE u.uid = ".$lastpost_data['lastposteruid']."
LIMIT 1
");
if ($lastposter_info = $db->fetch_array($query)){
$lastpost_username_formatted = format_name($lastpost_data['lastposter'], $lastposter_info['usergroup'], $lastposter_info['displaygroup']);
}else{
$lastpost_username_formatted = $lastpost_data['lastposter'];
}
$lastpost_profilelink = build_profile_link($lastpost_username_formatted, $lastpost_data['lastposteruid']);
cette erreur se situe à cette ligne :
Code PHP :
WHERE u.uid = ".$lastpost_data['lastposteruid']."
Ta ligne se présente comme ceci :
Code PHP :
WHERE u.uid = $lastpost_data['lastposteruid']
Ce qui provoque une erreur .
Mais tu dis que ce code disparaitra si on effectue une mise à jour comment régler ce soucis pour ne pas à le faire à chaque mise à jour ?
J'ai testé ce code : (dans le template du forum) code de psyro (désolé je me souviens pas du pseudo exact
Code PHP :
<?php
$lpq = $db->query("SELECT username, usergroup, displaygroup FROM " . TABLE_PREFIX . "users WHERE uid = '" . $lastpost_data['lastposteruid'] . "'");
$lpf = $db->fetch_array('.$lpq.');
$lastpost_profilelink = build_profile_link(format_name($lpf['username'], $lpf['usergroup'], $lpf['displaygroup']), $lastpost_data['lastposteruid']);
?>
Mais cela provoque une erreur en haut du header et la case est vide
l'erreur est la suivante :
Code PHP :
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/lemonded/public_html/inc/functions_forumlist.php(284) : eval()'d code on line 3
merci de votre partage
Effectivement la dernière variable devait être exclue du texte.
Mais cette modification était destinée pour un remplacement dans le fichier "functions_forumlist.php".
Mais comme mentionné précédemment, si une mise à jour de ce fichier survient, le code devra être intégré de nouveau.
Pour éviter cela il faudra nécessairement utiliser un plugin.
Pour ce qui est de l'erreur dans le code :
Code PHP :
$lpf = $db->fetch_array('.$lpq.');
devrait être :
Code PHP :
$lpf = $db->fetch_array($lpq);
Je n'ai plus d'erreur mais la couleur du pseudo ne change pas
Bien sur qu'il ne changera pas, le code pour récupérer les informations des deux tables n'est pas le même que dans mon exemple!
Il manque ce code :
Code PHP :
LEFT JOIN ".TABLE_PREFIX."usergroups g ON (g.gid=u.usergroup)
ce qui permet de récupérer la valeur de "displaygroup"...
j'ai remis le code et l'erreur est revenu
N'ayant pas une boule de cristal, pour obtenir de l'aide il faudrait bien me montrer le code complet utilisé, ainsi que le texte de l'erreur provoquée...
(15-03-2013, 13:44)exdiogene a écrit : [ -> ]N'ayant pas une boule de cristal, pour obtenir de l'aide il faudrait bien me montrer le code complet utilisé, ainsi que le texte de l'erreur provoquée...
voici le code après modification:
Ce code est placé dans Forum Bit Templates==>forumbit_depth2_forum_lastpost
Au dessus de :
Code PHP :
<span class="smalltext">
<a href="{$lastpost_link}" title="{$full_lastpost_subject}"><strong>{$lastpost_subject}</strong></a>
<br />{$lastpost_date} {$lastpost_time}<br />{$lang->by} {$lastpost_profilelink}</span>
Code PHP :
<?php
$lpq = $db->query("SELECT username, usergroup, displaygroup FROM ".TABLE_PREFIX." users LEFT JOIN ".TABLE_PREFIX." usergroups g ON (g.gid=u.usergroup) WHERE uid = ". $lastpost_data['lastposteruid']."");
$lpf = $db->fetch_array($lpq);
$lastpost_profilelink = build_profile_link(format_name($lpf['username'], $lpf['usergroup'], $lpf['displaygroup']), $lastpost_data['lastposteruid']);
?>
et voici l'erreur :
Code PHP :
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/lemonded/public_html/inc/functions_forumlist.php(284) : eval()'d code on line 3 Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/lemonded/public_html/inc/functions_forumlist.php(284) : eval()'d code on line 3 Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/lemonded/public_html/inc/functions_forumlist.php(284) : eval()'d code on line 3 Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/lemonded/public_html/inc/functions_forumlist.php(284) : eval()'d code on line 3
Je vois deux espaces qui ne devraient pas être là, car la variable "TABLE_PREFIX" doit être collé au nom des tables.
Les deux erreurs sont soulignées en rouge :
.TABLE_PREFIX."
users
.TABLE_PREFIX."
usergroups
La commande devrait être exactement comme celle donnée par moi précédemment hormis l'erreur finale:
Code PHP :
$lpq = $db->query("SELECT u.* FROM ".TABLE_PREFIX."users u LEFT JOIN ".TABLE_PREFIX."usergroups g ON (g.gid=u.usergroup) WHERE u.uid = ".$lastpost_data['lastposteruid']." LIMIT 1";
J'ai bien mis le code en corrigeant une erreur (une parenthèse oublié) mais l'erreur persiste
Voici le code mis en place :
Code PHP :
<?php
$lpq = $db->query("SELECT u.* FROM ".TABLE_PREFIX."users u LEFT JOIN ".TABLE_PREFIX."usergroups g ON (g.gid=u.usergroup) WHERE u.uid = ".$lastpost_data['lastposteruid']." LIMIT 1");
$lpf = $db->fetch_array($lpq);
$lastpost_profilelink = build_profile_link(format_name($lpf['username'], $lpf['usergroup'], $lpf['displaygroup']), $lastpost_data['lastposteruid']);
?>
J'espère que les éditions du fichier "functions_forumlist.php" ne se font pas avec le "bloc note" de Windows!
Car cela pourrait causer ces problèmes...
Sinon, il semble manquer la déclaration de la variable globale $db comme ici :
Ce qui est nécessaire pour la bonne opération de la requête à la Base de Données...