Dotclear 1.2b2, euhhhhhh
By glazou on Thursday 2 September 2004, 15:01 - Glazblog - Permalink
Bon, je crois que le rôle d'un pote, c'est aussi de dire quand ça commence à yoyoter : EH LES GARS, dans DotClear 1.2b2, vous commencez à yoyoter...
Sujet de notification de commentaire émise par mail par la 1.2a:
[Glazblog] Apple Expo
Le même émis par la 1.2beta2:
[Dotclear comment] post #537
Non, sérieusement, vous déconnez ou quoi ? Vous trouvez ça gérable ??? Bon, j'ai patché le code mais le quidam moyen ne saura pas le faire, et un des buts de Dotclear et son installateur, c'est bien d'être ultra-simple, non ?!?

Comments
Et c'est pour ça que mon lecteur RSS a doublé tous les derniers billets!!
Qui utilise cette foncitonnalité? Il vaut mieux (à mon sens) suivre ses commentaires via le fil RSS dédié
Et tu ne voudrais pas nous indiquer où tu as patché le code ? Afin que le "quidam un peu plus que moyen mais qui n'a pas le temps / envie de fouiller dans le code" (catégorie à laquelle j'ai le sentiment d'appartenir) puisse également modifier sont DotClear... Merci d'avance
Thomas: et ce commentaire est censé apporter quelque chose au débat ??? Si la fonctionnalité est là, et s'il y a au moins un usager, il faudrait ne pas s'en servir ?!? Pffff.
Daniel, as-tu proposé ton patch à Olivier pour sa prochaine Nightly ?
Pierre-Jean : le patch est trivial : backout des changement récents et retour à la v1.2a pour l'unique ligne en question
Je pense qu'un mail perso et *courtois* à Olivier (ou mieux encore, un bug report sur dev.dotclear.net/trac/new... ) aurait été à la fois plus respecteux pour l'auteur et ses efforts, et aussi plus bien plus productif.

