New Self New Life
No Result
View All Result
  • Home
  • Entertainment
  • Celebrity
  • Cinema
  • Music
  • Digital Lifestyle
  • Social Media
  • Softwares
  • Devices
  • Home
  • Entertainment
  • Celebrity
  • Cinema
  • Music
  • Digital Lifestyle
  • Social Media
  • Softwares
  • Devices
New Self New Life
No Result
View All Result
Home Softwares

Apply an email template transformation from a module

by admin
2 years ago
in Softwares
Apply an email template transformation from a module
Share on FacebookShare on Twitter


On this weblog, we’ll discover ways to apply the transformation in Prestashop trendy e-mail templates from a module.

The Prestashop has an TransformationInterface interface to change your template’s design simply. Listed below are the interface particulars:

<?php
namespace PrestaShopPrestaShopCoreMailTemplateTransformation;

interface TransformationInterface
{
    /**
     * @param string $templateContent
     * @param array $templateVariables
     *
     * @return string
     */
    public operate apply($templateContent, array $templateVariables);

    /**
     * Returns the kind of templates both html or textual content
     *
     * @return string
     */
    public operate getType();

    /**
     * @param LanguageInterface $language
     *
     * @return object
     */
    public operate setLanguage(LanguageInterface $language);
}

Go to the GitHub hyperlink https://github.com/PrestaShop/PrestaShop/blob/8.0.0/src/Core/MailTemplate/Transformation/TransformationInterface.php to get extra details about this interface.

The apply methodology receives the rendered structure as a string to carry out alternative and DOM manipulation.

In the event you don’t wish to modify it merely return the string with none adjustments. The getType methodology is used to filter transformations and the setLanguage methodology will can help you know concerning the language utilized in e-mail era to establish localized content material.

Looking for an skilled
Prestashop Firm ?
Learn Extra


Within the following instance, we’re utilizing a contemporary customized structure. If you wish to create a brand new structure then observe our different weblog.

