Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Auteur : Maurice Chevalier
Qu'est-ce que c'est ?
PunBB Simple API est une sorte de boite à outil pour jouer avec PunBB sur votre site. Ce script reviens à utiliser le fichier common.php de PunBB mais fournis en plus des méthodes prêtes à l'emploi pour manipuler facilement les données provenants de PunBB.
Comment ça marche ?
On inclus le script dans nos pages et on utilise les fonctions qu'il fournis.
Pourquoi l'utiliser ?
Lorsque vous voulez intégrer à votre site des données provenant de vos forums.
C'est pour qui ?
Ce script est destiné aux utilisateurs qui connaissent PHP, il est aussi recommandé d'avoir déjà utilisé le script common.php de PunBB mais c'est pas obligatoire ; enfin, sachez qu'il est fournis en l'état et sans aucune garantit de support...
Un exemple ?
Oui par exemple pour afficher l'avatar de l'utilisateur sur votre site :
$pun->get_user_avatar()Et voilà Aller un autre, pour créer des parties accessibles seulement aux membres :
<?php if ($pun->is_guest() : ?>
ici le code pour les invités
<?php else : ?>
ici le code pour les personnes identifiés
<?php endif; ?>Mouais pas convaincu...
Pas de problème ne l'utilise pas 
Mais si c'est génial !
Super j'ai besoin de testeurs et autres "expérimentateurs" 
changelog
#-------------------------------------------------------------------------------
# version 0.2
#-------------------------------------------------------------------------------
- added functions:
- edit_post
- del_post
- get_topics
- add_topic
- edit_topic
- del_topic
- changed functions name:
- set_post to add_post
- get_posts_topic to get_posts
- resetError to reset_error
- hasError to has_error
- setError to set_error
- error to get_error
- fatalError to fatal_error
- added sql cache results to functions:
- get_group_infos
- get_post_infos
- added enclose_in_paragraph parameter to parse_message
- added "_" prefix name to privates functions
- moved publics functions in public.php
#-------------------------------------------------------------------------------
# version 0.1
#-------------------------------------------------------------------------------
First public release.Hors ligne
Encore une fois 1000 merci,
j'attend avec impatience les fonction register(log, pass, email,...) et login(log, pass).
Hors ligne
Ca va c'est pas mal ca.C'est une sorte de "librairie" pour PUNBB.
[img]http://www.siteduzero.com/uploads/fr/files/62001_63000/62169.png[/img]
Plus de 7 mois de programmation, mais encore 2-3 mois de preparations...
Hors ligne
Super !!!
Mon site est à la fois un blog et un forum. Quand je crée un blog, un topic et un post correspondant est créé dans le forum punnBB ... et j'ai fais ça ... à la main.
Ton "API" va me faire modifier le blog, mais il sera plus compréhensible, plus clair, plus facile à modifier !
Merci !
PS : Moi aussi j'aime bien les Têtes Raides.
Dernière modification par moustik510 (02-04-2007 11:44:32)
Hors ligne
Pas de modifs des fichiers de PunBB à faire? Je prends de suite, merci beaucoup. 
Question quand même :
pour l'instant j'utilise common.php. Est-ce que je remplace tout (l'inclusion et la syntaxe des appels) ou est-ce que je peux laisser les deux (common.php et PunSAPI) côte-à-côte dans mes pages?
encore un Edit (2) : la syntaxe de PunSAPI m'a l'air effectivement plus intéressante.
Exemple de différenciation entre un membre et un visiteur.
Avec common.php on a ce genre de choses:
<? if ($pun_user['is_guest'])
echo 'Salut tu es membre donc tu es super.';
else {
echo 'Salut tu es un visiteur alors dégage de mon site.';
}?>Avec PunSAPI:
<?php if ($pun->is_guest() : ?>
ici le code pour les invités
<?php else : ?>
ici le code pour les personnes identifiés
<?php endif; ?>ça m'a l'air de laisser beaucoup plus de liberté dans le code html (pas besoin d'addslashes par exemple...?).
A confirmer (par Vin100, moi, ou n'importe qui
).
Dernière modification par Kynerion (02-04-2007 16:46:08)
Hors ligne
je comprends pas ton histoire d'addslashes... Où devrais tu en mettre?
Hors ligne
Je la refais avec common.php :
<? if ($pun_user['is_guest'])
echo 'Salut t\'es membre c\'est trop cool mais j\'dois mettre des addslashes.';
else {
echo 'Salut tu n\'es pas membre c\'est trop dommage!';
}?>
tu vois les slashes?
Sans compter qu'avec un code plus compliqué (des URLs), il y a des "URL" (les guillemets).
Hors ligne
bah tu peux faire ça aussi :
<?php if ($pun_user['is_guest'] : ?>
ici le code pour les invités
<?php else : ?>
ici le code pour les personnes identifiés
<?php endif; ?>Hors ligne
tu peut aussi faire avec common.php ceci :
<? if ($pun_user['is_guest']) : ?>
Salut t'es membre c'est trop cool.
<?php else : ?>
Salut tu n'es pas membre c'est trop dommage!
<?php endif; ?>c'est une syntaxe alternative propre à PHP ça, donc en l'occurence la différence se situera ici juste qu'avec common.php tu fera :
[c]$pun_user['is_guest'])[/c]
alors qu'avec PunSAPI :
[c]$pun->is_guest()[/c]
c'est pour ainsi rien du tout mais l'apport de PunSAPI ne se situe pas vraiment ici, ça ce ne sont que des petites fonctions pour faciliter la tâche mais y'a mieux 
sinon non il ne faut pas mélanger du common.php et du PunSAPI car tu va dédoubler tous les traitements concernant l'utilisateur et donc les requetes à la base de données, comme il ne faut pas utiliser PunSAPI dasns PunBB ou dans Puntal
Hors ligne
EDIT : Etant donné que je me suis rendu compte de l'énormité que je viens d'écrire, je ferai mieux d'aller dormir (en espérant que personne ne l'a vu biensur).
Dernière modification par Illusion (03-04-2007 01:25:54)
*-- Illusion --*
PoesieLand, la poésie sommeille en vous !
Hors ligne
Une EXCELLENTE idée de mod, bravo vin100 ! 
Bon, j'avoue ne pas avoir encore testé (peut-être plus tard quand j'aurai un peu de temps..), parce que la première réflexion qui me vient est : "Dommage que cela ne soit pas arrivé plus tôt...
"...
Je suis un peu dans le cas de moustik510 (cf. message au-dessus) et je pense que cela m'aurait bien aidé, mais maintenant que mon intégration en est à 90%, je pense que c'est trop tard pour tout changer.
En tout cas félicitations (pour l'idée, je n'ai pas encore regardé le code, je pense néanmoins que ça doit être nickel..).
Hors ligne
Vin100, je suis obligé de m'incliner, j'ai passé une petite nuit blanche à recoder mon site pour créer une partie admin et c'est génial ton truc, ya trop de possibilités !
J'ai juste relever une erreur dans la doc :
get_user_name
PunSAPI 0.1
Description
string get_user_name ( [integer user_id [, boolean return]] )Affiche l'adresse jabber d'un utilisateur.
l'adresse jabber est à remplacer par le nom de l'utilisateur 
C'est trop en bonne voix, j'adore.
Par contre, je n'ai pas compris quoi faire de (par exemple) :
( [integer user_id [, boolean return]] )Je me débrouille en php mais là c'est plus des hiéroglyphes pour moi 
Hors ligne
Merci Llanis pour la typo.
Les indications d'usage sont les mêmes que dans la doc PHP :
[c]type nom_de_la_fonction ( type param1, type param2 [, type opt_param1 [, type opt_param2]] )[/c]
on as donc le nom de la fonction précédé du type de données qu'elle retourne (integer, string, etc.)
puis entre les parenthèses les différents paramètres que la fonction accepte, comme pour la fonction chaque paramètre est précédé par le type que ce paramètre prend
enfin si les paramètres sont entre crochet cela signifie qu'ils sont facultatifs
par exemple :
string get_user_name ( [integer user_id [, boolean return]] )la fonction get_user_name retourne une chaine de caractère
elle peut prendre deux paramètres, tous deux optionnels ; le premier user_id doit être un entier et le second return un booléen
pour voir les différents types possible en PHP, regarder dans la doc :
http://fr.php.net/manual/fr/language.types.php
Hors ligne
j'ai bien avancé la 0.3 mais j'aimerais fournir une documentation en anglais avec cette 0.3 afin de présenter PunSAPI aux anglophones
est-ce que quelqu'un pourrait me filer un coup de mains pour la traduction ? parce que là y'en as bcp...
il s'agit pas de tous traduire, juste des bout car en fait j'utilise un script pour générer la doc et j'en ai déjà traduit un bout, mais si quelqu'un veut m'aider j'expliquerais alors plus en détails
Hors ligne
est-ce que quelqu'un pourrait me filer un coup de mains pour la traduction ?
Très franchement, vin100, je serais assez partant pour t'aider sur ce coup, parce que comme je l'ai déjà signalé plus haut, même si je ne l'utilise pas (encore) j'aime bcq cette mod...
Malheureusement, je suis assez "over-charette" en ce moment (finalisation de projet), jusqu'à la fin-juin (ou un peu avant si j'avance vite
).
Alors, je crois que ce ne serait pas raisonnable de m'engager sur quelque chose, autant pour moi que pour toi, si je ne peux pas ensuite tenir ces engagements.
D'autant plus que j'ai eu récemment à traduire des pages pour mon projet (aide, accessibilité, règles du forum, etc..) et que j'ai pu constater que ça prenait bcq de temps (c'est beaucoup plus facile dans l'autre sens, anglais->français).
Bien sûr, si la chose est toujours d'actualité dans un mois et demi, je serais alors ravi de participer...
Hors ligne
Pas de soucis 
Oiu c'est bcp plus long dans ce sens, et plus fatiguant aussi, enfin du moins pour quelqu'un de mon niveau, hier j'ai traduit deux pages de la doc j'étais vané 
Hors ligne
Je pense que je vais l'intégrer car je suis en train de faire la nouvelle version de notre site et que je me sers de pas mal de fonctions de punbb. Je te tiens au courant 
Hors ligne
Merci pour tes explications supplémentaires Vin100.
Cependant j'ai un soucis, j'ai essayé le script de news que tu propose en exemple et voilà ce que ça me donne : c'est par ici !
Je ne comprends pas ce que peuvent être ces erreurs, une fois que cela marchera correctement, je mettrais les premiers posts du forum 2 en actus sur la page d'accueil de mon site !
Hors ligne
ceci est corrigé dans la 0.3, il faudra l'attendre...
Hors ligne
ceci est corrigé dans la 0.3, il faudra l'attendre...
C'est donc pour ma part une bonne nouvelle 
Merci Vin100
Hors ligne
bonjour j'utilise punsapi et je voulais savoir pour ajouter un utilisateur il exitse la fonction aduser mais est ce que l'on peut rajouter l avatar pour cette user et la signature aussi ? si oui comment merci de votre aide
Hors ligne
Bonjour,
Tout d'abord merci pour PunSAPI (je l'ai testé en local il fonctionne très bien).
Je n'arrive cependant pas à l'installer sur mon site car j'ai un message d'erreur :
[c]Fatal error: Cannot redeclare class recordset in /mnt/124/sdc/6/b/site.monalice/beta/forum/include/punsapi/dblayer/recordset.php on line 37[/c]
J'utilise le gestionnaire de site Plume CMS et j'ai entré le code d'installation dans le gabarit category_homepage.php.
Voila merci de votre réponse.
Hors ligne
Salut tout le monde !
Bon en faite je me trouve confronter a un petit problème...
J'ai une page principal (la charte graphique) sur lequel j'ai inclus common.php afin de pouvoir faire une zone d'identification directement intégré a la charte.
Jusque la tout fonctionne bien... mais a présent je voudrais pouvoir faire des zone spécifique pour les membres et invités...
Mes pages s'affiches en pseudo-frame include() a l'intérieur de ma charte graphique.
Quand je met le code proposé ici:
<?php if ($pun->is_guest() : ?>
ici le code pour les invités
<?php else : ?>
ici le code pour les personnes identifiés
<?php endif; ?>ça ne fonctionne pas ...
Voici le message d'erreur ...
Parse error: syntax error, unexpected ':' in /home.42/i/n/f/informathl/www/include/home.php on line 24A savoir que j'ai index.php a la racine du site, puis j'ai créé un dossier INCLUDE avec dedans toute mes pages qui s'affcihe ... home, page1, page2 etc etc ...
Mais normalement, comme j'ai mis directement a la charte le code d'integration de common.php j'ai pas a le remettre dans chaque page (ex: page1 page2 etc)
Car si j'ajoute common.php a mes pages, ça me met un autre message php, qui me dis en gros que je peut pas avoir deux fois les même variables ...
Je sais pas trop quoi faire 
Hors ligne
L'erreur signifie qu'il vous manque un ';' dans le fichier home.php à la ligne.
Vérifiez minutieusement votre fichier home.php (et plus particulierement aux alentours de la ligne 24). Il s'agit à priori d'une erreur de syntaxe.
Join us now and share the software, Hackers you'll be FREE!
Hors ligne