FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

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

#1 13-09-2013 21:22:22

Nikos
Membre
Inscription : 13-09-2013
Messages : 5

Mark as solved évolué

Bonjour à toutes et à tous,

Jeune dompteur de fluxbb depuis quelques jours. J'ai décidé de modifier le mod fluxsolved fluxsolved

Pour aller plus loin, et permettre d'apporter une vraie réponse à une problématique souvent rencontrée (excusez le terme, se palucher plusieurs pages d'un forum pour trouver une solution c'est moyen, surtout quand c'est 15874523e page).

Je me suis mis en tête justement de répondre à cette problématique, la finalité du fork (on peut l'appeler comme ça je pense ?) et qu'une fois le créature (ou l'admin) du post àa trouvé sa solution dans les réponses qui lui ont été apportées, il clique sur le bouton 'marqué comme solution' cela l'améne donc à la page de validation de la solution, où, il a sous les yeux sa question ainsi que la solution qu'il a jugé juste.

S'il valide, le sujet est clôturé avec un titre modifié comme [Résolu], son post est mis à jour pour ajouter une mention :

Jean-Raoul a trouvé la solution sur le post #35 (avec un petit lien qui va bien).

et c'est tout.

Par contre s'il ne valide pas la solution... bah il revient aux posts (logique).

Voici la liste des étapes (grand débutant en coding php, mais avec quelques connaissances en mysql)

  1. Installer le mod originel - OK fait
    Modifier le fichier viewtopic.php pour ajouter le bouton 'marqué comme solution' quand on est le créateur ou un admin - OK fait
    Amener l’utilisateur a relire sa question et la réponse sélectionnée - OK mais à moitié
    Clôturer le sujet - OK fait

Plus précisément, je bloque sur le point 3, je récupère bien le message de la solution, mais celui-ci est brut, RAW, le bbcode apparait encore.

Je souhaiterai respecter la mise en forme à travers le bbcode, que dois-je faire exactement ? y a t-il une fonction qui me permettrait de faire cela ?

Bien à vous.

Nikos

Hors ligne

#2 14-09-2013 09:52:00

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

Re : Mark as solved évolué

Salut

Il faut utiliser la fonction parse_message pour transformer bbcode en html

Hors ligne

#3 14-09-2013 10:07:42

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : Mark as solved évolué

Bonjour,

Dépassé par PascL. hmm
Pour « voir » comment cela est effectué, une voie de recherche est de regarder dans le source d'une page viewtopic l'affichage des messages, où on peut voir, par exemple que chaque affichage d'un message utilise la classe :

<div class="postmsg">

ensuite, on va voir dans viewtopic.php où est utilisée cette classe :

<div class="postmsg">
	<?php echo $cur_post['message']."\n" ?>

on continue en cherchant comment est traité $cur_post['message'] avant d'être affiché et on tombe sur :

// Perform the main parsing of the message (BBCode, smilies, censor words etc)
  $cur_post['message'] = parse_message($cur_post['message'], $cur_post['hide_smilies']);

Donc, comme l'a écrit PascL, il faut utiliser la fonction parse_message()


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#4 15-09-2013 16:28:44

Nikos
Membre
Inscription : 13-09-2013
Messages : 5

Re : Mark as solved évolué

Merci Messieurs pour ces informations fortes utiles.

Je vais pouvoir avancer correctement. N'étant un chef de php, puis-je compter sur votre assistance pour évaluer mon travail pour m'assurer qu'il n'y ait pas de failles dans le code ?

Merci encore une fois.

Hors ligne

#5 18-09-2013 00:39:44

Nikos
Membre
Inscription : 13-09-2013
Messages : 5

Re : Mark as solved évolué

J'avance,

J'avance,

Mais à cette heure tardive les idées ne sont plus très claires....

Voici ma petite question. Quand le créateur valide une réponse, je souhaiterai mettre à jour le premier post du topic, je ne sais pas s'il existe une fonction qui permet de récupérer automatiquement l'id du premier post, donc en l’occurrence, je me suis créé ma propre requête :

$first_pid = $db->query('SELECT id FROM '.$db->prefix.'posts WHERE topic_id='.$tid.' order by id asc limit 1') or error('Unable to fetch topic info', __FILE__, __LINE__, $db->error());

if (!$db->num_rows($first_pid))
	message($lang_common['Bad request']);	

$cur_first_pid = $db->fetch_assoc($first_pid);

Donc si j'ai bien tout suivi et tout compris : $tid correspond à l'id de mon topic que je peux afficher. par contre ma requête semble fonctionner... mais lorsque je tente de faire un

echo($cur_first_pid['id']

Je n'obtiens rien, j'avoue être beaucoup perdu.
Est-il possible d'afficher la requête avant qu'elle soit envoyer au moteur de DB quand elle va être traité par fluxbb ?

Cordialement,

Nikos

Dernière modification par Nikos (18-09-2013 00:41:51)

Hors ligne

#6 18-09-2013 17:33:49

Mpok
Néo Admin
Inscription : 10-08-2006
Messages : 2 950
Site Web

Re : Mark as solved évolué

La requête elle-même semble bonne… (note : mais je suppose qu'elle n'est pas complète, ce que tu veux c'est pas juste l'id, mais le post…).
En ce qui concerne :

Nikos a écrit :

Est-il possible d'afficher la requête avant qu'elle soit envoyer au moteur de DB quand elle va être traité par fluxbb ?

Tu peux toujours remplacer les :

$db->query('SELECT etc…');

par des

$query='SELECT etc…';

et donc pouvoir faire un

echo $query;

avant de lancer la requête en question :

$db-query($query);

Ça permet effectivement de vérifier que la requête est valide…

Hors ligne

#7 18-09-2013 18:44:38

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

Re : Mark as solved évolué

Salut Nikos,

Pour obtenir l'ID du premier message d'un topic:

	$result = $db->query('SELECT first_post_id FROM '.$db->prefix.'topics WHERE id='.$tid) or error('Unable to fetch post info', __FILE__, __LINE__, $db->error());
	if (!$db->num_rows($result))
		message($lang_common['Bad request']);

	$id = $db->result($result);

"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

#8 18-09-2013 22:04:59

Nikos
Membre
Inscription : 13-09-2013
Messages : 5

Re : Mark as solved évolué

Merci pour vos réponses,

Je vois pour intégrer vos différents codes

Nikos

Hors ligne

#9 18-09-2013 22:37:02

Nikos
Membre
Inscription : 13-09-2013
Messages : 5

Re : Mark as solved évolué

J'avance bien.

A votre avis,les url pour les posts sont basées sur les paramétrages du nombre de posts affichés par page. Est-il possible de régénérer automatiquement le bbcode d'un lien en fonction de ces paramètres. Où est-il possible d'afficher un post unique ?

Merci à vous

Hors ligne

Pied de page des forums