vanschklift.comRandom sausages!

Catégorie "Dotclear"

10 ans de Dotclear

Dotclear a 10 ans. Pffiou ! Je suis un peu comme ce blog, rouillé pour ce qui est d'écrire des articles sur les sujets qui me tiennent à coeur.
Pourtant j'ai bien envie de faire comme pas mal de copains et de vous raconter ma petite histoire, les petites anecdotes du début.

Il y a 10 ans, on était en 2003. Période charnière pour moi, s'il en est, dans la mesure où je terminais la fac et c'est à ce moment que j'ai rencontré une blogueuse qui m'a scotché. C'était pour moi la découverte de l'univers des blogs, les copains blogueurs comme Zeubeubeu, Noliv et bien d'autres.

Le patch de la discorde

Zeubeubeu m'avait conseillé de tester Dotclear, bien mieux que le b2 qu'utilisait Hellgy, d'après lui. Je tente le truc, mais le plugin d'import de b2 déconnait. Le projet démarrait, on devait en être à une 1.0 pre, je ne sais plus exactement. J'ai donc un peu tapé sur le plugin pour qu'il tombe en marche et tout fier de moi, j'envoie un patch à Olivier pour rendre service. Premier contact, je me fais remballer car mon code était dégueu :) (maintenant on dirait plutôt : "c'est génial ce que t'as fait, il faut tout refaire !")

Dotparking

Dotclear, vu de l'extérieur, c'était robuste mais pas très fun, on aurait dit une bagnole allemande ! Certaines fonctionnalités impliquaient aussi de connaître un peu les blogs (qu'est-ce qu'un trackback ? mystère...) On a eu l'idée bizarre avec Laurence de créer un outil de blog simplifié à outrance, facile à utiliser et qui soit un peu un hommage parodique à Dotclear. Il fallait encore lui trouver un nom. À cette époque, on m'avait parlé d'un ergonome à l'humour douteux mais qui voulait rester professionnel en toutes circonstances. À chaque question qui démarrait par "où", il répondait "dans ton parking!" (il paraît qu'on a l'humour qu'on mérite). Dotparking était né !
Je suis parti d'une base de code que j'avais développé pour un projet de fac, que j'avais un peu étendu. Il me semble que Dotparking embarquait un éditeur WISYWIG et un antispam basique. Je l'ai maintenu quelques années car des copains l'utilisaient. Il est maintenant mort depuis longtemps, même son site de présentation a disparu de la surface de l'internet (il en reste une trace sur web.archive). Seul le thème par défaut de Dotparking, réalisé par Laurence, avait été porté vers Dotclear (on ne le trouve plus sur Dotaddict, mais ses petits frères y sont encore)

Spamplemousse

Faire un plugin pour Dotclear, oui mais quoi ? Je ne me souviens plus bien mais je crois que c'était par opportunité que nous avions lancé ce plugin avec Zeubeubeu : le spam se développait vitesse grand-V et nous n'avions pas d'outil pour le contrer. Il fallait faire vite, nous avions bricolé un système simple sur liste de mots clés et utilisant des remote blacklists. Au début ça marchait bien ;) On avait aussi pas mal dû contourner l'API de Dotclear 1 pour pouvoir s'intégrer convenablement dans la gestion des commentaires. Quelque chose qui fut bien entendu amélioré dans Dotclear 2. C'était vraiment un projet rigolo, on avait eu plein de retours très positifs. Le nom du plugin doit venir de Zeubeubeu. On y avait associé le visuel "Enlarge your péniche" de Noliv et on s'était bien marrés :) Si le post présentant la première version de Spamplemousse a disparu du forum Dotclear, il reste la wayback machine et un post chez Laurence.

DcTeam

Vers Mars 2006, Olivier m'a proposé de faire partie de l'équipe de Dotclear. J'y suis resté jusqu'en avril 2009 (le jour où je me suis auto-viré, comprenne qui pourra). Ce fut vraiment très dense ! C'est con à dire, mais c'est avant tout une super aventure avec les copains. Une super ambiance, un super projet, de belles prises de tête aussi :) Grâce à Dotclear, j'ai découvert la prod, là où mon métier ne me le permettait pas. Quand on release un bout de code utilisé par des milliers de personnes, ce n'est pas la même chose qu'un proto qui sert à faire une démo et qui termine dans un carton. J'ai beaucoup appris techniquement et probablement encore plus humainement. Merci pour tout les copains ! En tout cas je suis fier d'avoir pu faire partie de cette aventure, ce serait à refaire, je le referai. Dotclear, c'est un peu ma famille du net.

