Blogs

Vous voulez que votre blog soit intégré à cette liste ? Envoyez un mail à laurent chez jelix.org.

Les derniers billets

Jelix 1.0.9, Jelix 1.1.3 et WikiRenderer 3.1

19-06-2009 à 11:43:00

Dans le courant de la semaine, j'ai publié des nouvelles versions correctives des deux branches actives de Jelix, le framework PHP. Vous pouvez mettre à jour vos installations Jelix sans risque. Il est même hautement recommandé de mettre à jour votre Jelix 1.1 si vous utilisez les modules d'interfaces de gestion de droits et de gestion d'utilisateur, à cause de problèmes critiques lorsque l'on change les droits (des droits peuvent être enlevés inopinément), et sur l'édition d'un profil d'un utilisateur.

Et puis aujourd'hui, je viens de sortir une nouvelle version de WikiRenderer, la 3.1, qui corrige quelques bugs, et qui apporte quelques facilités pour les développeurs de règles de transformations. Pour rappel, WikiRenderer est une classe qui permet de transformer un texte wiki dans une autre syntaxe wiki, ou en XHTML, ou tout autre langage de markup. Elle m'est très utile dans les petits modules de CMS, ou encore récemment, pour migrer le contenu wiki de XULFR d'un vieux wiki vers un nouveau wiki qui a une syntaxe différente. Et pour l'occasion de cette sortie, le site de WikiRenderer est maintenant disponible en Anglais, avec une documentation pour les développeurs.

HfnuSearch, le moteur de recherche made in Jelix

06-06-2009 à 09:35:00

Dans ce précédant billet, je détaillais une feuille de route pour produire ce module.

Sa souplesse en fait sa force pour être intégré aisément au sein de vos applications Jelix.

En effet il suffit d'une seule ligne de code pour ajouter vos données au moteur de recherche !

jEvent::notify('HfnuSearchEngineAddContent',array('id'=>$id_post,'datasource'=>'havefnubb~posts'));



Cette ligne émet un évènement HfnuSearchEngineAddContent avec 2 paramètres :

  • la source de données à lire pour trouver les infos à injecter dans le moteur
  • la clé primaire permettant de trouver ces mêmes données.

le module HfnuSearch se charge ensuite de lire sa configuration pour savoir quelles sont les colonnes de vos tables contenant les données et les injecter dans son moteur.

Et ... c'est tout !

L'interrogation de vos données se faisant par le biais du module HfnuSearch lui-même, je ne pousserai pas plus loin ici son usage ;)

Pour tester le moteur de recherche en live, je vous invite à vous rendre sur HaveFnuBB!.

Enfin pour en trouver les sources, ceux ci sont, soit sur le dépôt subversion de HaveFnuBB!, soit dans l'archive HaveFnuBB 1.0.0RC3

HaveFnu BB 1.0.0RC3

05-06-2009 à 23:58:00

Voici une venue la RC3 avec son wagon d'améliorations et nouveautés :

Discussions et Forums :

  • Nouvelles fonctionnalités sur la gestion des discussions :
  1. Possibilité de déplacer une discusion d'un forum à l'autre
  2. Possibilité de séparer une discussion à partir d'un message puis de le rattacher à une autre discussion
  3. Possibilité de créer une nouvelle discussion à partir d'un message
  • 2 Nouveaux types de Forum, apparaissent :
  1. un type de forum RSS permettant d'afficher des fils RSS dans une page dédiée
  2. un type de forum "redirect" permettant d'afficher sur votre forum un lien vers un autre site de la toile

Administration :

  1. Création de l'administration du module HfnuContact
  2. Affichage des tâches en attente de traitement pour l'administrateur.
  3. Mise à jour automatisée de HaveFnuBB!

Autres :

  1. Amélioration du moteur de recherche HfnuSearch avec une methode de recherche générique par défaut et d'autre part une zone créée pour afficher le champ de recherche ou bon vous semble
  2. Toutes les pages "publiques" possèdent un titre pour satisfaire aux exigences de certains moteurs de recherche ;)
  3. Amélioration des pages d'erreur 404 et 403.
  4. Un petit plugin permattant d'afficher votre email mais sans qu'il soit lisible par un robot.

telecharger HaveFnu BB 1.0.0RC3

Un peu d'actu sur jelix et cie

25-05-2009 à 10:44:00

Depuis quelques mois, je n'ai plus autant de temps pour bosser sur plusieurs projets perso en même temps. Ils avancent donc tous moins vite. Je ne peux me concentrer maintenant que sur un seul projet à la fois. Ou presque. Aussi depuis quelques semaines j'ai décidé (et un peu contraint à cause du changement de serveur) de bosser sur mon site xulfr.org. Depuis trois ans, je n'y avais pas trop touché, car j'étais plus absorbé par le développement d'un certain framework Jelix. Framework dont l'objectif à l'origine, c'était justement de motoriser Xulfr :-)

