对象已移动

可在此处找到该文档 Apply an email template transformation from a module – New Self New Life
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
3 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

This week in AI updates: Mistral’s new Le Chat features, ChatGPT updates, and more (September 5, 2025)
Softwares

This week in AI updates: Mistral’s new Le Chat features, ChatGPT updates, and more (September 5, 2025)

by admin
September 5, 2025
Don’t Have the Backslash or Pipe Symbol? Type \ and | on Any Keyboard [Article]
Softwares

Don’t Have the Backslash or Pipe Symbol? Type \ and | on Any Keyboard [Article]

by admin
September 6, 2025
AI coding assistants speed delivery but multiply security risk
Softwares

AI coding assistants speed delivery but multiply security risk

by admin
September 4, 2025
NFT Real Estate Marketplace Development: Guide to NFT Marketplaces
Softwares

NFT Real Estate Marketplace Development: Guide to NFT Marketplaces

by admin
September 2, 2025
Crash fixes – Vivaldi Browser snapshot 3794.4
Softwares

Crash fixes – Vivaldi Browser snapshot 3794.4

by admin
September 1, 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
I Only Have More Questions After Another Bizarre Outing With The Harrigans

I Only Have More Questions After Another Bizarre Outing With The Harrigans

April 20, 2025
Amazon Forgot to Take the 2024 MacBook Air Off Sale After Their Big Spring Event

Amazon Forgot to Take the 2024 MacBook Air Off Sale After Their Big Spring Event

April 4, 2025
Ecca Vandal’s “CRUISING TO SELF SOOTHE” video is an ode to skate culture

Ecca Vandal’s “CRUISING TO SELF SOOTHE” video is an ode to skate culture

March 10, 2025
Easy Blueberry Scones (With Frozen Blueberries)

Easy Blueberry Scones (With Frozen Blueberries)

April 10, 2025
Tuesday Snapshot – Vivaldi Browser snapshot 3621.3

Tuesday Snapshot – Vivaldi Browser snapshot 3621.3

March 5, 2025
A Global Recognition of Indi

A Global Recognition of Indi

April 21, 2025
It’s time for open-source contributions

It’s time for open-source contributions

February 9, 2025
I finally watched The Truman Show

I finally watched The Truman Show

April 6, 2025
Google’s AI Ambitions An ‘Existential Crisis’ For News Online

Google’s AI Ambitions An ‘Existential Crisis’ For News Online

September 6, 2025
Netflix Schedule September 8 – September 14, 2025: New TV Shows & Movies Being Added

Netflix Schedule September 8 – September 14, 2025: New TV Shows & Movies Being Added

September 6, 2025
Pamela Anderson: Actress slams rumours of fake relationship with Liam Neeson

Pamela Anderson: Actress slams rumours of fake relationship with Liam Neeson

September 6, 2025
Darth Vader lightsaber goes for more than $3.6M at auction – National

Darth Vader lightsaber goes for more than $3.6M at auction – National

September 6, 2025
ARC Returns to the Birthplace of House Music for Scintillating 2025 Festival

ARC Returns to the Birthplace of House Music for Scintillating 2025 Festival

September 6, 2025
OnePlus and Hasselblad are ending their five-year partnership

OnePlus and Hasselblad are ending their five-year partnership

September 5, 2025
This week in AI updates: Mistral’s new Le Chat features, ChatGPT updates, and more (September 5, 2025)

This week in AI updates: Mistral’s new Le Chat features, ChatGPT updates, and more (September 5, 2025)

September 5, 2025
Ozzy Osbourne to Receive All-Star Tribute at MTV VMAs

Ozzy Osbourne to Receive All-Star Tribute at MTV VMAs

September 5, 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

  • Google’s AI Ambitions An ‘Existential Crisis’ For News Online
  • Netflix Schedule September 8 – September 14, 2025: New TV Shows & Movies Being Added
  • Pamela Anderson: Actress slams rumours of fake relationship with Liam Neeson
  • 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.

New Self New Life