D'autant que je sais pourquoi c'est ainsi : dans le cas d'un blog en UTF-8 (oui, DotClear est internationalisé), avec un titre de post avec des caractères non-ASCII, le titre serait illisible dans le mail. Voilà pourquoi. La décision est celle d'Olivier. Comme toutes les décisions, elle est discutable, mais elle a eu le mérite d'être prise, et le logiciel DotClear, d'être écrit...
J'ai lu sur un blog (le tien) "il y a ceux qui font, et ceux qui font chier". Tu viens de te placer directement dans la seconde catégorie :-))))
On va finir par croire que que tu es "atypique et conflictuel"
www.dotclear.net/forum/li...
Bon alors déjà, j'apprécie moyennement le ton mais ayant moi même en mon temps flammé maladroitement à propos de IE7 (et m'étant ensuite excusé par mail auprès de Dean Edwards, qui est un garçon charmant) je n'insiste pas.
Comme l'a dit Tristan, c'est un problème d'encodage ET de portabilité de l'appli. Il faudrait que je puisse utiliser mb_encode_mimeheader() qui se trouve dans le module PHP mb_string, module proposé par, allez, un hébergeur sur 10. Et pour couronner le tout cette fonction est buggué.
Alors, ne t'en déplaise, je fais une application pour tous, pas une application pour Daniel Glazman. Donc si une fonction encode_mimeheader() en full PHP existe, ou si c'est facile à faire, je prends. Et pour faire très vite, je n'ai pas le temps de m'occuper de ce problème dans les 15 prochains jours.
Chers Tristan et Olivier,
Voici ma proposition:
function encode($string, $charset='utf-8')
{
$exit='=?'.$charset.'?Q?';
for ($x=0; $x<strlen($string); $x++):
$exit.='='.strtoupper(dechex(ord($string{$x})));
endfor;
$exit.='?=';
return $exit;
}
// Et donc dans dotclear, prepend.php, ligne 263 (je suppose que c'est là que ça se passe)
@mail($n_mail,encode($n_subject),$n_content,$n_headers);
// et n_subject peut redevenir n_titre (ou autre chose, je n'ai pas suffisament lu votre source)
... bon, cette fonction est un peu torchée, et reflète ma compréhension limitée de la rfc machin chose... d'ailleurs, on devrait encoder aussi les autres headers, ça parait logique.
D'autre part, il doit être possible d'utiliser une expression régulière pas trop conne pour faire plus propre.
Enfin je suppose qu'il n'est pas techniquement requis par la rfc d'encoder tout le titre, mais seulement les mots contenant des caractères non Ascii imprimables (Daniel, peux-tu confirmer?).
D'autre part, ayant eu beaucoup de problèmes avec la fonction mail() en php, j'ai fini par écrire une classe pour "causer" smtp.
La curiosité me pousse: pourquoi utilisez-vous la fonction mail (souvent susceptible d'être désactivé sur certains hébergements mutualisés, et prompte à poser problème en fonction des problèmes), plutot qu'une solution pure php (un socket open sur le serv smtp, helo, etc...)?
Amicalement,
Olivier G
Ps: le blog de Daniel n'est pas l'endroit pour une éventuelle discussion sur ces sujets. Vous pouvez me contacter par mail si vous le souhaitez.
"et prompte à poser problème en fonction des [plates-formes]"
Sorry.
wooooo.
La variante ultra-brutale de chez PEAR (légèrement modifiée - eg: sortie de sa classe).
L'expression régulière est particulièrement chiée.
Je n'avais encore jamais vu d'emploi intéressant du modifieur eval...
Arguments:
(array) input (nom du header=>valeur)
(string) charset
function _encodeHeaders($input, $charset='utf8')
{
foreach ($input as $name=>$value)
{
preg_match_all('/(\w*[\x80-\xFF]+\w*)/', $value, $matches);
foreach ($matches[1] as $value2) {
$replacement = preg_replace('/([\x80-\xFF])/e', '"=" . strtoupper(dechex(ord("\1")))', $value2);
$value = str_replace($value2, '=?'.$charset.'?Q?' . $replacement . '?=', $value);
}
$input[$name] = $value;
}
return $input;
}
J'espère que ces deux posts aident.
Amicalement,
Olivier
Olivier, merci pour tous ces renseignements
Comme PEAR me file de violentes éruptions cutanées à chaque ouverture de fichier, je n'ai même pas regardé
Bon j'ai des pistes, je vais regarder. Concernant la fonction mail, elle est activée presque partout maintenant (même chez Free). Et généralement un hébergeur qui est intelligent ferme le 25 en sortie s'il a désactivé mail(). Et puis je vais pas coder un demi MTA pour une notification de commentaires qu'on peut avoir en fil RSS.
Daniel, t'en trouveras beaucoup des logiciels qui font du support à 3:28

Bref, j'ai fait des tests avec les proposition d'Olivier, ça marche bien, très bien même. Donc, contre toute attente, commit demain et ça sera sur la 1.2.
Et j'ai réussi à réduire la fonction à deux lignes
Comme quoi même s'il y a eu un peu de tension, ce post a porté ses fruits
Hihi, oui je suis allergique à Pear aussi. J'essaie pourtant de me forcer à regarder ce qu'ils font (on m'oblige), et il y a de temps en temps des idées à piquer (niarkniark).
Ok, pour mail() je comprends... ce n'est pas la priorité de Dotclear...
Pour les problèmes de portabilité, je pensais aux plateformes windows. Mais évidemment, qui héberge sur Windows ? arf.
C'est quoi un "MTA"?
Bonne continuation et amicalement,
Olivier
Mail Transport Agent
Putain c'est bon le logiciel libre! Prise de position un peu limite, recentrage par les bons copains, solution donne par un lecteur, et meme un happy end!

D'un autre cote une bonne raison supplementaire d'avoir fait le changement est pour ceusse qui ont 2 ou plus BLOG - [Dotclear Comment] n'aurait pas ete tres explicite pour faire le tri.
Merci pour cet instant de bonheur