Donc voilà, après trois ans de développement de Jelix, je me remet enfin sur xulfr.org. En le migrant vers Jelix. Et ce n'est pas un mal, car ça permet finalement de toucher à plusieurs de mes projets.

L'objectif premier de cette migration : virer le vieux phpwiki (version datant de 2003 !) qui est incompatible avec PHP5 et n'était donc plus utilisable sur notre nouveau serveur. Il a donc fallu que je choisisse un nouveau système Wiki. La tentation a été trop grande de développer un wiki avec Jelix (après tout, j'ai développé Jelix un peu pour ça). C'est donc en cours avec le projet jCms. Cette migration est à moitié faite : les pages du wiki de Xulfr sont maintenant motorisées par mon cms. Mais il n'est pas possible d'éditer les pages parce que le système d'authentification n'est pas encore "branché" sur le cms.

Pour ce nouveau wiki, j'ai adopté une syntaxe proche de celle de DokuWiki. Il a donc fallu faire un script qui d'une part, migre les données des anciennes tables de phpwiki vers celles de jCms, et au passage qui converti l'ancienne syntaxe vers la nouvelle. Pour cette conversion, j'ai utilisé bien entendu mon parser de syntaxe Wiki, WikiRenderer, pour lequel j'ai donc développé des règles de conversion "phpwiki vers dokuwiki". Et cela ma permis de débusquer quelques bugs dans WikiRenderer. Je vais pouvoir alors sortir une version 3.1 dès que j'aurais le temps.

Après l'intégration de Jelix sur xulfr.org, l'installation de jCms, et la migration du contenu, place à l'intégration d'un système d'authentification. Je me repose bien sûr sur celui de Jelix, mais aussi du module jCommunity, qui permet à un utilisateur de s'inscrire sur un site, d'éditer son profil etc. Ça a été l'occasion de fixer quelques bugs dans ce module et de faire quelques améliorations pour la prochaine version 0.2 de jCommunity. Cette intégration de jCommunity n'est pas encore en ligne, parce qu'il me reste encore à faire une chose : "relier" jCommunity avec la base des utilisateurs du forum que l'on utilise sur XulFr.org. Et c'est en cours de développement. L'idée est qu'au final on ne passe plus que par jCommunity pour gérer son compte sur XulFr, et qu'on ait donc pas à s'enregistrer deux fois comme c'était le cas lorsqu'on avait phpwiki. Histoire aussi que l'on ait qu'une seule base d'utilisateur.

Une fois le système d'inscription/authentification installé, je pourrais faire les améliorations nécessaires sur jCms pour le "brancher" sur jCommunity. Ce sera peut-être l'occasion de sortir une version 0.1 de jCms... Je verrais, parce que pour le moment, l'installation de jCms n'est pas très "friendly", et faut mettre un peu les mains dans le camboui. Faudrait peut être alors me remettre sur Jelix, pour développer enfin le futur système d'installation/mise à jour pour les applications Jelix, qui est normalement prévu pour Jelix 1.2.

Voilà voilà. Je ne cause pas beaucoup sur mon blog en ce moment, mais j'avance quand même sur xulfr.org, Jelix, jCommunity, jCms, WikiRenderer...

HaveFnu BB 1.0.0RC2

16-05-2009 à 15:51:00

Quand la Machine est lancée (aka l'envie de coder ;) il ne faut pas l'arrêter,

Ainsi voici une venue la RC2.

Cette version apporte son lot d'améliorations telles :

  1. Amélioration des performance en réduisant le nombre d'accès aux DAO inutiles,
  2. Rendu amélioré pour IE coté publique
  3. Rendu amélioré coté admin
  4. Tableau de bord allégé (admin)
  5. Nouvelle section Modules pour permettre de voir ce qui est utilisé au sein même d'HaveFnu BB!

la telecharger HaveFnu BB 1.0.0RC2

This release offer somes improvements as :

  1. Performance improvements by reducing the number of unusefull DAO access,
  2. Layout for IE on public side improved
  3. Layout of admin side improved
  4. Dashboard ligther
  5. New "Modules" section to permit to see what is used inside of HaveFnu BB! itself

download HaveFnu BB 1.0.0RC2

HaveFnu BB 1.0.0RC1

09-05-2009 à 15:51:00

Il aura fallut quelques mois de boulot acharnés pour sortir la première version du forum HaveFnu BB ! made in Jelix ;)

Ce forum vous permettra de gérer une communauté avec toutes les fonctionnalités qu'on est en droit d'attendre d'un tel logiciel, telles :

  1. . - Syntaxe Wiki
  2. .- Sous-Forum
  3. .- Tag des Sujets
  4. .- Moteur de recherche
  5. .- SEO
  6. .- Fil d'ariane
  7. .- Gestion des posts (épinglé, ouvert, fermé ...)
  8. .- Statistiques du forum
  9. .- Protection contre le flood
  10. .- Système de messagerie privée
  11. .- Installation Automatique

etc.. etc...

Viendez le testouillez ;)

