Les derniers billets
HaveFnuBB! 1.3.2
Bonjour,
Un gros travail de fond a été fait sur cette release.
Donc cette version de maintenance est focalisée sur l'aspect intégration du forum au sein d'une application Jelix existante.
Pour cela, voici ce qui a été entrepris et réalisé :
- Nouveau point d'entrée forums.php (en plus du index.php) qui devient du même coup le point d'entrée par défaut
- Refactorisation de la configuration
- Amélioration de l'API de gestion du forum
- Réagencement des scripts javascript et css dans le dossier hfnu propre à l'usage du forum et commun à tous modules
- Précédemment, le mod rewrite apache était requis mais ce n'est plus une obligation grâce à l'option multiview=on, les URLs sont construites avec le point d'entrée par défaut créé à cet effet.
Autres menues corrections :
- corrections de quelques templates pour les rendre conforme W3C
- corrections de fautes de frappe sur des noms de variables
Par contre si vous vous l'installer, merci de me faire un retour, que ce soit sur la forme, le contenu, histoire d'améliorer le tout et d'en faire un forum tout à fait au point !
Par foxmask sur (dé)Pot de miel - Tag - Jelix
HaveFnuBB 1.3.0
Un cadeau de noël 2 jours avant :) Au menu de cette version 1.3.0 un nombre non négligeables de nouvelles fonctionnalités et corrections telles :
- Améliorations :
- l'API de gestion des messages améliorée ;
- Le Moteur de recherche prend à présent en compte les mots de la langue française ;-) Dans l'administration, déplacement des Forums d'une catégorie à l'autre
- Ajout du nombre de messages créés par un utilisateur sur son profil
- Nouveautés :
- Gestion de censure des messages ;
- Indicateur de 'nouveau message' + 'Marquer tous les sujets comme lus'
- Liste des sujets non lus par les modérateurs dans l'administration du forum
- Migration de Phorum à HaveFnuBB possible à présent
Par foxmask sur (dé)Pot de miel - Tag - Jelix
Nouveau serveur pour jelix, et avancées prochaines
Ces jours-ci, j'ai été pas mal occupé à migrer tout les sites de jelix.org vers un nouveau serveur. Merci beaucoup à Nicolas Jeudy pour nous avoir hebergé ces dernières années, et merci à Bastien Jaillot pour nous accueillir sur une de ses machines :-).
Ce ne fut pas une mince affaire, il y a quand même une huitaine de sites et services principaux. Le plus ennuyant étant la forge, qui comporte une vingtaine de projets, tous sous trac. On est passé de trac 0.10 à 0.11, et il a fallu que j'upgrade tout les environnements tracs, mais aussi les plugins, dont un fait maison. Donc étude de la doc de migration, modifier ce qu'il y avait à modifier, vérifier le bon fonctionnement après la migration, adapter les configurations pour le nouveau serveur etc.. Même punition pour notre bug tracker, lui aussi sous trac.
Tout s'est finalement bien passé, mais une chose a été perdue en cours de route : mes beaux templates. Ils ont changer de système de template dans trac 0.11, avec un langage à la XSLT (le langage de transformation le plus hideux de la terre, il faut le dire). Je n'ai pas eu encore le temps de refaire les templates pour avoir le look "jelix.org". Et je ne sais pas quand à vrai dire j'aurais le temps, tellement XSLT ça me gave.
Mais.. J'ai des gentils contributeurs qui vont certainement pouvoir m'aider ;-). En effet, la grande nouveauté avec ce nouveau serveur, c'est que nous en avons le contrôle total, et qu'il n'y a que le projet jelix. Du coup, je peux donner les clefs. Je peux enfin déléguer ! Ce qui est déjà fait en fait. Nous sommes donc trois à pouvoir gérer la machine, et surtout, à pouvoir travailler sur les sites proprement dit, à les faire évoluer. Ce qui va être fait dans les semaines à venir, en commençant par la forge.
Olivier a déjà réalisé des améliorations dans la forge, pour que les utilisateurs puissent gérer plus facilement leurs projets. Ces améliorations seront mis en ligne certainement dans les jours prochains. Au passage d'ailleurs, j'ai migré les sources des sites web de Subversion vers Mercurial. Un autre chantier sera probablement de migrer le forum vers havefnubb, histoire d'utiliser un peu plus d'applications jelix sur nos propres sites :-)
Parallèlement à cette migration, le développement de Jelix n'a pas stoppé (merci Mercurial). J'ai pas mal avancé notamment sur le nouveau système d'installation et de mise à jour de Jelix. Après une troisième refactorisation de code, il commence à se stabiliser en terme de fonctionnement. Ce système va permettre à un module de fournir un script d'installation et de mise à jour, permettant alors d'installer toute une application (base de données, configuration...) en une ligne de commande.
J'espère sortir une beta avant Noël.
PS: si toi aussi, cela t'intéresse de contribuer aux sites jelix.org ou au framework, n'hésites pas à nous contacter.
Par Laurentj sur Jy[B]log - Tag - jelix
Petit PHP Noël quand tu descendras du ciel avec des phar par millier n'oublies pas mon petit PC

