MyBB.support, le portail francophone de MyBB
Créer un sujet en PHP - Version imprimable

+- MyBB.support, le portail francophone de MyBB (https://mybb.support)
+-- Forum : MyBB.fr (https://mybb.support/forum-1.html)
+--- Forum : Support (https://mybb.support/forum-5.html)
+--- Sujet : Créer un sujet en PHP (/thread-4056.html)



Créer un sujet en PHP - valentin45000 - 24-04-2011

Bonjour,

J'ai fusionner mon site avec son forum MyBB.
J'aimerais (surement par une fonction) créer un nouveau sujet à partir du site, j'ai donc inclus MyBB :
Code PHP :
<?php
define
('IN_MYBB'1);
require (
'./forum/global.php');
session_start();
?>
Mais ensuite je fait comment ?

Merci d'avance.
Amicalement, Valentin.


RE: Créer un sujet en PHP - valentin45000 - 25-04-2011

70 vues et 0 réponse, se sujet laisse perplexe [Image: mdr.gif]


RE: Créer un sujet en PHP - exdiogene - 25-04-2011

Probablement parce que cela demanderait beaucoup de travail afin d'expliquer comment réussir une opération si particulière!

Je ne donnerai pas un cour de PHP ici, mais je vais me contenter de donner le code utiliser par MyBB pour réussir cette opération :
Code PHP :
require_once MYBB_ROOT."inc/datahandlers/post.php";
$posthandler = new PostDataHandler("insert");

$post = array(
    
"tid" => $mybb->input['tid'],
    
"replyto" => $mybb->input['replyto'],
    
"fid" => $thread['fid'],
    
"subject" => $mybb->input['subject'],
    
"icon" => $mybb->input['icon'],
    
"uid" => $uid,
    
"username" => $username,
    
"message" => $mybb->input['message'],
    
"ipaddress" => get_ip(),
    
"posthash" => $mybb->input['posthash']
);
$posthandler->set_data($post);
$post_errors = array();
if(!
$valid_post)
{
    
$post_errors $posthandler->get_friendly_errors();
}
if(
count($post_errors) > 0)
{
    
$reply_errors inline_error($post_errors);
}
else
{
    
$postinfo $posthandler->insert_post();


Il suffit de fournir au ARRAY $post les valeurs souhaitées aux différents éléments le composant.


RE: Créer un sujet en PHP - valentin45000 - 25-04-2011

Citation :Probablement parce que cela demanderait beaucoup de travail afin d'expliquer comment réussir une opération si particulière!
C'est sûr que se genre de chose ne doit pas être demandais souvent Big Grin

Là je dois me déplacer, je test ça dés que je suis de retour.
Par contre j'y avait pas pensé à créer une variable post pour "simuler" l'envoie d'un formulaire ... pas bête Tongue

Merci en tout cas Wink
Donc j'ai fait :
Code PHP :
$post = array(
    
"tid" => "4",
    
"replyto" => "",
    
"fid" => "4",
    
"subject" => "Mon sujet",
    
"icon" => "",
    
"uid" => "1",
    
"username" => "Valentin",
    
"message" => "Mon message",
    
"ipaddress" => get_ip(),
    
"posthash" => ""
); 
Mais certain champs sont vide et je ne sais pas quoi mettre ...


RE: Créer un sujet en PHP - valentin45000 - 25-04-2011

Voilà, j'ai fait :
Code PHP :
    require_once "../forum/inc/datahandlers/post.php";
        
$posthandler = new PostDataHandler("insert");
        
$posthandler->action "thread";
        
    
        
// Set the thread data
        
$new_thread = array(
        
"fid" => 29,
        
"subject" => $titre,
        
"icon" => -1,
        
"uid" => 4,
        
"username" => "Information",
        
"message" => 'Vous pouvez laisser vos commentaires sur le tutoriel ici.',
        
"ipaddress" => '',
        
"posthash" => '',
        
"savedraft" => 0,
        );
    
        
// Set up the thread options
        
$new_thread['options'] = array(
        
"signature" => 'yes',
        
"emailnotify" => 'no',
        
"disablesmilies" => 'no'
        
);
    
        
$posthandler->set_data($new_thread);
    
        if(
$posthandler->validate_thread()){
        global 
$fid;
        
$thread_info $posthandler->insert_thread();
        
$fid $posthandler['fid'];
        
$tid $posthandler['tid']; 
Mais j'ai un soucis avec les deux dernières ligne qui stockerais les id du forum et du topic, ça m'affiche :
Citation :Fatal error: Cannot use object of type PostDataHandler as array



 Utilitaire de traduction fourni par Regentronique