Jelix et votre portail dans la langue de l'Utilisateur

08-05-2009 à 11:00:00

Je ne vais pas ici répéter la documentation sur le plugin coord "autolocale", plugin permettant de gérer automatiquement l'internationalisation de vos templates.

Le propos de ce billet consiste à montrer comment avec Jelix, jAuth et jCommunity en particulier, on peut changer la langue de l'utilisateur et ainsi obtenir des pages dans pour sa langue.

jCommunity donc, fourni des évènements, dont un permettant d'enregistrer toutes modifications sur le compte de l'utilisateur, cet evenement est jcommunity_save_account.

Dans la class de mon listener authhavefnubb.listener.php j'aurai donc ce qui suit à chaque modification de mon compte :

function onjcommunity_save_account ($event) {
        global $gJConfig;
       // recuperation des données saisies dans mon formulaire
        $form = $event->getParam('form');
        if ( $form->getData('member_language') != '') {
            $_SESSION['JX_LANG'] = $form->getData('member_language');
            $gJConfig->locale = $form->getData('member_language');
        }
        // un petit message d'info signalant que le profil est mis à jour
        jMessage::add(jLocale::get('havefnubb~member.profile.updated'),'ok');
   }

l'astuce ici est de mettre $gJConfig->locale = $form->getData('member_language'); avant le jMessage::add pour que le message qui vient juste apres soit traduit immédiatement dans la langue choisie, sinon ce dernier apparaitrait "encore" dans la langue précédante ou celle du portail.

ensuite on opérera de la même façon avec les évènement de jAuth que sont AuthLogin (lors de la connexion) et AuthLogout (lors de la déconnexion)

function onAuthLogin ($event) {
   ...
    $_SESSION['JX_LANG'] = $user->member_language;
    $gJConfig->locale = $user->member_language;
}
 
function onAuthLogout ($event) {
       // suppression de la langue dans la session courante pour récupérer celle du portail
        $_SESSION['JX_LANG'] = '';
        unset($_SESSION['JX_LANG']);
}

et l'on définira notre fichier events.xml comme suit :

<listener name="authhavefnubb">
      <event name="AuthLogin" />
      <event name="AuthLogout" />
      <event name="jcommunity_save_account" />
   </listener>

Ainsi donc avec une petite dizaine de lignes dans un listener et 3 noeuds XML on a permit à tout utilisateur de notre site d'avoir des pages dans sa langue favorite.

1an avec Jelix

07-05-2009 à 12:00:00

L'an passé je découvris Jelix au détour d'une recherche sur les frameworks PHP5 afin de rompre avec le PHP4 définitivement.

Au premier abord je fus très surpris et désorienté par l'architecture loin de mes habitudes prises avec Puntal, le CMS auquel j'ai contribué comme mainteneur durant 2ans avec Vincent Garnier.

Donc je retournais aux chimères PHP4 et croisais le chemin de CakePHP et entrepris de refondre Puntal avec CakePHP. Refonte complète faite en 4mois sous le nom de projet PunCake. J'étais très enthousiaste du résultat obtenu mais peu après, je m'aperçu des performances désastreuses du framework qui mettait bien trop de temps à produire la home page par rapport à la même page sur Puntal.

Donc déçu je lachais le projet... Comme je suis un têtu invétéré ... je suis retourné vers Jelix, mais cette fois-ci, avec l'expérience acquise sur un framework MVC en PHP, je trouvais mes marques plus facilement.

J'entrepris donc de produire des petites choses comme des plugins ( Jelix Auth Phorum, etc...) et des petits modules (module appmanager, module downloads etc...) pour appréhender la bête et plus j'avancais plus j'apréciais les résultats !

Depuis maintenant Décembre 2008 je me suis jetté dans le bain d'une toute nouvelle aventure "HaveFnu BB!", Forum (sous licence GPL), 100% écrit en Jelix, qui après donc 5mois devrait voir une première release candidate sortir sous peu.

Le but du projet n'est pas de démontrer la toute puissance de Jelix, d'autres sites à forte charge le prouvent eux-mêmes, mais simplement d'illustrer sa modularité (1), rapidité et légereté pour réaliser un forum conséquent et complet.

(1) HaveFnu BB intègre plusieurs modules produits par la communauté Jelix

Interlimo Editeur de css

17-04-2009 à 19:43:00

Rien que pour vous :)



Plugin Jelix le plus petit et le plus verbeu

04-04-2009 à 00:00:00

Pour des besoins propres j'ai eu à produire un plugin de template en une ligne de code ;) (bon je triche en fait il en contient 3 ;) le voici :

function jtpl_function_html_phpinfo($tpl)
{
    phpinfo();
}

ensuite dans vos templates vous pouvez faire un "naturel" {phpinfo}

Jelix 1.0.8 et 1.1.2

02-04-2009 à 23:02:00

Les développements sur le framework continuent, et les corrections de bugs aussi. Voici donc deux versions correctives pour les branches 1.0 et 1.1. Plus de détails dans la news.