Bon,
comme je crois dur comme fer au PHP Noël, je vais me fendre d'une liste de choses que j'aimerai (faire) :
- un site recensant les modules Jelix (n'étant pas hébergés sur la Forge) à la manière de DotAddict
- un installeur web d'appli jelix (toujours à la manière plus ou moins éloignée de DotAddict)
- voir comment se comporte PHAR histoire de tester si on peut le déposer dans un conteneur PHP et accéder à son appli les doigts dans le nez.
- finir la prochaine version HaveFnuBB gérant moultes moultes grandes nouveautés.
- un nouveau PC pour remplacer celui qui me serre de presse papier depuis 15j qu'il a rendu l'âme.
Voilà la petite liste.
Restera la liste des "Bonnes résolutions" 2010, qu'on se fait tous mais qu'on ne suit jamais :P comme arrêter de fumer (ha ba là c'est bon pour 2010, je n'ai jamais tiré sur la tige ;), plus mettre le doigt dans son nez au volant au feu rouge (parce qu'en roulant c'est pire que d'avoir portable à l'oreille :D ) et j'en passe et des plus salles ;)
Petit PHP Noël j'ai nété chage toute l'année, m'oublies pas hein :P
Par foxmask sur (dé)Pot de miel - Tag - Jelix
Un mémento pour Jelix, première édition
Le mémento
Vous pouvez télécharger le mémento Jelix, version 1.0 en pdf.
Idée
Il y a quelques jours sur le salon IRC #jelix, on discutait de comment préparer le salon open source du forum php 2009. On voulait essayer de proposer quelque chose aux visiteurs du stand Jelix.
Comme je savais qu'Olivier avait commencé à travailler sur une cheatsheet online pour Jelix, je me suis dit que l'on pourrait en proposer une, joliment imprimée. Après réflexion, et parce qu'avec l'expérience je trouve inutile les cheatsheets sur une feuille A4 à plat, qui finissent toutes dans une pile pour ne plus jamais en ressortir (sauf pour aller à la poubelle), j'ai eu envie de modifier un peu la mise en page pour en faire un objet un peu plus sympa qui pourrait trainer facilement à côté des claviers. Un mémento. Acte.
Conception
Étant destiné à être imprimé, j'ai utilisé un outil adapté pour concevoir le mémento : Scribus, un logiciel de PAO open source. J'ai trouvé sa prise en assez simple et rapide et pu organiser la mise en page du mémento de façon assez propre. Je ne suis pas un expert de la PAO, j'ai donc peut-être sous utilisé le logiciel par moment, mais je suis assez satisfait de l'utilisation que j'ai pu faire de Scribus.
La conception demandait de travailler sur deux aspects :
- la mise en page pure
- le rédactionnel
La mise en page
Ce n'est pas mon point fort (c'est bien pour cela que nous sommes deux chez Kayuko et que tout ce qui touche à l'apparence est réalisé par Guy-Philippe) mais j'ai essayé de m'y mettre pour cette fois. Je voulais faire simple et pas trop chargé. En suivant certains bons conseils (essentiellement Guy-Philippe, encore lui) et en travaillant par itérations successives, la mise en page s'est mise au point.
Il fallait que le contenu soit lisible rapidement. Pour cela je voulais des titres bien en évidence pour attirer l'oeil. Au fil des itérations, la 2ème contrainte qui est apparue est celle de la quantité d'encre utilisée. Il serait mieux si l'impression d'un mémento chez vous ne vous vidait pas les cartouches.
Nous sommes donc arrivés au résultat final, qui je trouve n'est pas si mal. Je dois par contre essayer de mieux gérer les marges des imprimantes par rapport à ma mise en page.
Le contenu
Avoir un fichier ouvert sous scribus, avoir défini des styles et voir comment va apparaitre le texte c'est bien. Mais y mettre du contenu utile est une autre histoire. Je me suis basé sur le travail initial d'Olivier, que je remercie au passage pour ce qu'il a fait.
C'est sur ce point dont je suis le moins satisfait de mon travail. En effet je suis parti avec comme objectif d'avoir un mémento utile pour les personnes découvrant Jelix. Y mettre les concepts de base et couvrir l'utilisation principale de manière simple. C'est ce dont je me suis attaché à faire.
Mais finalement cela ne me convient pas. Peut-être car je ne suis pas la cible même de ce mémento ? Certainement. Je voulais un outil qui serve vraiment et je pense que pour cela il ne fallait pas viser la découverte de Jelix mais bel et bien son utilisation au quotidien.
Je peux donc déjà annoncer que je vais retravailler le rédactionnel pour faire une nouvelle version plus intéressante. L'avantage est que j'ai maintenant mieux en main Scribus et que je n'ai plus à travailler la mise en page.
Tout comme mon choix initial de la langue anglaise qui est à revoir ou au moins à compléter avec une version en français. Si j'ai bien remarqué une chose avec Jelix, c'est que de la documentation en français est toujours plus appréciée ;)
Publication du mémento
Jelix est un projet open source, le mémento se devait de l'être tout autant. Il est donc publié sous Licence Creatice Commons by-nc-sa 3.0. Les sources sont disponibles sur bitbucket (j'utilise d'ailleurs de plus en plus mercurial au quotidien) vous pouvez donc cloner et patcher autant que vous voulez ;)
N'hésitez pas non plus à me faire des retours sur ce document pour qu'il soit amélioré et puisse être plus utile au quotidien.
Petite conclusion
- Travailler par itérations c'est bien
- Concevoir en amont «sur papier» avant de se jeter sur un clavier aussi
- Versionner son travail c'est pratique
- Le partager c'est bon pour tous
Par bballizlife sur Carnet web de Loïc Mathaud - Tag - jelix
Jelix sillonne la France en camion
Le Camion Des Mots est un camion qui, dixit le site :
sillonne les routes de France pour aller à la rencontre des enfants scolarisés du CE2 à la troisième (8 à 15 ans). Accompagnés de leur professeur, les élèves participent à une animation pédagogique de 30 minutes sur des ordinateurs. Au cours de leur visite, ils jouent avec la langue française, ses pièges, ses règles et son histoire.
Et cette animation repose sur "4000 jeux éducatifs autour de la langue française et de ses bizarreries".
Le développeur de ces jeux vient de me faire savoir qu'ils sont développés avec le framework PHP Jelix et jQuery. Ce développeur étant en fait un contributeur à Jelix :-)
Et puis bien sûr, c'est Firefox qui est utilisé pour accéder aux jeux.
Bon, à quand un "Jelix Tour" officiel ?
Par Laurentj sur Jy[B]log - Tag - jelix
HaveFnuBB 1.2.0
Bonjour, voici venue la version 1.2.0 contenant son lot de nouveautés et d'améliorations :
- intégration du framework Jelix 1.1.4
- système de 'Hook' permettant d'étendre les fonctionnalités du forum comme bon vous semble.
- Gestionnaire de thèmes permettant de choisir son thème en un clique !
- Amélioration du rendu de la liste des modules utilisés au sein de HaveFnuBB!
- Administration des boutons des réseaux sociaux reliant discussions à ces derniers
- Amélioration du "brouillage" de l'affichage des courriels à tous.
- Amélioration de l'affichage des règles du forum
Ainsi donc pourvu, le forum est personnalisable à souhait et surtout, extensible comme jamais !
Par foxmask sur (dé)Pot de miel - Tag - Jelix
AFUP ForumPHP 2009 clap de fin
Je n'aborderai ici que le sujet qui m'intéresse à savoir celui que j'aurai défendu depuis le début : les projets open sources et à travers eux tous les développeurs, contributeurs et auteurs des projets présents à ce volet 2009.
Je remercie Xavier Gorse président de l'Afup pour nous avoir offert un "espace" d'où chaque projet aura pu montrer ce qu'il offrait et échanger autant avec les visiteurs qu'avec ses voisins de table (pour refaire "bouillon de culture" comme je twittais hier ;)
Pour ma part je ne suis pas mécontent d'avoir pu à nouveau revoir les amis de Jelix, (les occasions sont tellement rares) ainsi que ceux de cakephp-fr mes ex co "animateurs-dev de la communauté" francophone, et toujours amis.
Et surtout, montrer mon "petit" (mais costaud) projet de forum, à PHPTV, illustrant toute la force que l'on puise en Jelix.
Un très grand merci au final à un homme de l'hombre : Marc Abiven, membre AFUP, qui m'aura contacté début septembre 2009, pour que tout cela puisse avoir, lieu rencontré courant mai 2009 au détour d'un apéroPHP
A l'année prochaine donc avec plus d'espace, plus de projets, plus de monde et plein de nouvelles choses sortant du chapeau de Jelix ! :-)
Souvenirs Souvenirs en images ;)
Par foxmask sur (dé)Pot de miel - Tag - Jelix
HaveFnuBB Hook System
Parmi les forums bien pensés, existent des systèmes d'extension (ou hook)
laissant libre cours à la créativité des développeurs de ces hooks.
Dans HaveFnuBB (le forum que je réalise), il m'aura fallu un plugin de 10 lignes pour permettre à tout developpeur, d'enrichir ses templates avec une souplesse déconcertante.
L'idée derrière ce plugin est la suivante :
Je me créé un portail, blog, forum, et me "contente" d'une petite batteries de fonctionnalités rendant la page à mon goût.
Mais avec ce plugin, je permets à quiconque de rajouter ses propres fonctionnalités à l'endroit où le hook est appelé.
Concrètement comment cela marche ?
Dans mes templates, je pose :
{hook 'event',$params}
où :
- event est le nom de l'évènement déclenchant la récupération de toutes fonctionnalités
- $params est le tableau des paramètres passés au plugin hook, (puis au listener).
Pour illustrer ce principe, dans le forum HaveFnuBB, je dispose d'un moteur de recherche permettant de trouver tout mot dans toutes les discussions.
Comme c'est loin d'être satisfaisant pour tout à chacun (c'est volontaire, le module de recherche étant générique et extensible),
je pose le hook 'Search' pour que quiconque puisse rajouter tout ce qui lui convient.
le template de recheche est le suivant :
{hook 'BeforeSearch'} <div class="box"> <h2>{@hfnusearch~search.search.perform@}</h2> <div class="block"> <div id="post-message">{jmessage}</div> <form action="{formurl 'hfnusearch~default:query'}" method="post"> <fieldset> <legend>{@hfnusearch~search.in.all.forums@}</legend> <div class="form_row"> {formurlparam 'hfnusearch~default:query'} <input type="hidden" name="perform_search_in" value="words"/> <div class="form_property">{@hfnusearch~search.hfnu_q.search@}</div> <div class="form_value"> <input type="text" id="hfnu_q" name="hfnu_q" size="31" /> </div> <div class="clearer"> </div> </div> <div class="form_row form_row_submit"> <div class="form_value"> <input class="submit" type="submit" name="validate" value="{@hfnusearch~forum.search.okBt@}" /> </div> <div class="clearer"> </div> </div> </fieldset> </form> {hook 'Search'} </div> </div> {hook 'AfterSearch'}
A présent je veux pouvoir chercher des auteurs de discussions ou, chercher dans un forum particulier.
Donc je me rends dans mon listener et j'ajoute de quoi effectuer tout ceci :
class hookListener extends jEventListener{ function onSearch ($event) { // appel des zones $author = jZone::get('hfnusearch~searchAuthor'); $forum = jZone::get('hfnusearch~searchForum'); $zone = $author . $forum; $event->add( $zone ); } }
et la zone author :
class searchAuthorZone extends jZone { protected $_tplname='zone.searchAuthor'; protected function _prepareTpl(){ $form = jForms::create('hfnusearch~author'); $form->setData('perform_search_in','authors'); $this->_tpl->assign('form',$form); } }
et le template zone.searchAuthor :
{form $form , 'hfnusearch~default:query'} <fieldset> <legend>Author</legend> <div class="form_row"> <div class="form_value"> <strong>Author</strong> </div> <div class="clearer"> </div> </div> <div class="form_row"> <div class="form_property"> {ctrl_label 'hfnu_q'} </div> <div class="form_value"> {ctrl_control 'hfnu_q'} </div> <div class="clearer"> </div> </div> <div class="form_row form_row_submit"> <div class="form_value"> {formsubmit 'validate'} </div> <div class="clearer"> </div> </div> </fieldset> {/form}
Et c'est tout !
Pour résumer "la puissante simplicité" :

- appel du hook dans le template hfnusearch
- dans le listener, appel de la zone
- dans la zone, instanciation du formulaire de recherche et affichage du template
- retour du rendu au hook
Résultat avant / après :
en savoir plus sur jEvent qui a permit ce hook.
Par foxmask sur (dé)Pot de miel - Tag - Jelix
ForumPHP 2009, avec Jelix et HaveFnuBB
Dans ce précédant billet, j'évoquais une "carence" sur la présence des développeurs PHP contribuant à la communauté.
Et ô surprise, quelque jours plus tard, je me vois contacter par un membre de l'Afup pour participer à un "espace projets PHP opensource".
Je ne sais pas s'il y a une relation de cause à effet, mais en tout cas, l'esprit "du libre" m'animant depuis plus de 10ans, je n'ai pu m'empêcher de partager cela et contacter mes "ex" de CakePHP-Fr pour leur en toucher 2 mots, juste histoire que "cette porte entrouverte" profite au plus grand nombre afin que l'évènement soit une vraie réussite et perdure :) Et donc CakePHP-Fr y sera aussi :)
Ainsi donc je pourrai vous présenter HaveFnuBB, le forum OpenSource produit avec Jelix le framework PHP5. Et cerise sur le gâteau, en la présence de Laurent Jouanneau, mr Jelix lui-même. :-)
Par foxmask sur (dé)Pot de miel - Tag - Jelix
PHP n'est pas un bon langage de template
Ça me fait plaisir de lire ce genre de billet, surtout venant de la part d'une figure du monde PHP, à savoir Fabien Potencier (monsieur Symfony). Ça fait des années que je pense comme Fabien : PHP est un mauvais langage de template. Pas assez sécure (que fait-t-on des templates uploadés par des utilisateurs par exemple ?), trop verbeux, parfois trop complexe pour les intégrateurs web qui ne savent pas programmer, et n'impose pas une séparation entre logique métier et "vue" (vu que dans un template en PHP, on peut appeler tout et n'importe quoi).
C'est pourquoi j'ai toujours préfèré utiliser un langage qui soit conçu pour les templates, pour faciliter leurs écritures d'une part, et de bien faire une séparation entre la logique métier et la "vue". Et c'est pourquoi dans Jelix, j'ai crée mon propre moteur de template, ultra léger et performant, jTpl, qui est disponible en version standalone, dont je devrais sortir la version 1.0 dés que j'ai un peu de temps.
Par Laurentj sur Jy[B]log - Tag - jelix
Framework PHP5, La planète