Misc

  • Via Dotclear, j'ai pu travailler sur quelques blogs connus et moins connus. Par exemple, j'ai aidé Laurel il y a bien longtemps, à migrer son blog d'une plateforme gratuite style 20six vers Dotclear. Ce ne fut pas une mince affaire, une partie du contenu avait disparu, il fallait utiliser le cache de google pour le récupérer. J'avais mis pas mal de temps pour faire un plugin permettant de tout réimporter.
  • Je me souviens aussi d'une mise à jour ou d'un dépannage du blog de Tristan Nitot un 1er de l'an :)
  • Au début de la mode des frameworks MVC, j'ai codé au boulot un petit framework qui se base sur Clearbricks (la librairie de base de Dotclear 2). On peut en retrouver une vieille version ici. Nous avons une application qui a bien grossi et qui est utilisée un peu partout dans le monde. Celle-ci se base toujours sur ce framework et embarque encore clearbricks à l'heure actuelle.
  • On s'est mariés en 2009 avec ma blogueuse préférée et les copains de Dotclear étaient là (sauf un qui s'est planté de semaine et ce n'était pas Pep)
Sans Dotclear, tout cela ne serait pas arrivé.

J'espère vous avoir donné une idée de l'importance de ce projet dans ma vie avec ces petites anecdotes. Je vous ai épargné tout ce que vous pourrez lire chez les autres. Vous l'avez bien constaté en lisant tous ces posts #dotclear10, il n'y a pas une histoire, mais des histoires et surtout des gens. Ce sont ces gens qui font encore vivre Dotclear aujourd'hui, qu'ils en soient vivement remerciés !

Dotclear 2 et envoi de mails

Il y a un aspect de la configuration de dotclear 2 qui est assez méconnu, c'est celui de la configuration de l'envoi de mail. C'est un problème que l'on rencontre fréquemment dans les applications php.

Lorsque l'on utilise la fonction mail de php il est très fréquent de voir les mails envoyés atterrir eu spam. Ceci est dû au fait que l'adresse de l'expéditeur n'est pas la même dans l'enveloppe et dans les headers ; les filtres antispam vérifient que ces deux champs sont égaux à la réception d'un mail.

Par défaut php (ou le serveur de mail, je ne suis pas sûr) va générer une adresse bidon pour l'expéditeur, à partir de l'utilisateur dans lequel le processus apache tourne. Ceci n'est pas pertinent, et pose problème dans notre cas.

Dotclear 2 fournit une solution par défaut dans son fichier de configuration, la fonction mail est en fait surchargée par une fonction maison de clearbricks, qui joue le rôle d'un serveur de mail, et qui envoie un mail bien formé. Pour plus d'infos voir le fichier de configuration et cette page de la doc : Personnaliser l'envoi des mails.

Cependant cette solution n'est pas optimale, notamment en termes de performance (sur un de mes sites, le script met plus de 30 secondes à s'exécuter à la soumission du formulaire). Il existe une solution qui n'est pas portable mais qui fonctionne mieux dans certains cas, il s'agit de passer les bonnes options à la fonction mail. Si on se trouve sur un serveur linux, avec sendmail ou postfix, il est possible d'envoyer des mails via la fonction mail, en ajoutant un argument dans le 5e paramètre de cette fonction mail, qui contient l'adresse de l'expéditeur.

Voici un exemple de fonction mail à placer dans votre config.php :

function _mail($to,$subject,$message,$headers)
{
        // recherche de l'adresse de l'expéditeur
        $h = explode("\n", $headers);
        $from = '';
        $p = null;
        foreach ($h as $l) {
                if (strpos($l, 'From:') === 0) {
                        if (preg_match('|<(.*)>|', $l, $matches))
                             $from = $matches[1];
                        break;
                }       
        }       

        // si l'adresse de l'expéditeur est trouvée, on ajoute le paramètre
        if (!empty($from)) {
                $p = '-f'.$from;
        }
        // appel à la fonction mail classique
        @mail($to, $subject, $message, $headers, $p);
}

Remarques :

  • Il est nécessaire de vérifier que votre "sendmail" supporte bien l'option -f (en tapant par exemple la commande suivante : echo test | sendmail -ftest@test.com monadresse@mondomaine.com).
  • D'apès la doc php, il faut vérifier que l'utilisateur dans lequel le serveur web tourne fait bien partie des utilisateurs de confiance du serveur de mail, sinon le mail sera envoyé avec un header X-Warning, qui risque de le bloquer au niveau des antispams. Personnellement j'ai envoyé un mail, et X-Warning n'est pas apparu dans les headers, donc tout va bien :) Pour plus de détails, voir la doc php pour la fonction mail, dans la description du paramètre additional_parameters.

Si vous avez des suggestions ou des remarques sur cette fonction, n'hésitez pas à les formuler ici dans les commentaires.

Dotclear 2 - 1 / duke nukem forever - 0

insérer ici une blague d'humour drôle je crois que je suis trop fatigué pour faire un post original, mais je suis très content, comme les copains, de la sortie de dotclear 2.0 en version finale, stable et tutti quanti. Bon ok, ça a fait des cycles de beta un peu longs, mais chez nous au moins on prend notre temps, on ne presse pas les mots pour qu'ils sortent prématurément

Dotclear 2.0, le blogware des gens biens !

note pour plus tard : penser à demander une augmentation dans ces fuckin' projets open source, juste pour voir la tête à toto !

- page 1 de 7