Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Auteur : Jean Claude Bourré
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.3
#-------------------------------------------------------------------------------
- moved dblayer in intern
- added PUN_ROOT constant
- added PunToolBar 1.4/1.5 support
- added relatives parameter to format_time function
- added format_date function alias of format_time function
- added intern dates formating:
- added str_date function
- added date_to_str function
- added iso8601_date function
- added mails methods:
- added mail function
- added is_banned_email function
- added add_user function
- added get_news function
- added get_total_users function
- added get_last_user function
- added get_totals_entries function
- added get_total_topics function
- added get_total_posts function
- changed function name _preparse_bbcode to _pre_parse_bbcode (thanks Audi)
- fix little typo in _unregister_globals()
- fix edit_topic()
- rewrite documentation layer
#-------------------------------------------------------------------------------
# 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
Je l'attendais avec impatience cette version, merci vin'. 
Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?
Pas de support si pas d'adresse de forum !
Hors ligne
Génial Vin100, je vais essayer dans l'aprèm ou en soirée !
Edit :
Pas résisté j'ai commencé à fouiller, et en testant les scripts PORTAL et NEWS, je tombe sur la même erreur :
Fatal error: Call to undefined function: get_news()J'espère que c'est pas moi qui ai fait des bêtises, mais j'ai bien regardé les données que j'ai mises et je vois rien de changé...
Dernière modification par Llanis (08-05-2007 14:00:15)
Hors ligne
Merci vin100 pour cet mod je vais tester 
Hors ligne
Llanis à mon avis tu utilise les nouveaux fichier d'exemple avec PunSAPI 0.2 ; cette fonction a été introduite dans la 0.3 il faut donc cette version pour que ça fonctionne
Hors ligne
Effectivement Vin100, ça me parait une idée vraiment très bonne.
Et dire que j'aurais pu passer une partie de l'aprèm à bosser dessus...
J'ai un peu honte du coup !
* parti se cacher dans une sombre et lointaine forêt...*
Néanmoins je me refarci encore une erreur...
Notice: Undefined index: by in /home/www/.../www/news.php on line 123Qu'ai-je encore mal modifié ?
Dernière modification par Llanis (08-05-2007 21:07:59)
Hors ligne
non là c'est moi ; dans le même fichier au niveau du tableau de langue française à la ligne suivante :
'By' => 'Par',remplace 'By' par 'by'
edit : et par la même occasion 'Par' par 'par' (oui dit comme ça c'est tordu mais en regardant le code c'est assez simple) ; ou autrement dit : vire les majuscule de cette ligne
Hors ligne
Wahooooooooooooo ça marche nickel 
Merci beaucoup, me reste plus qu'à m'en inspirer/copier une partie du code :fouet:
Dans le genre, je suis roi... quoique ça me las aussi (:D)
J'ai une erreur sur la page sur laquelle j'essaye de mettre les news ou un truc tout bête pour liste les sujets d'un forum donné, voilà le code de ma page (je suis pas au point en php, envoyez un mail pour proposer mieux
)
<?php
require './forums/include/punsapi/public.php';
$options = array('debug'=>true);
$pun = new punsapi($options); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>Bienvenue sur le site des Editions Eridan</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="./style/mise-en-page.css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="/forums/extern.php?action=new&type=RSS&fid=2" />
</head>
<body>
<div id="first-background">
<div id="conteneur">
<div id="header">
<?php
$accueil = "currentmenunav";
$infos = "nocss";
$catalogue = "nocss";
$evenements = "nocss";
$contact = "nocss";
$presse = "nocss";
$forums = "nocss";
include("menu.php"); ?>
<div style="height: 140px;background: #000000 url(<?php include("alea.php"); ?>) no-repeat left top;"></div>
<div id="navlinks"></div>
<div id="sub-navlinks">
Accueil » Bienvenue à vous !
</div>
<?php if ($pun->is_admin())
{ ?>
<div class="go-admin">
<a href="xxx.php">» Aller admin</a>
</div>
<?php
} else
{ }
?>
</div>
<div id="centre">
<div id="edito">
<span class="welcome">Les Editions Eridan vous souhaitent la bienvenue sur leur site !</span>
<br /><br /><br />
<div class="titre">Edito</div>
<div class="titre-explain">
<?php
$chemin = './';
require $chemin . 'basededonnesdusite.php'; //nom changé ;)
$date = date("d/m/Y");
list($n_jour, $n_mois, $n_annee) = explode('/', $date);
// On crée un array pour numéroter les mois
$mois_liste = array (
"00" => "Impossible",
"01" => "Janvier",
"02" => "Février",
"03" => "Mars",
"04" => "Avril",
"05" => "Mai",
"06" => "Juin",
"07" => "Juillet",
"08" => "Aout",
"09" => "Septembre",
"10" => "Octobre",
"11" => "Novembre",
"12" => "Décembre"
);
$mois_publi = $mois_liste[$n_mois];
$retour = mysql_query("SELECT mois, contenu FROM editos WHERE mois='$mois_publi'");
while ($donnees = mysql_fetch_array($retour))
{
// On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
$contenu = nl2br(stripslashes($donnees['contenu']));
echo $contenu.'</div>';
} // Fin de la boucle
?>
<div class="titre">Actualités</div>
<div class="titre-explain">
<?php
$topics = $pun->get_topics('2');
echo '<ul>';
while ($topics->fetch())
{
echo '<li><a href="'.$pun->get_board_url(true).'/viewtopic.php?id='.$topics->f('id').'">'.$pun->htmlspecialchars($topics->f('subject')).'</a></li>';
}
echo '</ul>';
?>
<div class="archives">
<a href="#" title="Consultez les archives">Consultez les autres actualités</a>
</div>
</div>
</div></div>
<?php include("footer.php"); ?>
<?php $pun->finish() ?>Dernière modification par Llanis (09-05-2007 15:17:31)
Hors ligne
Bonjour à tous,
J'ai une Install de la v1.2.15, avec quelques plugins (pas de mods) dont 'custom page 1.0' et 'punsapi 0.3'.
via custom page j'utilise punsapi et j'ai le msg suivant :
Fatal error: Cannot redeclare stripslashes_array() (previously declared in C:\wamp\alias\ademist\include\common.php:63) in C:\wamp\alias\ademist\include\punsapi\core.php on line 143.
j'ai essayé plusieurs trucs, mais sans resultat, alors je viens vers la communauté.
Dernière modification par motsan (10-05-2007 16:04:01)
Hors ligne
Aie, j'ai compris,
on ne peux pas utiliser punsapi et common.php en meme temps!!!
Suis trop nul, pardon pour ceux qui ont perdu le temps de me lire.
Hors ligne
Je reviens à la charge.
Ok, punsapi et common ne sont pas utilisables en meme temps.
Mais pour creer une page comme indiquée dans ajouter une page avec punsapi.
il faut enlever le QUIET_VISIT (option dans punsapi) et common.php ligne 4/5.
mettre comme dans la doc le include punsapi/public, faire une instance de l'objet.
Mais ca ne fonctionne pas : il faut pouvoir utiliser les include/functions.php (inclu dans common.php).
Et meme si l'on fait ca, il me sort une erreur dans le header de punbb.
(on dirait une collision entre $pun->db et $db qui n'est pas reconnu).
meme si je connais le php, là je pige pas trop...
est ce que je m'y prend mal...
faut il attendre un pusapi 0.4 plus mure (attention, pas une critique ici, loin de là, c'est un super boulot)...
voila, merci d'avance...
Dernière modification par motsan (10-05-2007 17:12:21)
Hors ligne
En même temps PunSAPI ne sert pratiquement à rien si tu utilise le portal, les fonctions du PunSAPI se retrouvant facilement dans common.php et dans functions.php
PunSAPI est à mon sens destiné à quelqu'un qui intègre le forum à son site, qui souhaite utiliser les infos de punbb EN DEHORS de punbb.
Hors ligne
Je comprends ta seconde phrase (sur l'integration), et ca me va.
Mais par contre je trouve que Punsapi apporte une plus grande API qu'avec common & function.
En fait, je voulais utiliser punsapi & custom page (à la sauce portal) pour faire quelques pages sur le site dont le contenu serait plus facile à maintenir grace à l'API, d'autant plus que ca ne sera pas moi qui ferais la maintenance...
Je dois simplifier la page de gestion du profil, l'api me permet d'integrer/retrouver le resultat proprement et rapidement.
Ceci dit, quelque soit le but de punsapi, je pense que l'on doit pouvoir l'utiliser (sous certaines contraintes indiquées dans la doc, biensur) DANS et EN DEHORS de punbb.
Dernière modification par motsan (10-05-2007 17:41:43)
Hors ligne
Bonjour,
Je me suis penché sur le code, voila ma proposition : afin que cela fonctionne avec une page de portal ou le plugin 'custom page', j'ai apporté quelques modif :
fichier core.php
1 - constat : le code qui charge la config genere des notices' (mais pas grave).
2 - constat : idem pour le code qui charge le cache.
3 - modification : ligne 158 à 163 (les defines) : j'ai mis un if define histoire de ne pas les redefinir (virer les notices).
4 - modification : ligne 145 : j'ai ajouté une condition d'existance de la fonction stripslashes_array, comme ca elle n'est pas redefinit si deja dans le common.php.
fichier public.php.
1 - function finish : j'ai mis un parametre avec valeur par defaut et un if si besoin de faire un exit.
voila, modeste contrib qui ne devrait pas modifier le comportement de punsapi dans ou en dehors de portal.
pour moi ca marche...
Punsapi : excelent.... 
Dernière modification par motsan (11-05-2007 10:12:04)
Hors ligne
a la fin est ce qu'en peut avoir un portail comme celui de ce site?
sinon ya il un autre script pour cela?
sa7a
Hors ligne
oui c'est possible, moyen de connaitre PHP, ce qui ne semble pas être ton cas
non il n'y a pas de script pour faire la page de punbb.fr elle est "faite maison"
Hors ligne
salut,
D'après ce que j'ai compris, il est possible de contourner l'affache des derniers post du firum sur le site grâce PUNSAPI en affichant plus de truc (vous m'arrêtez si je me trompe).
J'ai compris pour le code à ajoter en début et fin de page php mais c'est pour l'insertion des donnés que je bugue.
Ne connaissant pas grand chose au php, j'aimerai bien savoir comment afficher les derniers post du forum mais en ajoutant sur la même ligne le nom du dernier posteur (ou sinon le créateur du sujet) voir même la date et/ou l'heure du dernier post. Genre comme ceci:
-> sujet [vin100] - Le 12/07/07 à 15h50
ou
-> sujet [par vin100] - le 12/07/07 à 18h02
(j'ai mis des crochets car je trouve ça simpa, si c'est possible...)
Hors ligne
Bonjour,
Je crois qu'il y a un bug avec la fonction get_user_registered qui me donne ceci :
vendredi avril 2003
Il manque le jour 
Sinon, très bonne idée cette Api, c'est très utile pour intégré un site à son forum 
Hors ligne
Mais pourquoi appeler cette mod un API alors que s'en est pas un ???Mais sinon c'est un bon outil 
[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
Mais pourquoi appeler cette mod un API alors que s'en est pas un ???Mais sinon c'est un bon outil
ah bon c'est pas une API ? mais qu'est-ce donc alors ?
Bonjour,
Je crois qu'il y a un bug avec la fonction get_user_registered qui me donne ceci :
vendredi avril 2003
Il manque le jour
Sinon, très bonne idée cette Api, c'est très utile pour intégré un site à son forum
c'est en local que ça te fait ça, mais en ligne ça devrait fonctionner, problème windows je pense
Hors ligne
Si c'ets un API, j'avais mal saisie le sens de ce mot
Je suis allé sur wikipedia et j'ai eu une ptite confirmation
[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
Pour moi oui c'est une simple interface de programmation pour PunBB. Mais si tu as une autre définition, je suis tout ouïe.
Hors ligne
Ben pour moi qui est decouvert ce terme il ya maintenant je pense 2-3 mois je croyais simplement que c'était une "librarie" utilisable a l'exterieur du site ou le traitement se fait.Comme Flikr, Technoratie, mais il est vrai que je n'avais pas cpaté...
[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
salut,
D'après ce que j'ai compris, il est possible de contourner l'affache des derniers post du firum sur le site grâce PUNSAPI en affichant plus de truc (vous m'arrêtez si je me trompe).
J'ai compris pour le code à ajoter en début et fin de page php mais c'est pour l'insertion des donnés que je bugue.
Ne connaissant pas grand chose au php, j'aimerai bien savoir comment afficher les derniers post du forum mais en ajoutant sur la même ligne le nom du dernier posteur (ou sinon le créateur du sujet) voir même la date et/ou l'heure du dernier post. Genre comme ceci:
-> sujet [vin100] - Le 12/07/07 à 15h50
ou
-> sujet [par vin100] - le 12/07/07 à 18h02
(j'ai mis des crochets car je trouve ça simpa, si c'est possible...)
personne ne peut m'aider ?
Hors ligne
Bonjour tout le monde.
J'ai installé en début de semaine punSAPI 0.2 (ça m'a bien simplifié mon code MERCI) et je suis venu rapporter des bugs trouvés ... trop tard on est passé à la 0.3 ! 
Est-ce que la 0.3 possède une méthode "user login", ça serait sympa.
Pour faire réagir les visiteur à un blog de mon site, je pourrais mettre un petit cadre pour les inviter à s'enregistrer/s'inscrire ou mettre un textarea pour pouvoir créer direct une réponse au topic correspondant.
Si ça n'existe pas, merci de me dire si c'est au moins en cours. Sinon je le développerai moi-même ... et si c'est pas trop tard je le proposerai ici pour qu'il puisse être ajouté punSAPI !
Tchao :canon:
Hors ligne