Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
est-ce que tu as regardé les exemples ? une fonction user_login serait parfaitement inutile, regarde les exemples
sinon si tu avait trouvé des bugs tu peut quand même les signaler car c'est pas dit qu'ils soient corrigés
Hors ligne
Bonjour,
Bug en vu... sur la v0.3
dans la fonction edit_post du fichier public.php, il faut remplacer la variable $id par $post_id sinon ca ne genere que des erreurs de RQT SQL, car a chaque RQT il y a un truc du genre "where id='.$id.'...' et ca plante.
Dernière modification par motsan (12-06-2007 17:03:01)
Hors ligne
Question sûrement stupide : pourquoi punsapi utilise des require et pas des require_once ?
J'ai un problème de fonction punsapi déclarée deux fois, qui semble liée au fait que des fichiers .php sont inclus de multiples fois par punsapi...
Ou alors j'ai raté quelque chose...
Autre truc : dans core.php lignes 230 et 231, c'est normal le double require identique ?
Dernière modification par Jérémie (13-06-2007 21:36:04)
Hors ligne
Il n'y a pas de double require aux lignes 230 et 231 de core.php
if (file_exists(dirname(__FILE__).'/locales/'.$this->user['language'].'/date.lang.php'))
require dirname(__FILE__).'/locales/'.$this->user['language'].'/date.lang.php';Hors ligne
Il a du se passer un truc bizarre de mon coté...
Corrigé, merci.
Une idée pour les require/require_once ?
Hors ligne
@motsan : merci, j'y regarderais dès que possible
@Jérémie : pas de require_once parce que je n'en ai pas vu l'utilité, chaque fichier n'est inclut qu'une seule fois, enfin en théorie, après y'a peut être un bug, mais où ? je ne sais pas, jamais rencontré de tel bug
enfin à vue de nez une fonctione PunSAPI déclarée deux fois c'est certainement que tu inclu deux fois le script non ?
Hors ligne
Fichier inclus une seule fois, mais objet instancié deux fois.
Hors ligne
en théorie créer deux instances de la même classe ça ne pose aucun problème, c'est un des but de l'objet, après reste à voir si cela est bien nécessaire
mais je ne comprend pas trop, est-ce que c'est toi qui créer deux instances de PunSAPI dans le même script et qui pose problème ou est-ce que c'est PunSAPI qui créer deux instances d'une classe alors qu'il ne faudrait pas
peut tu préciser ton problème stp ?
Hors ligne
Voilà le truc. J'essaie d'écrire un plugin pour Textpattern (petit CMS assez dans l'esprit de PunBB, les deux cohabitent plutôt très bien) qui soit une mini interface vers PunSAPI (et donc PunBB).
Le plugin est un simple code php, ou chaque commande qui sera utilisé par le CMS est une fonction.
Donc pour avoir disons deux commandes, A et B, j'ai dans mon plugin:
require_once '/punsapi/public.php';
function a() {
$foo = new punsapi();
// du traitement
return unTruc;
}
function b() {
$foo = new punsapi();
// du traitement
return unAutreTruc;
}Si ensuite j'appelle ma commande A, ça va. Mais quand j'appelle aussi la B, j'obtiens un "cannot redeclare function" (stripslashes_array() dans mon cas, mais je suppose que c'est juste parce qu'elle est appelée deux fois).
J'ai bien sûr testé de créer un objet en-dehors des fonctions, donc un seul pour le code, mais j'obtiens alors une erreur PHP "objet inconnu".
Note : oui le développement, c'est pas ma tasse de thé 
J'ai essayé le mode debug de punsapi pour voir si il me donnait plus d'infos sur le cheminement exact du parser, mais rien de plus non.
Dernière modification par Jérémie (14-06-2007 20:07:34)
Hors ligne
J'ai bien sûr testé de créer un objet en-dehors des fonctions, donc un seul pour le code, mais j'obtiens alors une erreur PHP "objet inconnu".
Note : oui le développement, c'est pas ma tasse de thé :
Je suppose que dans les fonction tu as déclaré "global" l'objet créé en dehors ?
Pour avoir un fonctionnement "à la C" j'ai pondu cet horrible truc :
define("GlobalVar",'foreach($GLOBALS as $key => $value) {eval("global $$key;");}');
function Alac(){
eval(GlobalVar);
....A ne pas utiliser !!! 
Hors ligne
Je suppose que dans les fonction tu as déclaré "global" l'objet créé en dehors ?
Nope... je viens d'essayer, mais je n'arrive à rien sur ce flanc là.
Hors ligne
normalement :
require_once '/punsapi/public.php';
$foo = new punsapi();
function a() {
global $foo;
// du traitement
return unTruc;
}
function b() {
global $foo;
// du traitement
return unAutreTruc;
}ou en paramètres de tes fonctions :
require_once '/punsapi/public.php';
$foo = new punsapi();
function a(&$foo) {
// du traitement
return unTruc;
}
function b(&$foo) {
// du traitement
return unAutreTruc;
}par contre je ne comprend pas pourquoi il y a cette erreur de re-déclaration de fonction quand tu créer 2 instances, je regarderais
Note : oui le développement, c'est pas ma tasse de thé
ah je comprend mieux pourquoi tu n'a jamais compris pourquoi il ne fallait pas mettre PunBB 1.2.x en utf-8

Hors ligne
bonjour, j'ai tatonné cette API et testé l'affichage d'un des forums pour les news en page d'accueil.Le soucis que je rencontre est apres modification du parser.php pour inclure la puntoolbar....
Warning: main(/mon_domaine/include/cache_smilies.php) [function.main]: failed to open stream: No such file or directory in /mon_domaine/forums/include/parser.php on line 34
Fatal error: main() [function.require]: Failed opening required '/mon_domaine/include/cache_smilies.php' (include_path='.:/usr/local/lib/php') in /mondomaine/forums/include/parser.php on line 34En effet, punbb est dans un rep "forums" et j'appelle depuis la racine du site.
J'ai vu que dans l'exemple du portal livré avec PUNSAPI:
# the portal path
define('PORTAL_PATH', dirname(__FILE__).'/');
# the forum path
define('PUN_ROOT', dirname(__FILE__).'/');Je ne maitrise pas encore tout a fait la hierarchie de punbb... si kkun à un tuyau:
visible sur Mon site
Merci d'avance
PS: A noter que news.php à la racine fonctionne tout à fait...:siffle:
Dernière modification par mine2rien (17-06-2007 16:27:40)
Hors ligne
après essais, il s'avère que c'est:
[c]<?php echo $pun->parse_message($news->f('message'), $news->f('hide_smilies')) ?>[/c] qui me fait afficher l'erreur.
et je me rends compte que j'ai installé le mod puntoolbar 1.5 et que dans le CHANGELOG de l'aPI il est supporté la version 1.3/1.4 de puntoolbar....:D.
Au temps pour moi...
Dernière modification par mine2rien (17-06-2007 21:30:32)
Hors ligne
elle est énorme ton API
autosatisfaction time 
Hors ligne
Est il possible par le biais de l'API de verifier la concordance username/password dans l'URL?
www.monsite.com/testapi.php?username=moi&pass=huhu
juste pour faire des vérifications --> nul besoin d'être effectivement loggé apr ce système, juste tester si le pass et le login sont correct.
MErci d'avance
Hors ligne
il me semble pas qu'il y ai de fonction "juste pour tester si le pass et le login sont corrects" mais ça ne doit pas être très compliqué à mettre en place, il faudrait regarder le code de la fonction login et s'inspirer de celle-ci, je peut aussi le noter pour une prochaine version
néanmoins passer un mot de passe dans une URl c'est une très mauvaise idée
Hors ligne
login/pass est un exemple mais ce qui m'intéresse surtout est de passer une variable dans l'url afin de pouvoir manipuler cette api avec un logiciel "third party".
J'explique:
via un logiciel, je cherche a savoir si l'utilisateur est membre du forum(login/pass) en me connectant a la BD via un script utilisant l'API. s'il ne l'est pas,il peut alors s'enregistrer...d'où passage de variable dans l'url.
Je pourrai me contenter de renvoyer vers la page d'accueil en effet....mais suis assez bidouilleur et j'aime comprendre tout ce qui se passe autour.
Ps: l'url est utilisé dans mon cas via un socket et non dans un explorateur.Donc url non visible (bon apres...nul n'est a l'abri mais bon...:siffle: ).
Hors ligne
J'ai relu le post global :
pour la personne qui aurait une double instance de je ne sais quoi,
Dans un de mes posts dans le meme topic,
j'explique que pusapi et common.php sont pas utilisables comme ensemble.
en effet, les deux sources declare le strip_slash_trucmuche, ce qui semble etre le probleme.
d'ou ma proposition :
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....
ca devrait resoudre le pb.
Dernière modification par motsan (28-06-2007 15:01:50)
Hors ligne
est-ce que tu as regardé les exemples ? une fonction user_login serait parfaitement inutile, regarde les exemples
sinon si tu avait trouvé des bugs tu peut quand même les signaler car c'est pas dit qu'ils soient corrigés
Désolé pour le temps de réponse, j'ai oublié de m'abonner au forum.
Donc oui je n'avais pas vu l'ajout de la fonction add_user qui semble faire ce dont j'ai besoin.
Il faut que je retrouve les erreurs que j'avais constaté mais je crois qu'elles ont été constatées sur le forum.
C'était des $variable au lieu de $this->variable par exemple.
J'ai aussi du ajouter
[c]if(!function_exists("stripslashes_array")){[/c]
A la ligne 70 de forum/include/common.php car l'affichage de la partie forum de mon site nécessitait PunSAPI et donc la fonction stripslashes_array était déclarée 2 fois.
Voilà je test la 0.3 ce soir !
Hors ligne
ah oui mais alors là on est dans le cas où tu te sert de PunSAPI dans PunBB ets il a été clairement indiqué que ce n'est pas fait pour ça.
Hors ligne
ah oui mais alors là on est dans le cas où tu te sert de PunSAPI dans PunBB ets il a été clairement indiqué que ce n'est pas fait pour ça.
Je n'utilise pas punsapi pour le forum, que je n'ai pas modifié...
... ou très peu car j'ai un template pour mon site, que je souhaitais utiliser pour le forum (voir http://www.moustik510.net/forum/index.php)
Pour l'affichage de ce template, j'utilise punsapi (pour savoir si l'utilisateur est un admin ou autre) donc je me retrouve avec le problème vu plus haut.
Mais un simple
if(!function_exists("stripslashes_array")){
dans /include/punsapi/core.php (de mémoire ...) règle le problème.
Hors ligne
Dans core.php remplacer ligne 1083
function handle_img_tag($url, $is_signature=false, $align='')par
function _handle_img_tag($url, $is_signature=false, $align='')Hors ligne
bonjour,
j'ai un petit souci avec cette api avec la fonction get_news() , voici mon code simplifié :
$pun = new punsapi();
$news = $pun->get_news();
while ($news->fetch())
{
echo $pun->parse_message($news->f('message'),true);
}
dés qu'il y a une balise [url]ca me retourne l'erreur :
Fatal error: Call to undefined function handle_url_tag() in C:\dvpt\www\v3\forum\include\punsapi\core.php(1171) : regexp code on line 1
et effectivement (comme pour _handle_img_tag du post précedent ) la fonction s'appelle _handle_url_tag ( manque le underscore au début ), donc je modifie la regexp (ligne 1153 et 1154 ) en lui donnant le bon nom et là surprise :
Fatal error: Call to undefined function _handle_url_tag() in C:\dvpt\www\AppleStore\v3\forum\include\punsapi\core.php(1173) : regexp code on line 1
_handle_tag_url() n'est toujours pas trouvée 
quelqu'un a une idée ?
Hors ligne
Bonjour,
J'utilise L'API sur mon site, cela marche très bien, mais je n'arrive pas à récupérer le nom de l'utilisateur dans une variable.
J'explique :
Je veux mettre sur mon site un module de 'news', c'est en fait un module qui permet d'afficher un texte sur la page d'accueil du site.
Je voudrais que ce module ne soit accessible qu'a certain membre. Pour le moment ça va
.
Mon problème est dans l'administration des news, je voudrais que les membres ne puise gérer que les news qu'ils ont écrites.
Voici mon code de la page liste des news :
<?php
if ($pun->is_admin()) //si le membre est un admin on récupère toutes les news
{
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
}
else // sinon on ne récupère que celles qu'il a écrit
{
$retour = mysql_query('SELECT * FROM news WHERE auteur = 'le nom du membre' ORDER BY id DESC');
}
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo $donnees['auteur']; ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news
?>Voila, en fait je voudrais qu'après WHERE auteur= on est le nom du membre, et je n'y arrive pas. Si quelqu'un à la solution, j'en serai reconnaissant.
( Je suis pas très bon en php et j'y ai passé une après-midi pour résoudre ce problème sans succès
)
Dernière modification par Cyrille53 (06-09-2007 14:47:48)
Hors ligne