MyBB.support, le portail francophone de MyBB

Version complète : Ajouter un champ à la page de post
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Bonjour à tous,

Je me suis lancé récemment dans la construction d'un site comprenant Mybb. Dans ce forum, chaque membre devrait pouvoir incarner un personnage et lui faire vivre des histoires (principe du rpg). Seulement ce membre pourrait changer de personnage à chaque sujet. Pour plus de clareté j''aimerais donc réaliser un espace au dessus de chaque post où l'on pourrait voir le nom du personnage qu'il est en train de jouer et quelques caractéristiques.

[Image: Capture_decran_2012-06-27_a_180426.png]

Pour remplir ce bloc, j'aimerais mettre des champs dans la partie "nouvelle réponse" en dessous de titre du message etc...

Pour ce faire, j'ai été dans la table de ma BDD nommée "mybb_posts" et j'y ai rajouté des champs "nom", "age" qui devrait accompagné username et tout le reste.

[Image: Capture_decran_2012-06-27_a_180346.png]

Lorsque le formulaire que j'ai créé en HTML est sur une page externe au reste et est relié à du PHP qui se charge d'inscrire les informations dans la BDD, tout se passe niquel, sauf que évidemment les informations ne sont pas reliées à un post existant. Mais si j'essai d'intégrer mon formulaire à "newreply" , pas moyen… J'ai tenter plein de choses qui ne fonctionnent pas alors j'aimerais votre avis sur la question. Comment dois-je m'y prendre pour rajouter des champs éditables dans au post d'un nouveau message ?

[Image: Capture_decran_2012-06-27_a_180438.png]


À savoir qu'actuellement mon HTML de formulaire est tout simple comme ceci :

Code :
<label for="age">Age</label> :  <input type="text" name="age" id="age" /><br />
        <label for="race">Race/sexe</label> : <input type="text" name="race" id="race" /><br />
        <label for="nation">Nationnalité</label> :  <input type="text" name="nation" id="nation" /><br />
        <label for="power">Pouvoir/arme</label> : <input type="text" name="power" id="power" /><br />
        <label for="caracter">Caratère</label> :  <input type="text" name="caracter" id="caracter" /><br />
Et mon php ressemble (en fonction des changements que je fais pour essayer de faire marcher la chose xD) à :

Code PHP :
try
{
$bdd = new PDO('mysql:host=monhote;dbname=mabase''pseudo''mdp');
}
catch (
Exception $e)
{
        die(
'Erreur : ' $e->getMessage());
}

define("IN_MYBB"1);
define('THIS_SCRIPT''newreply.php');

$templatelist "newreply,previewpost,error_invalidforum,error_invalidthread,redirect_threadposte​d,loginbox,changeuserbox,posticons,newreply_threadreview,forumrules,attachments,​newreply_threadreview_post,forumdisplay_rules,forumdisplay_rules_link";
$templatelist .= ",smilieinsert,smilieinsert_getmore,codebuttons,post_attachments_new,post_attachm​ents,post_savedraftbutton,newreply_modoptions,newreply_threadreview_more,newrepl​y_disablesmilies,postbit_online,postbit_find,postbit_pm,postbit_www,postbit_emai​l,postbit_reputation,postbit_warninglevel,postbit_author_user,postbit_edit,postb​it_quickdelete,postbit_inlinecheck,postbit_posturl,postbit_quote,postbit_multiqu​ote,postbit_report,postbit_ignored,postbit,post_subscription_method";

require_once 
"./global.php";
require_once 
MYBB_ROOT."inc/functions_post.php";
require_once 
MYBB_ROOT."inc/functions_user.php";
require_once 
MYBB_ROOT."inc/class_parser.php";
$parser = new postParser;

$req $bdd->prepare('INSERT INTO mybb_posts(nom,age,race,nation,power,caracter) VALUES(?, ?, ?, ?, ?, ?)');
        
$req->execute(array(
            
$post['nom'],
            
$post['age'],
            
$post['race'],
            
$post['nation'],
            
$post['power'],
            
$post['caracter'],
            ));
    } 

Le bloc pour la fiche dans le template "postbit_classic" lui ressemble à ça :

Code :
<span id="fichepersotexte"><h1>{$post['nom']} </h1><span class="titleperso">Age:</span> {$post['age']}
<span class="titleperso">Race/Sexe: </span> {$post['race']} <span class="titleperso">Arme/pouvoir: </span> {$post['power']}
<span class="titleperso">Nationnalité: </span> {$post['nation']}
<span class="titleperso">Caractéristiques: </span> {$post['caracter']} </span>

À savoir que, comme je le disais, quand je mets ces deux codes sur des fichiers séparés en dehors du forum, cela s'inscrit bien dans la BDD. Je pense donc que je ne sais tout simplement pas comment intégrer tout cela correctement avec le CMS...


C'est long mais j'ai essayé de vous donner le plus d'infos possible, je galère un peu :s

Je ne vous cache pas que le mélange CMS, PHP est encore un peu compliqué pour moi ^^


Merci d'avance !
Personne ne peut m'aider ? :$
(30-06-2012, 13:52)Calimero a écrit : [ -> ]Personne ne peut m'aider ? :$

je n'ai pas bien compris, tu essais d'afficher sur le sujet plus d'information ?
En fait j'essai d'afficher sur le sujet des informations préalablement remplies par l'utilisateur lorsqu'il poste une nouvelle réponse.
J'ai rajouté un formulaire dans le template "newreply", il apparait bien mais lorsqu'on le rempli et qu'on poste la nouvelle réponse, les informations ne s'inscrivent pas dans la base de données comme elles le devraient... Alors que si je met le formulaire sur une page à part, et pas dans le template, cela fonctionne…
Mybb ne permet pas d'ajoutée du php dans le posbit

Il faudrait que tu ajoute du code php directement dans le code Php
Car mybb ne permet pas de faire ce que tu souhaite ( je n'en comprend pas l'utiliter par la même occasion)
C'est justement ce que je fais. Le php je l'intègre dans newreply.php, il n'y a que le formulaire HTML qui est intégré directement dans les templates…

L'utilité est propre à mon forum où je souhaite que chaque membre puisse, pour chaque post, renseigner des informations spécifiques aux rpgs (age du personnage qu'il va jouer, race, caractères etc...qui changera à chaque post), le mieux c'est de regarder la première capture d'écran que j'ai mise car c'est difficile à expliquer comme ça ^^
La meilleure façon de faire, serait de créer un plugin pour faire cela et ce serait ainsi compatible avec de futures mises à jour. Sinon il faut aussi modifier la fonction "insert_post()" dans le fichier "inc/datahandlers/post.php" pour que les nouveaux champs soient insérés.
Bonjour,
D'accord je vais essayer de voir auprès de insert_post().
Sinon, est-ce qu'il y a quelque part un article ou autre qui explique comment se fait un plugin compatible MyBB ? Car au départ je pensais également qu'un plugin serait plus simple mais je n'ai trouvé nul endroit parlant de la manière dont faire un plugin.

Merci encore Smile

Edit: Oh merci beaucoup Exdiogène, ça marche enfin ! Depuis le temps que je suis dessus ! Il fallait en effet que je modifie également la fonction dans post.php. Je me doutais bien que cela provenait du fait qu'il fallait modifier un fichier bien précis mais je ne savais pas lequel, merci beaucoup ! Big Grin
 Utilitaire de traduction fourni par Regentronique