Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je cherche depuis quelques jours a ajouter une balises BBcode sur un forum qui pourrait être fort utile.
J'ai cherché un peu partout mais j'ai rien trouvé... pourtant a mon sens ça ne devrais pas être compliquer à faire.
Je cherche a ajouter une balise BBcode du même genre que
{USERNAME}Ce code affiche le nom de l'utilisateur qui lis le message.
(Désoler si ça n'entre pas dans la catégorie du BBcode... mais bon.
'
Je voudrais installer quelque chose de similaire mais basé sur L'ID du membre (le forum est connecté à la base de données et donc a la liste des membres (ID, IP, etc...))
Il faudrait que le membre puisse cliquer sur un lien qui changera d'ID selon l'utilisateur qui lis le message
Un petit exemple de ce que sa donnerais :
Utilisateur ID 3 lira le message:
Pour modifier votre profil cliquez ici
Pour modifier votre profil [url=http://monsite.com/forum/profil-3.htm]cliquez ici[/url]Utilisateur ID 17 lira le message:
Pour modifier votre profil cliquez ici
Pour modifier votre profil [url=http://monsite.com/forum/profil-17.htm]cliquez ici[/url]Il faudrait donc que l'url (dans un signature par exemple) change selon le membre qui le lis.
J'ai vraiment cherché dans le moteur de recherche, mais je n'ai rien trouvé qui pourrait m'aider a créer ce genre de code.
Vous avez une idée de comment je pourrais m'y prendre ? (J'ai un forum de test fluxBB 1.4.8)
Merci. 
Dernière modification par Artille (04-10-2012 10:52:50)
Hors ligne
Salut,
Grosso modo, tu veux afficher un message personnalisé sur ton forum comme le fait le lien "Profil" dans la barre de menu ?
Si c'est le cas, il suffit de reprendre le code présent dans header.php (il me semble).
Edit : Tu veux faire ça sous forme de balise BB ?
Dernière modification par Defaz (04-10-2012 13:46:36)
Hors ligne
Bonjour,
Je n'ai pas tout compris. Veux tu faire une balise [username] qui afficherait "adaur" dans mon cas et une autre qui génèrerait :
Pour modifier votre profil cliquez ici
ou un seul BBCode en deux?
Hors ligne
Pour récupérer l'id d'un membre, il y a la variable $pun_user['id'] (si c'est ce que tu cherches).
Si j'ai bien compris, tu voudrais que sur toutes zones de saisie où on tape {ID_MEMBRE} (exemple bidon), ça remplace par l'id du membre?
Si tel est le cas, alors dans le fichier includes/parser.php :
Cherches :
function handle_list_tag($content, $type = '*')
{
global $re_list;Remplaces par :
function handle_list_tag($content, $type = '*')
{
global $re_list, $pun_user;Cherches :
// This thing takes a while! :)
$text = preg_replace($pattern, $replace, $text);Ajoutes juste avant:
$pattern[] = '%\{ID_MEMBRE\}%';
$replace[] = $pun_user['id'];Hors ligne
Winux: Merci, mais sa ne marche pas.
J'ai modifier
$pattern[] = '%\{ID_MEMBRE\}%';par
$pattern[] = '%\{ID\}%';mais en appelant {ID} ça marque juste {ID} 
Adaur: Oui c'est ça, sauf que je n'ai pas besoin de [USERNAME], c'était un exemple similaire.
Je voudrais faire une balise que générerait un lien différent selon le membre qui lis le message, comme ton exemple.
Le forum est lié a la bdd du site, donc il faudrait aller chercher l'ID dans la table des joueurs du site
Du genre
<a href="http://monsite.com/profil_<?php echo $game_users['id']; ?>.htm>Cliquez ici</a>EDIT:
J'ai essayé de modifier un peu le code pour rediriger vers une autre table
$pattern[] = '%\{ID_MEMBRE\}%';
$replace[] = 'handle_url_tag(\''.get_base_url(true).'/profile.php?id='.$id['id'].')';Avant les pattern (ligne 776) j'ai ajouté
$id_users = $_COOKIE_NAME['forum1'];
$select_users = mysql_query("SELECT * FROM game_users WHERE id='".$id_users."' LIMIT 1");
$game_user = mysql_fetch_array($select_users);
$id_game_users = mysql_query("SELECT * FROM game_users WHERE id='".$game_user['pseudo']."' ORDER BY id DESC");
$id = mysql_fetch_array($id_game_users);Quand je note {ID_MEMBRE} celui-ci apparait dans le message et j'ai une erreur de connexion :
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Re-EDIT:
C'est bon, j'ai corrigé l'erreur de connexion avec une simple connexion à la bdd
mysql_connect('localhost', 'nom', 'mdp');
mysql_select_db('nom');Aucune erreur, mais la fonction ne semble pas fonctionner. 
Dernière modification par Artille (05-10-2012 01:15:46)
Hors ligne
Nooooooonnnnn ! (juste pour marquer les esprits)
Sur fluxBB, on utilise pas directement mysql. Ils se sont fait chier à créer une class disponible dans l'objet $db, pour toutes utilisations de la base de données.
Concrètement dans ton cas, tu aurais du faire ceci :
$id_users = $_COOKIE_NAME['forum1'];
$select_users = $db->query("SELECT * FROM game_users WHERE id='".$id_users."' LIMIT 1");
$game_user = $db->fetch_assoc($select_users);
$id_game_users = $db->query("SELECT * FROM game_users WHERE id='".$game_user['pseudo']."' ORDER BY id DESC");
$id = $db->fetch_assoc($id_game_users);Ca c'est juste pour la ptite parenthèse, car là tu t'embêtes vraiment pour rien oO
Tout d'abord tu fais des requêtes, alors que je t'ai dit que l'id du visiteur (membre inscrit je précise) est stocké dans $pun_user['id'], ça t'évite de faire des requêtes.
Ensuite, je reviens sur le fait que ta manière de faire des requêtes est à revoir (je donne juste un conseil précieux pour l'avenir). Tu dois rester dans l'optique de faire le moins de requête possible.
Là tu stockes les ids des membres dans un tableaux $_COOKIE_NAME (je sais pas où tu les pioches d'ailleurs), ensuite tu cherches à connaitre les pseudos en bdd en fonction de ces ids, et enfin tu cherches à connaitre les ids (que tu connais déjà) en fonction des pseudos (que tu as cherché inutilement du coup).
Tu vois où je veux en venir?
Bref, mon mini regex est censé fonctionner étant donné que le { et } sont des caractères à échapper.
Essayes un :
$text = str_replace('{ID}', $pun_user['id'], $text);à placer juste avant :
// This thing takes a while! :)
$text = preg_replace($pattern, $replace, $text);Hors ligne
Je ne connais pas le fonctionnement FluxBB vu que je commence a peine avec 
Merci pour l'info.
Le truc qui fait que $pun_user est selon moi inutile dans mon cas, est que le forum est intégrer au site.
Donc aucune inscription n'est faite par le formulaire du forum, une personne qui s'inscrit sur le site l'est aussi sur le forum.
J'ai donc pensé qu'aller chercher l'id directement de la table des membres serait l'option ici.
PS : Pour mon codage, désoler mais je suis encore nouveau dans ce domaine.
'
Je prend note de ta remarque. 
Ca y est, ça marche correctement.
Pour modifier votre profil [url=http://monsite.com/forums/profil-{ID}.htm]cliquez ici[/url]Sa fonctionne comme je voulais, mais ça ne marche pas sur tout les messages... As-tu une idée du pourquoi ?
EDIT: Sa ne fonctionne pas tant qu'il n'y a pas au moins une balise
[BBCode] n'importe laquel, mais il doit y en avoir une... sinon c'est nickel. 
Dernière modification par Artille (05-10-2012 10:33:03)
Hors ligne
Bizarre tout ça.
Et je pensais pas que le forum était intégré à un site, et selon l'intégration, le $pun_user est en effet inutile 
Hors ligne
Bonjour,
Pour le fait qu'il n'y ait rien s'il n'y a pas un autre bbcode, si je me souviens bien, le parser est appelé seulement si des crochets '[' ou ']' sont présents dans le message. Si tu remplaces les { par des [ dans ton bbcode, ça devrait fonctionner même si c'est la seule chose que tu écris. Ou alors faut retrouver la condition et ajouter les '{' et '}'.
Dernière modification par PascL (05-10-2012 12:43:34)
Bouh !
StarShip Renaissance
Hors ligne
Si tu remplace par [ et ] il ne seront pas assignable a une url comme je le veut.
J'ai trouvé les conditions.. mais la je sèche..
Dernière modification par Artille (05-10-2012 13:23:00)
Hors ligne
Pages : 1