Anomalie #1280
closedproblème avec le Mailing
100%
Description
Bonjour,
Je viens de découvrir semble t'il une anomalie dans le processus d'envoi de mail.
Je sélectionne dans la liste des adhérents, les destinataires de l'envoi.
Je me retrouve sur la page: http://galette9/webroot/mailing?new=new
1 le bouton "Gestion des adhérents sélectionnés" ne fonctionne pas.
2 le bouton "prévisualisation" renvoi la page : http://galette9/webroot/mailings ,je n'ai pas de fenêtre de prévisualisation.
Les messages sont envoyés correctement...
3 si on a ajouté un fichier joint et "prévisualisation" alors je me retrouve avec une erreur:
Type : Error Code : 0 Message : Call to undefined method Galette\Core\Mailing::getPhpErrorMessage()
Fichier : B:\galette9\includes\routes\members.routes.php Ligne : 2103
Testé sur Version0.9.2.1 et nightly.
Pour info l'envoi des courriers se fait en SMTP (PHP mail ne fonctionne pas chez moi). Je ne pense pas que cela influence l'anomalie.
Bonne fin de Journée
Files
Updated by Johan Cwiklinski over 5 years ago
- Category set to Core
- Status changed from Nouveau to In Progress
- Assignee set to Johan Cwiklinski
Je ne reproduit pas le premier point ; tout au moins sur la nightly courante. Puisque pas mal de choses ont été changées là dessus, ça a pu être corrigé ; il faudrait essayer.
Le second point est quant à lui effectivement un bug.
Updated by Johan Cwiklinski over 5 years ago
- Status changed from In Progress to Résolu
- % Done changed from 0 to 100
Appliqué par commit 349b6fc2cabb2a933c11ba561825eb2c932f0b04.
Updated by Johan Cwiklinski over 5 years ago
- Status changed from Résolu to Fermé
Updated by Alain Paris over 5 years ago
Bonjour,
Je crois que je viens de trouver le problème:
Le soucis vient du nom de l’expéditeur dans Paramètres courriel le fait de mettre une apostrophe provoque les 2 anomalies.
L'apostrophe :ne fonctionne pas
L apostrophe : ok
Updated by Johan Cwiklinski over 5 years ago
- Status changed from Fermé to In Progress
Ok je vais voir a corriger le souci d'apostrophe également :)
Updated by Benjamin Leduc about 5 years ago
Johan Cwiklinski a écrit :
Appliqué par commit 349b6fc2cabb2a933c11ba561825eb2c932f0b04.
Bonjour,
Le point #1 n'est toujours pas fonctionnel chez moi, nightly du jour. Comment puis-je fournir des informations utile pour avancer?
Updated by Johan Cwiklinski about 5 years ago
Si le problème est le même que celui d'Alain (apostrophe), ce n'est juste pas corrigé, pas eu le temps.
Updated by Guillaume AGNIERAY about 5 years ago
- File 0001-Fix-unescaped-variable-in-mailing-template.patch 0001-Fix-unescaped-variable-in-mailing-template.patch added
La variable correspondante n'est pas échapée dans le template des mailings.
Ci-joint un correctif basé sur la branche develop, et ajoutant un modifieur smarty pour échapper la variable javascript fautive.
Updated by Johan Cwiklinski about 5 years ago
Merci pour le patch, ça devrait effectivement corriger le problème :)
Updated by Alain Paris about 5 years ago
Bonjour,
Le patch doit modifier quoi pour l'utilisateur ?
Cas no 1 : Apostrophe dans le nom de l’expéditeur (exemple "l’expéditeur") situé dans Configuration (webroot/preferences) Courriel expéditeur :
Sur la page webroot/mailing
- le bouton "Gestion des adhérents sélectionnés" ne fonctionne plus.
- le bouton pour modifier l’expéditeur non plus (reste sur le courriel de "depuis les préférences").
- lors de l'appui sur prévisualisation il y a un message d'avertissement si le sujet est vide ou message est vide.
Si sujet et message sont complétés je n'ai pas la fenêtre pop-up avec la prévisualisation du mail.je me retrouve sur la page de gestion des mails (webroot/mailings).
- Tous les boutons fonctionnent.
- Il n'y a plus le message d'avertissement que le sujet ou le corps du message est vide par contre.
- La fenêtre pop-up de prévisualisation fonctionne.
Si l'on modifie l’expéditeur option "autre" et que celui-ci comporte une ou plusieurs apostrophe(s) prévisualisation fonctionne. ** Lorsque l'on choisi "Utilisateur actuellement connecté" ou "autre" on ne peut revenir sur "depuis les préférences" lorsque l'on a prévisualisé.
Le fonctionnement peut il dépendre de PHP ou de Mysql ou d'un de leurs modules? (testé sur PHP 7.2 et Mysql 5.53).
Il faudrait peut être une démo fonctionnelle en ligne pour voir le comportement normal.
Bonne Journée
Updated by Guillaume AGNIERAY almost 5 years ago
- Status changed from In Progress to Résolu
Appliqué par commit e4249da84d8e0907fa72226af75217e7765c8ff3.
Updated by Johan Cwiklinski almost 5 years ago
La modification du seul fichier template sur la dernière stable ne sera clairement pas suffisante pour corriger les problèmes de javascript.
Je viens de tester avec la dernière nightly, je n'ai pas rencontré de problèmes.
À priori, sur la branche develop, le patch fourni par Guillaume termine de corriger les problèmes.
Updated by Guillaume AGNIERAY almost 5 years ago
- File 0001-Fix-wrong-smarty-modifier-value-fixes-1280.patch 0001-Fix-wrong-smarty-modifier-value-fixes-1280.patch added
- File 0001-Hotfix-refs-1280.patch 0001-Hotfix-refs-1280.patch added
A posteriori, le patch ne termine pas de corriger le problème :/
Échapper la variable est la solution.
Mais je n'avais pas testé avant de produire le patch. En me basant sur l'utilisation du même modifieur ailleurs dans le code, j'avais réutilisé la même valeur : js. Mais selon la documentation smarty, la valeur dans ce cas devrait être : javascript
Ci-joint un nouveau patch sur la branche develop corrigeant cette valeur.
Et un "hotfix" complet incluant la révision 349b6fc2 pour la dernière branche stable.
Cette fois j'ai testé préalablement sur les 2 branches et ça fonctionne correctement :)
Updated by Johan Cwiklinski almost 5 years ago
js
pour l'échappement est utilisé partout dans le code de Galette, à priori, ça fonctionne sans problèmes ; beaucoup d'autres choses ne fonctionneraient pas.
Updated by Guillaume AGNIERAY almost 5 years ago
Effectivement js est utilisé partout. Mais pas partout dans le même contexte : il y a l'échappement des chaînes de traduction et l'échappement des variables dans les templates.
Dans le cas des traductions, pas de problème, c'est un plugin smarty qui s'occupe de l'échappement : source:galette/includes/smarty_plugins/function._T.php#L69
Dans le cas des variables, c'est le modificateur smarty qui se charge de l'échappement.
Et alors, seule la valeur javascript peut être reconnue : https://github.com/smarty-php/smarty/blob/c9f0de05f41b9e52798b268ab1e625fac3b8578c/libs/plugins/modifier.escape.php#L177
Updated by Johan Cwiklinski almost 5 years ago
En effet, tu as raison ; il y a deux cas de figure distincts, le "modifier" smarty est finalement peu utilisé. Il y avait d'autres cas problématiques que j'ai corrigés également au passage ; normalement, tout est d'équerre désormais.
Updated by Guillaume AGNIERAY almost 5 years ago
J'étais justement en train de préparer une nouvelle demande concernant les 2 autres cas problématiques corrigés.
Je suis donc d'avis également que tout est d'équerre désormais :)
Updated by Johan Cwiklinski almost 5 years ago
- Status changed from Résolu to Fermé