Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mathieu
potage
Commits
2bdd6151
Commit
2bdd6151
authored
Sep 07, 2018
by
Mat
Browse files
newsletter: calcule une seule fois les variables du body, et non à chaque envoi de lettre
parent
2f105377
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/PotageBundle/Resources/views/Mail/bodyMail.html.twig
View file @
2bdd6151
...
...
@@ -21,11 +21,11 @@
<h1>
{{
subject
}}
</h1>
<h2>
Période du
{{
lettre.startedAt
|
date
(
'd-m-Y'
)
}}
au
{{
lettre.endedAt
|
date
(
'd-m-Y'
)
}}
Période du
{{
body.
lettre.startedAt
|
date
(
'd-m-Y'
)
}}
au
{{
body.
lettre.endedAt
|
date
(
'd-m-Y'
)
}}
</h2>
<p>
Infolettre
{{
lettre.reference
}}
(#
{{
lettre.id
}}
)
<br>
Statut:
{{
lettre.status
}}
<br>
Infolettre
{{
body.
lettre.reference
}}
(#
{{
body.
lettre.id
}}
)
<br>
Statut:
{{
body.
lettre.status
}}
<br>
</p>
<div>
...
...
@@ -35,21 +35,21 @@
token:
{{
to.token
}}
</p>
<p>
Membre du groupe
{{
lettre.groupe.nom
}}
<br>
Adresse du dépôt:
{{
lettre.groupe.depot.localisation
}}
<br>
Responsable du dépôt:
{{
lettre.groupe.depot.responsable
}}
<br>
Dépôt des paniers:
{{
lettre.groupe.depot.jourPanier
}}
,
{{
lettre.groupe.depot.heurePanier
|
date
(
'H:i'
)
}}
Membre du groupe
{{
body.
lettre.groupe.nom
}}
<br>
Adresse du dépôt:
{{
body.
lettre.groupe.depot.localisation
}}
<br>
Responsable du dépôt:
{{
body.
lettre.groupe.depot.responsable
}}
<br>
Dépôt des paniers:
{{
body.
lettre.groupe.depot.jourPanier
}}
,
{{
body.
lettre.groupe.depot.heurePanier
|
date
(
'H:i'
)
}}
</p>
<div>
<p>
Offre
{{
lettre.offre.reference
}}
(#
{{
lettre.offre.id
}}
)
<br>
Expire le
{{
lettre.offre.endedAt
|
date
(
'd-m-Y, à H:i'
)
}}
<br>
Statut:
{{
lettre.offre.status
}}
<br>
{{
lettre.offre.sorted
}}
Offre
{{
body.
lettre.offre.reference
}}
(#
{{
body.
lettre.offre.id
}}
)
<br>
Expire le
{{
body.
lettre.offre.endedAt
|
date
(
'd-m-Y, à H:i'
)
}}
<br>
Statut:
{{
body.
lettre.offre.status
}}
<br>
{{
body.
lettre.offre.sorted
}}
</p>
<ul>
{%
for
legume
in
lettre.offre.offreLegumes
%}
{%
for
legume
in
body.
lettre.offre.offreLegumes
%}
<li>
#
{{
legume.id
}}
<br>
{{
legume.nom
}}
:
{{
legume.description
}}
<br>
...
...
@@ -62,8 +62,8 @@
</a>
</div>
{{
lettre.sorted
}}
{%
for
info
in
lettre.infos
%}
{{
body.
lettre.sorted
}}
{%
for
info
in
body.
lettre.infos
%}
<div
style=
"color:
{{
info.color
}}
"
>
{%
if
info.isPost
==
true
%}
<span>
{{
info.postedAt
|
date
(
'd-m-Y, à H:i'
)
}}
</span>
...
...
@@ -75,8 +75,8 @@
{%
endfor
%}
</div>
{#
{{
dump
()
}}
{#
#}
</body>
...
...
src/PotageBundle/Services/Newsletter.php
View file @
2bdd6151
...
...
@@ -148,19 +148,17 @@ class Newsletter
*
* @param array $to
* @param $subject
* @param
Lettre $lettre
* @param
mixed $body
* @return int
* @throws \Twig_Error_Loader
* @throws \Twig_Error_Runtime
* @throws \Twig_Error_Syntax
*/
public
function
sendLettre
(
$to
,
$subject
,
Lettre
$lettre
)
public
function
sendLettre
(
$to
,
$subject
,
$body
)
{
$mailer
=
$this
->
container
->
get
(
'mailer'
);
$twig
=
$this
->
container
->
get
(
'twig'
);
$itemsSorted
=
$this
->
getInfosSorted
(
$this
->
getBody
(
$lettre
));
$message
=
(
new
\
Swift_Message
())
->
setFrom
(
$this
->
from
)
...
...
@@ -170,8 +168,7 @@ class Newsletter
$twig
->
render
(
'@Potage/Mail/bodyMail.html.twig'
,
array
(
'to'
=>
$to
,
'subject'
=>
$subject
,
'lettre'
=>
$this
->
getBody
(
$lettre
),
'itemsSorted'
=>
$itemsSorted
,
'body'
=>
$body
,
)),
'text/html'
);
...
...
@@ -200,6 +197,13 @@ class Newsletter
$offre
=
$lettre
->
getOffre
();
$groupe
=
$lettre
->
getGroupe
();
$lettre
=
$this
->
getBody
(
$lettre
);
$itemsSorted
=
$this
->
getInfosSorted
(
$lettre
);
$body
=
array
(
'lettre'
=>
$lettre
,
'itemsSorted'
=>
$itemsSorted
);
/**
* Les destinataires du groupe de l'infolettre,
* un tableau d'utilisteurs
...
...
@@ -237,7 +241,7 @@ class Newsletter
);
//dump($to);
// envoi du mail
$result
=
$this
->
sendLettre
(
$to
,
$subject
,
$
lettre
)
===
1
?
'Sent'
:
'Error'
;
$result
=
$this
->
sendLettre
(
$to
,
$subject
,
$
body
)
===
1
?
'Sent'
:
'Error'
;
$retour
[
$i
]
=
array
(
'to'
=>
$to
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment