FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

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

#1 04-10-2012 10:46:56

Artille
Membre
Inscription : 04-10-2012
Messages : 4

[Résolu] Ajout d'un BBcode

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. happy'

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. smile

Dernière modification par Artille (04-10-2012 10:52:50)

Hors ligne

#2 04-10-2012 13:43:17

Defaz
Membre
Inscription : 30-11-2006
Messages : 700
Site Web

Re : [Résolu] Ajout d'un BBcode

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

#3 04-10-2012 14:12:58

adaur
Membre
Lieu : Derrière Notepad ++ !
Inscription : 25-09-2008
Messages : 1 937
Site Web

Re : [Résolu] Ajout d'un BBcode

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?


"As code is more often read than written it's really important to write clean code." - Franz
Twitter: @adaurfr
Mon fork de FluxBB: FeatherBB

Hors ligne

#4 04-10-2012 14:49:27

WinuX
Membre
Inscription : 18-07-2010
Messages : 390

Re : [Résolu] Ajout d'un BBcode

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

#5 05-10-2012 00:18:35

Artille
Membre
Inscription : 04-10-2012
Messages : 4

Re : [Résolu] Ajout d'un BBcode

Winux: Merci, mais sa ne marche pas.
J'ai modifier

$pattern[] = '%\{ID_MEMBRE\}%';

par

$pattern[] = '%\{ID\}%';

mais en appelant {ID} ça marque juste {ID} sad


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)

hmm


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. happy

Dernière modification par Artille (05-10-2012 01:15:46)

Hors ligne

#6 05-10-2012 09:34:21

WinuX
Membre
Inscription : 18-07-2010
Messages : 390

Re : [Résolu] Ajout d'un BBcode

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

#7 05-10-2012 09:47:13

Artille
Membre
Inscription : 04-10-2012
Messages : 4

Re : [Résolu] Ajout d'un BBcode

Je ne connais pas le fonctionnement FluxBB vu que je commence a peine avec happy
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. happy'
Je prend note de ta remarque. smile


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. smile

Dernière modification par Artille (05-10-2012 10:33:03)

Hors ligne

#8 05-10-2012 12:14:03

WinuX
Membre
Inscription : 18-07-2010
Messages : 390

Re : [Résolu] Ajout d'un BBcode

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 happy

Hors ligne

#9 05-10-2012 12:43:15

PascL
Membre
Inscription : 06-09-2007
Messages : 554
Site Web

Re : [Résolu] Ajout d'un BBcode

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)

Hors ligne

#10 05-10-2012 13:19:11

Artille
Membre
Inscription : 04-10-2012
Messages : 4

Re : [Résolu] Ajout d'un BBcode

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

Pied de page des forums