{# modules/demoemail/mails/structure/customizable_modern_layout.html.twig #}
{% extends '@MailThemes/trendy/elements/structure.html.twig' %}

{% block content material %}
  <desk width="100%">
    <tr>
      <td align="middle" class="titleblock">
        <font dimension="2" face="{{ languageDefaultFont }}Open-sans, sans-serif" coloration="#555454">
          <span class="title">{{ 'That is an instance mail template from my module for contemporary theme'|trans({}, 'EmailsBody', locale)|uncooked }}</span>
        </font>
      </td>
    </tr>
    <tr>
      <td align="middle" class="titleblock">
        <font dimension="2" face="{{ languageDefaultFont }}Open-sans, sans-serif" coloration="#555454">
          <span class="customTitle">{{ exampleMsg }}</span>
        </font>
      </td>
    </tr>
    <tr>
      <td class="space_footer">&nbsp;</td>
    </tr>
  </desk>
{% endblock %}
Within the above code the <<robust><em>span class="customTitle"></em></robust> that comprises the message, we'll use this as a CSS selector to use our transformation.

Within the under code, we’ll create a category ExampleMsgColorTransformation that may prolong AbstractTransformation summary class. The AbstractTransformation class implements the TransformationInterface. The target of this class is to vary the colour of all of the <span> tags with the customTitle class.

<?php
namespace PrestaShopModuleDemoemailMailTemplateTransformation;

use PrestaShopPrestaShopCoreExceptionInvalidArgumentException;
use PrestaShopPrestaShopCoreMailTemplateMailTemplateInterface;
use PrestaShopPrestaShopCoreMailTemplateTransformationAbstractTransformation;
use SymfonyComponentDomCrawlerCrawler;
use DOMElement;

/**
 * Class ExampleMsgColorTransformation provides the customized coloration to all spans
 * with class subtitle.
 */
class ExampleMsgColorTransformation extends AbstractTransformation
{
    /** @var string */
    personal $customColor;

    /**
     * @param string $customColor
     * @throws InvalidArgumentException
     */
    public operate __construct($customColor)
    {
        mum or dad::__construct(MailTemplateInterface::HTML_TYPE);
        $this->customColor = $customColor;
    }

    /**
     * @inheritDoc
     */
    public operate apply($templateContent, array $templateVariables)
    {
        $crawler = new Crawler($templateContent);
        $customSpans = $crawler->filter('span[class="subtitle"]');
        /** @var DOMElement $customSpan */
        foreach ($customSpans as $customSpan) {
            $customSpan->setAttribute('model', sprintf('coloration: %s;', $this->customColor));
        }

        return $crawler->html();
    }
}

Now add your transformation for this structure, you could use the actionGetMailLayoutTransformations hook to render this from the module.

<?php
use PrestaShopPrestaShopCoreMailTemplateMailTemplateInterface;
use PrestaShopPrestaShopCoreMailTemplateMailTemplateRendererInterface;
use PrestaShopPrestaShopCoreMailTemplateLayoutLayoutInterface;
use PrestaShopPrestaShopCoreMailTemplateTransformationTransformationCollectionInterface;
use PrestaShopModuleDemoemailMailTemplateTransformationExampleMsgColorTransformation;

class Demoemail extends Module 
{
   public operate set up() 
   {
        return mum or dad::set up()
            && $this->registerHook(MailTemplateRendererInterface::GET_MAIL_LAYOUT_TRANSFORMATIONS)
        ;
    }
    
    public operate uninstall() 
    {
        return mum or dad::uninstall()
            && $this->unregisterHook(MailTemplateRendererInterface::GET_MAIL_LAYOUT_TRANSFORMATIONS)
        ;        
    }
    
    public operate allow() 
    {
        return mum or dad::allow()
            && $this->registerHook(MailTemplateRendererInterface::GET_MAIL_LAYOUT_TRANSFORMATIONS)
        ;
    }
    
    public operate disable() 
    {
        return mum or dad::disable()
            && $this->unregisterHook(MailTemplateRendererInterface::GET_MAIL_LAYOUT_TRANSFORMATIONS)
        ;        
    }
    
    /**
     * @param array $hookParams
     */
    public operate hookActionGetMailLayoutTransformations(array $hookParams)
    {
        if (!isset($hookParams['templateType']) ||
            MailTemplateInterface::HTML_TYPE !== $hookParams['templateType'] ||
            !isset($hookParams['mailLayout']) ||
            !isset($hookParams['layoutTransformations'])) {
            return;
        }

        /** @var LayoutInterface $mailLayout */
        $mailLayout = $hookParams['mailLayout'];
        if ($mailLayout->getModuleName() != $this->identify) {
            return;
        }

        /** @var TransformationCollectionInterface $transformations */
        $transformations = $hookParams['layoutTransformations'];
        $transformations->add(new ExampleMsgColorTransformation('#FF0000'));
    }
}
email_template

Now go to the “Design > E mail Theme” web page and preview your structure you will notice that your message has now modified its coloration.

email_template_1

That’s all about this weblog.

If any subject or doubt please be at liberty to say it within the remark part.

I’d be completely satisfied to assist.

Additionally, you possibly can discover our PrestaShop Improvement Companies & a wide range of high quality PrestaShop Modules.

For any doubt contact us at [email protected]

author-thumb

Amit Kumar Tiwari
3 Badges

10 December 2022



Source link

Tags: ApplyEmailModuletemplateTransformation
Previous Post

Uber files lawsuit to block NYC driver pay increase

Next Post

The Doom That Came to Gotham Movie

Related Posts

Unlocking the Future of Finance
Softwares

Unlocking the Future of Finance

by admin
May 8, 2025
Address bar tweaks – Vivaldi Browser snapshot 3683.4
Softwares

Address bar tweaks – Vivaldi Browser snapshot 3683.4

by admin
May 7, 2025
How WordPress Agencies Can Improve Site Building Efficiency — Speckyboy
Softwares

How WordPress Agencies Can Improve Site Building Efficiency — Speckyboy

by admin
May 6, 2025
Grand Theft Auto VI delayed again, this time until May 2026
Softwares

Grand Theft Auto VI delayed again, this time until May 2026

by admin
May 5, 2025
User Guide for Odoo Advance Website Blog Search
Softwares

User Guide for Odoo Advance Website Blog Search

by admin
May 4, 2025
Next Post
The Doom That Came to Gotham Movie

The Doom That Came to Gotham Movie

Glee ‘s Kevin McHale Speaks Out Against The Price of Glee Docuseries

Glee 's Kevin McHale Speaks Out Against The Price of Glee Docuseries

  • Trending
  • Comments
  • Latest
Cameron Monaghan Discusses Erotic Thriller

Cameron Monaghan Discusses Erotic Thriller

January 13, 2022
Doctor Strange: 12 Best Comic Issues Of The 1990s

Doctor Strange: 12 Best Comic Issues Of The 1990s

December 11, 2021
Anant Ambani wedding: Celebs, wealthy elite attend lavish billionaire festivities – National

Anant Ambani wedding: Celebs, wealthy elite attend lavish billionaire festivities – National

March 1, 2024
Adobe commerce module seller invitation

Adobe commerce module seller invitation

April 13, 2022
Best Cryptocurrency Wallets Comparison | SCAND Blog

Best Cryptocurrency Wallets Comparison | SCAND Blog

July 30, 2022
Guide for Odoo Website Razorpay Checkout Payment Acquirer

Guide for Odoo Website Razorpay Checkout Payment Acquirer

January 6, 2023
UGREEN 65W USB Charger and Power Adapter review 

UGREEN 65W USB Charger and Power Adapter review 

January 25, 2023
Phantom Parade Gets Opening Movie, Cast Announced

Phantom Parade Gets Opening Movie, Cast Announced

March 8, 2022
Millennium Docs Against Gravity Expands Industry Program

Millennium Docs Against Gravity Expands Industry Program

May 10, 2025
Billy Ray Cyrus shares rare photo with daughter Miley amid rumoured family rift

Billy Ray Cyrus shares rare photo with daughter Miley amid rumoured family rift

May 10, 2025
Bill Gates says he will give away almost all of his money over next 20 years

Bill Gates says he will give away almost all of his money over next 20 years

May 9, 2025
Here’s How You Can Win a $500 Prepaid Visa Gift Card

Here’s How You Can Win a $500 Prepaid Visa Gift Card

May 9, 2025
Ben Affleck Embraces Latina Love Post-Jennifer Lopez Divorce

Ben Affleck Embraces Latina Love Post-Jennifer Lopez Divorce

May 9, 2025
Beauty Influencer Got Weight Loss Surgery — And Died Just Days Later…

Beauty Influencer Got Weight Loss Surgery — And Died Just Days Later…

May 9, 2025
YouTube Outlines Advanced Creator Collaboration Tools at NewFronts 2025

YouTube Outlines Advanced Creator Collaboration Tools at NewFronts 2025

May 9, 2025
Meta Outlines Facebook, Instagram and Threads Ad Updates at NewFronts 2025

Meta Outlines Facebook, Instagram and Threads Ad Updates at NewFronts 2025

May 10, 2025
New Self New Life

Your source for entertainment news, celebrities, celebrity news, and Music, Cinema, Digital Lifestyle and Social Media and More !

Categories

  • Celebrity
  • Cinema
  • Devices
  • Digital Lifestyle
  • Entertainment
  • Music
  • Social Media
  • Softwares
  • Uncategorized

Recent Posts

  • Millennium Docs Against Gravity Expands Industry Program
  • Billy Ray Cyrus shares rare photo with daughter Miley amid rumoured family rift
  • Bill Gates says he will give away almost all of his money over next 20 years
  • Home
  • Disclaimer
  • DMCA
  • Privacy Policy
  • Cookie Privacy Policy
  • Terms and Conditions
  • Contact us

Copyright © 2021 New Self New Life.
New Self New Life is not responsible for the content of external sites. slotsfree  creator solana token

No Result
View All Result
  • Home
  • Entertainment
  • Celebrity
  • Cinema
  • Music
  • Digital Lifestyle
  • Social Media
  • Softwares
  • Devices

Copyright © 2021 New Self New Life.
New Self New Life is not responsible for the content of external sites.

super ace scatter