1. IMPORTANT : Nouvelles mesures de sécurité - 2. Règles pour obtenir de l'aide dans les forums de support - 3. Restrictions des droits pour le groupe "Support suspendu"

Il est obligatoire de respecter les Règles de MyBB.fr : Version abrégée ou Version complète pour obtenir du support sur nos forums.

Les membres ayant un site/forum contrevenant aux règles de MyBB.support seront placés dans le groupe "Support suspendu" et ne bénéficieront plus du support du staff. Nous recommandons aux autres membres d'agir de même. Il ne s'agit pas d'un bannissement, le membre retrouvera son statut "normal" dès que sa situation sera conforme aux règles.

Nouveau : un Wiki en français : plus de détails.
Avant de soumettre votre problème, consultez-le, ainsi que la FAQ, sans oublier le moteur de recherche interne.


Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[CODAGE] Créer un nouveau sujet par script
Mots-clés » codage, créer, nouveau, sujet, script
19-05-2011, 16:42,
#1
[CODAGE] Créer un nouveau sujet par script
OBJECTIF

Bonjour,
Notre objectif dans se tutoriel va être de créer un sujet sur son forum à partir d'un script. Peut importe sa localisation sur le FTP.
Et comme je suis sadique nous allons mettre se script à l’extérieur de dossier du forum, vous verrez que en fait ça n'a pas beaucoup d'importance Wink

ARCHITECTURE DE DÉPART

Pour notre architecture nous allons imaginez que nous avons ceci :
Code :
images/
css/
forum/
  | _ index.php
  | _ global.php
  | _ etc ...

index.php
test.php

Voilà rien de bien méchant, notez que les dossier images/ et css/ ne nous serviront pas, je les est juste mis pour mieux monter une architecture basique.
En réalité nous allons avoir besoin que d'un seul fichier => test.php, bien entendu vous l'appelez comme vous voulez Wink

CODAGE

Bon cette fois ci on y va Big Grin
Donc nous allons ouvrir notre fichier, ici test.php et nous allons devoir dans un premier temps inclure et initialiser MyBB. Pour cela c'est assez simple :
Code PHP :
<?php
define
('IN_MYBB'1);
require (
'forum/global.php');
session_start(); 
On défini la constante IN_MYBB, on importe le script global.php du forum et on lance les sessions. Maintenant on va de voir inclure également se qu'il faut pour pouvoir poster un sujet :
Code PHP :
require_once "forum/inc/datahandlers/post.php";
$poster = new PostDataHandler("insert");
$poster->action "thread"
Donc la fonction require_once() c'est la même chose que require() sauf que si c'est déjà inclus on ne l'inclus pas une deuxième fois.
Alors la pour la suite si vous ne connaissez pas la POO vous allez être un peut perdu Big Grin
On créer une variable $poster et on initialise PostDataHandler() puis sur la dernière ligne on indique que l'action est de poster un nouveau sujet.
Bon maintenant on va voir un array qui contient toutes les infos :
Code PHP :
$nouveau_sujet = array(
    
"fid" => 00,
    
"subject" => 'Test',
    
"icon" => -1,
    
"uid" => 4,
    
"username" => "Information",
    
"message" => 'Vous pouvez laisser vos commentaires ici.',
    
"ipaddress" => '',
    
"posthash" => '',
    
"savedraft" => 0,
); 
Ça peut paraître un peut gros comme ça mais pas d'inquiétude on va décortiqué tout ça Wink
Bon on créer la variable $nouveau_sujet qui contient un tableau, pas besoin de s'étendre plus la dessus.
Alors le fid est s'en doute le plus dur, en fait c'est l'id du forum dans lequel va être posté le sujet. Et l'a vous allez me dire "Ok c'est bien beau mais comment on peut connaître l'id ?".

TROUVER L'ID

C'est pas bien dur il vous suffit de vous rendre sur le forum en question de regarder l'URL elle va ressembler à :
Citation :http://localhost/mybb/forumdisplay.php?fid=5
Regarder à la fin "fid=5", vous vous devez sûrement avoir un autre chiffre que 5. et bien le chiffre après fid= c'est votre id, donc ici c'est 5 on reprend donc notre code :

RETOUR AU CODE

Code PHP :
$nouveau_sujet = array(
    
"fid" => 5,
    
"subject" => 'Test',
    
"icon" => -1,
    
"uid" => 4,
    
"username" => "Information",
    
"message" => 'Vous pouvez laisser vos commentaires ici.',
    
"ipaddress" => '',
    
"posthash" => '',
    
"savedraft" => 0,
); 
Voilà on est à jour.

Deuxième ligne c'est le titre de notre sujet.
Troisième ligne c'est si on veut une icone ici non donc "-1".
Uid c'est l'id de la personne qui poste le message pour le connaître rendez-vous sur le profil du membre et dans l'url prenez que se qu'il y a derrière uid=
Citation :http://localhost/mybb/member.php?action=profile&uid=4
Si vous ne voulez pas que se soit un membre mais par exemple un robot entrez "-1".
Ensuite username c'est le pseudo qui s’affichera.
Le message c'est le message.
ipaddress et posthash n'y touchez pas, sauf si vous voulez qu'une IP s'affiche en particulier.
Et ensuite savedraft c'est si le message doit être sauvegarder sur le membre qui à le uid entré.

Vous savez quoi on va ajouter à deuxième tableau Tongue
Non mais moins gros Wink
Code PHP :
$nouveau_sujet['options'] = array(
    
"signature" => 'yes',
    
"emailnotify" => 'no',
    
"disablesmilies" => 'no'
); 

Là si vous comprenez un minimum l'anglais c'est bon.
Signature c'est si on active la signature, emailnotify c'est si on active la notification par email et disablesmilies c'est si on désactive les smiley.
YES = OUI / NO = NON

Encore une ligne !
En fait si on écrit pas la ligne suivante tout se qu'on viens fa ire sert à rien, sur la suivante vous n'aurez rien à modifier, ça va juste écrire le sujet avec tout se qu'on lui a indiqué.
Code PHP :
$poster->set_data($nouveau_sujet); 

BONUS : VÉRIFIER L'ÉTAT

Ensuite on peut vérifier si un problème c'est passer pour cela on fait une condition :
Code PHP :
if($poster->validate_thread()){
    echo 
"Tout c'est bien passé !";
} else {
    echo 
"Un problème est survenue !";


Bon est bien voilà Smile
Bonne chance.
Valentin.
Répondre
19-05-2011, 19:04,
#2
RE: [CODAGE] Créer un nouveau sujet par script
Merci bien !
Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

Contact | MyBB.support | Retourner en haut | Retourner au contenu | Version bas-débit (Archivé) | Syndication RSS
 Utilitaire de traduction fourni par Regentronique