Project

General

Profile

Actions

Anomalie #1280

closed

problème avec le Mailing

Added by Alain Paris over 5 years ago. Updated almost 5 years ago.

Status:
Fermé
Priority:
Normal
Category:
Core
Target version:
Start date:
05/14/2019
Due date:
% Done:

100%

Estimated time:
Version utilisée:

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

0001-Fix-unescaped-variable-in-mailing-template.patch (1.39 KB) 0001-Fix-unescaped-variable-in-mailing-template.patch Guillaume AGNIERAY, 09/13/2019 11:43 AM
0001-Fix-wrong-smarty-modifier-value-fixes-1280.patch (1.67 KB) 0001-Fix-wrong-smarty-modifier-value-fixes-1280.patch Guillaume AGNIERAY, 09/17/2019 04:19 PM
0001-Hotfix-refs-1280.patch (2.59 KB) 0001-Hotfix-refs-1280.patch Hotfix pour la dernière branche stable uniquement Guillaume AGNIERAY, 09/17/2019 04:19 PM
Actions #1

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.

Actions #2

Updated by Johan Cwiklinski over 5 years ago

  • Status changed from In Progress to Résolu
  • % Done changed from 0 to 100
Actions #3

Updated by Johan Cwiklinski over 5 years ago

  • Status changed from Résolu to Fermé
Actions #4

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

Actions #5

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 :)

Actions #6

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?

Actions #7

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.

Actions #8

Updated by Guillaume AGNIERAY about 5 years ago

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.

Actions #9

Updated by Johan Cwiklinski about 5 years ago

Merci pour le patch, ça devrait effectivement corriger le problème :)

Actions #10

Updated by Alain Paris about 5 years ago

Bonjour,
Le patch doit modifier quoi pour l'utilisateur ?

J'ai essayé la modification du fichier (mailing_adherents.tpl) chez moi et je n'ai pas trouvé .

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).
Cas no 2 : pas d'apostrophe dans le nom (exemple "l expéditeur"):
  • 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
Actions #11

Updated by Guillaume AGNIERAY almost 5 years ago

  • Status changed from In Progress to Résolu
Actions #12

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

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 :)

Actions #14

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.

Actions #15

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

Actions #16

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.

Actions #17

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 :)

Actions #18

Updated by Johan Cwiklinski almost 5 years ago

:) merci pour ta contribution !

Actions #19

Updated by Johan Cwiklinski almost 5 years ago

  • Status changed from Résolu to Fermé
Actions

Also available in: Atom PDF