Jump to content

Style delivery_block_html et invoice_block_htm du mail order_conf codé en dur dans PaymentModule.php


Recommended Posts

Il me semble qu'une entorse a été faite au modèle MVC au niveau de la classe PaymentModule.php, Prestashop v1.4.4.1 et précédente.

 

En effet, ligne 384 et 388, les variables smarty delivery_block_html et invoice_block_html sont codées avec un style :

 

'{delivery_block_html}' => $this->_getFormatedAddress($delivery, "<br />",
  array(
   'firstname' => '<span style="color:#DB3484; font-weight:bold;">%s</span>',
   'lastname' => '<span style="color:#DB3484; font-weight:bold;">%s</span>')),
'{invoice_block_html}' => $this->_getFormatedAddress($invoice, "<br />",
  array(
   'firstname' => '<span style="color:#DB3484; font-weight:bold;">%s</span>',
   'lastname' => '<span style="color:#DB3484; font-weight:bold;">%s</span>')),

 

Ces variables sont utilisées dans le mail order_conf.html :

 

<td style="padding:0.5em 0 0.5em 0.5em; background-color:#e5e1d5;">
{delivery_block_html}
</td>
<td style="padding:0.5em 0 0.5em 0.5em; background-color:#e5e1d5;">
{invoice_block_html}
</td>

 

En conséquence, il ne nous est pas possible de modifier la couleur #DB3484 utilisée pour le nom du client sans avoir à modifier à la main la classe PaymentModule.php ou à la surclasser, ce qui est un peu fort de café pour un simple changement de couleur.

 

Mettre une simple classe css n'est pas approprié dans ce cas car il s'agit d'un template d'email. Je propose de séparer les variables smarty delivery_block_html et invoice_block_html en les différents champs les composant au niveau de la classe PaymentModule.php et d'adapter le template mail order_conf.html en conséquence.

 

L'utilisateur cactusman2 en fait état (en anglais) le 1er juin dernier dans le post suivant : http://www.prestasho...der-conf-email/.

 

Merci à toute l'équipe PrestaShop pour le travail extraordinaire qu'ils ont et continuent de fournir sur cette superbe solution.

Link to comment
Share on other sites

  • 1 year later...

Que voulez-vous dire par

Je propose de séparer les variables smarty delivery_block_html et invoice_block_html en les différents champs les composant au niveau de la classe PaymentModule.php et d'adapter le template mail order_conf.html en conséquence.
?

C'est une proposition pour les dev PS ou c'est quelque chose que nous devrions faire pour notre site ?

 

Pour le moment, je vais aller modifier PaymentModule.php. Mais c'est moche...

Link to comment
Share on other sites

  • 5 weeks later...
  • 1 month later...

Salut à tous, je vais vous donner la solution c'est pas très compliqué car je suis un super amateur pas du tout dans l'informatique mais avec un peu de recherche chaque problème a sa solution :

 

Il faut trouver ces deux fichiers order_conf.html (envoyé au client) qui se trouve (/www/mails/fr) & new_order.html (envoyé au vendeur) qui se trouve (/www/modules/mailalerts/mails/fr), et oui autant faire les choses proprement et modifier les deux.

 

- order_conf.html :

 

Actuellement vous avez :

 

<td style="padding:0.5em 0 0.5em 0.5em; background-color:#EBECEE;">

 

{delivery_block_html}

 

</td>

 

<td style="padding:0.5em 0 0.5em 0.5em; background-color:#EBECEE;">

 

{invoice_block_html}

 

</td>

 

Remplacez par :

 

<td style="padding:0.5em 0 0.5em 0.5em; background-color:#EBECEE;">

 

{delivery_company}

 

<br><span style="color:#E86A16; font-weight:bold;">{delivery_firstname} {delivery_lastname}</span>

 

<br>{delivery_address1}

 

<br>{delivery_address2}

 

<br>{delivery_city} {delivery_postal_code}

 

<br>{delivery_country} {delivery_state}

 

<br>{delivery_phone}

 

<br>{delivery_other}

 

</td>

 

<td style="padding:0.5em 0 0.5em 0.5em; background-color:#EBECEE;">

 

{invoice_company}

 

<br><span style="color:#E86A16; font-weight:bold;">{invoice_firstname} {invoice_lastname}</span>

 

<br>{invoice_address1}

 

<br>{invoice_address2}

 

<br>{invoice_city} {invoice_postal_code}

 

<br>{invoice_country} {invoice_state}

 

<br>{invoice_phone}

 

<br>{invoice_other}

 

</td>

 

Modifiez les codes couleurs pour ces deux lignes :

 

<br><span style="color:#E86A16; font-weight:bold;">{delivery_firstname} {delivery_lastname}</span>

 

<br><span style="color:#E86A16; font-weight:bold;">{invoice_firstname} {invoice_lastname}</span>

 

 

Voila faites la même chose pour new_order.html et vos clients seront ravis de voir leurs nom d'une autre couleur que le rose ;)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...