Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Après de très long mois d'attente (près de 18?), PunBB 1.3 sort en version béta avec quelques nouveautés dont :
* le support de l'utf-8
* des 'hooks'
cela parait peu, dit comme cela, mais attention les yeux ....
les hooks permettent dès maintenant, de créer des "extensions" sans toucher au coeur du code de punbb.
Ainsi l'avantage est de pouvoir produire des extensions de son choix qui soit installables / désinstables avec aisance et avec une maintenance accrue.
Rappelez vous comment on devait mettre à jour une MOD s'etendant sur plusieurs scripts et les précautions à prendre pour s'y retrouver.
un exemple de ce que donne un "hook" maintenant :
dans le script header.php on trouve la ligne suivante :
($hook = get_hook('hd_template_loaded')) ? eval($hook) : null;celle ci permet d'ajouter ce que l'on veut après que le template se soit chargé.
Pour exploiter ce hook, prennons l'exemple "Random Quote" permettant de changer la description du forum aléatoirement.
le noeud hook id identifie quel hook de punbb on compte exploiter, ici donc hook id vaut hd_template_loaded
une fois installé dans le répertoire extensions, rendez vous dans l'administration du forum puis installez l'extension.
vous verrez immédiatement le hook produire son effet en changeant la description de votre forum ;-)
Pour info, les hooks commençants par :
à la racine de punbb
1. dl_ sont dans delete
2. ex_ sont dans extern
3. ft_ sont dans footer
4. hd_ sont dans header
5. he_ sont dans help
6. in_ sont dans index
7. li_ sont dans login
8. mi_ sont dans misc
9. mr_ sont dans moderate
10. po_ sont dans post et edit
11. pf_ sont dans profile
12. rg_ sont dans register
13. re_ sont dans rewrite
14. se_ sont dans search
15. ul_ sont dans userlist
16. vf_ sont dans viewforum
17. vt_ sont dans viewtopic
dans le répertoire INCLUDE de punbb
18. ch_ sont dans cache
19. co_ sont dans common
20. ca_ sont dans common_admin
21. em_ sont dans email
22. fn_ sont dans function
dans le répertoire ADMIN de punbb
23. aba_ sont dans ban
24. acg_ sont dans category
25. acs_ sont dans censoring
26. aex_ sont dans extensions
27. afo_ sont dans forums
28. agr_ sont dans groups
29. ain_ sont dans index
30. aop_ sont dans options
31. apr_ sont dans prunes
32. ark_ sont dans ranks
33. ari_ sont dans reindex
34. arp_ sont dans reports
35. aus_ sont dans users
vous voici parés prêt à créer vos premiers hooks et migrer vos MOD existantes
http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix
Hors ligne
Très bonne description pour ceux comme moi pour qui c'était "flou".
Merci, je pense que la petite épingle serait pas mal !
M@x.
...
Hors ligne
mise à jour des 18 hooks que j'avais raté 
http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix
Hors ligne
J'ai une question à propos des hooks : pour ajouter du html dans une page, il faut forcément passer par un echo ?
Hors ligne
Bah ça dépend de la façon dont tu souhaite procéder 
Tu peut utiliser ces méthodes : (Je pense que tu les connaient)
- ?>
<p>HTML</p>
<?php
- echo (ou print) '<p>HTML</p>';
Je ne sais pas si je répond vraiment à ta question 
M@x.
...
Hors ligne
si je ne dis pas d'anneries, les hooks sont ensuite regroupés dans un cache_hooks qu'il est mieux si on fait echo 'balise html' que ?>balisehtml<?php ...
mais once again le mieux c'est de tester 
http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix
Hors ligne
Bah de mon côté j'ai fait les deux mais pour dyncat j'avais des tabulations qui m'agacaient et avec
?>mon code html<?php echo $mavar; ?>mon code<?phpLa source était plus propre à mon goût et ça change rien niveau vitesse mais pour ce que j'inclus en php ça m'aurais étonné de voir une différence.
:canon: Mangafan : Mettez un chat dans votre processeur ! 
Hors ligne
La source était plus propre à mon goût et ça change rien niveau vitesse mais pour ce que j'inclus en php ça m'aurais étonné de voir une différence.
Oui, mais attention à ne pas généraliser :
chaque "aller-retour" entre code php et code html PREND du temps, donc si on a beaucoup de substitutions php à faire dans un code html, il est plus efficace de rester en php et de faire un echo() du tout.
Hors ligne
Donc on ne peut pas mettre directement de code html, c'est ça que je n'avais pas compris
Merci à vous 
Dernière modification par Herbivor (09-02-2008 12:05:12)
Hors ligne
Ca commence vraiment à me faire c**** ces saletés de hooks 
J'en mets un pour vf_qr_get_forum_info et dans le fichier cache, il le met dans afo_save_forum_form_submitted :fouet:
J'en peux plus 
Hors ligne
p-e c un bug ; si tu veux montrer le manisfest.xml dans un autre poste pour pas polluer ici 
http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix
Hors ligne
Hors ligne
Je sent en voyant ton code que avec PunBB 1.3 on va bien s'amuser 
M@x.
...
Hors ligne
En attendant moi je m'amuse pas trop
J'espère qu'il ne faut pas mettre les hooks dans un ordre précis ?
Hors ligne
ba donc c'est logic ...
ya un seul
<hook id="vf_qr_get_forum_info">et 4 hook id afo alors pourquoi ne devrait-il pas etre dans le cache eux aussi ?
http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix
Hors ligne
J'ai pas tout compris là 
Hors ligne
ok
j'ai trouvé
il ne faut pas mettre d'accents !
message('Vous devez renseigner la partie forum privé.');
comme l'XML est en utf8 ; il faudrait "encoder" le message mais là ce n'est pas le cas donc vaut mieux mettre
message('Vous devez renseigner la partie forum prive.');
donc pour résumer ce qui s'est passé, l'extension a été tronquée à l'installation.
http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix
Hors ligne
Ok ok 
Entre-temps j'ai trouvé quelque chose aussi : on peut mettre des accents mais il faut les remplacer par des & #233; pour é ou des & #39; pour ' (sans espace entre & et #) 
Mais c'est chiant de devoir faire ça à chaque fois 
Dernière modification par Herbivor (09-02-2008 19:00:47)
Hors ligne
c'est comme ca l'utf8 
de meme que mettre un & mettra le souk.
http://www.foxmask.info
HaveFnuBB! le seul forum produit avec le framework PHP5 Jelix
(dé)pot de miel
Membre de la CoreTeam Jelix
Hors ligne
Bon, ça risque d'être plus compliqué que ce que je pensais mais je vais bien finir par y arriver 
Hors ligne
Effectivement, c'était le é qui coinçait, merci foxmask 
Hors ligne
je viens de mettre a jour la nomenclature avec les nouveaux hooks ajoutés aujourd'hui.
Hors ligne
Si on a des extensions qui utilisent des fichiers qu'on a créés pour cette extension, est-ce qu'il faut qu'on place des hooks dans ces fichiers ? Pour mon extension Présentation, mes hooks commencent par aexpr (a pour admin/, ex pour extension et pr pour presentation), ça va comme ça ?
Hors ligne
Non je ne pense pas. Vous pouvez juste inclure ces fichiers à partir du fichier manifest.xml.
Par exemple pour ma part, je place les fichiers créés specialement pour l'extension dans un dossier à coté du fichier manifest.xml comme ca tout les fichiers sont dans le meme dossier extensions du forum (je pense que ca evite de les éparpiller un peu n'importe comment).
<hooks>
<hook id="Le hook que vous exploitez"><
Ou alors je n'ai pas tres bien compris votre question.
Je me suis un peu mal exprimé aussi 
Dans mon fichier manifest.xml, j'ajoute un lien dans le menu d'admin pour accéder à mon fichier extensions/presentation/admin/presentation.php 
Dernière modification par Herbivor (05-03-2008 14:11:51)
Hors ligne